Название: Поиск дублируемых чисел из подключаемой библиотеки Отправлено: SektorCT от Октября 03, 2015, 14:34 Всем привет.
Надеюсь я в правильынй раздел форума пишу. задача такая, есть QT программа, в которой загружается из файла набор чисел 829 71, 48, 21, 100, 1, 19 113, 35, 3, 39, 15 13, 28, 3, 3, 41 123, 231, 1234 Строк с числами много. Так вот есть интерфейс получающий данные из файла, и требуется во внешней библиотеке сделать метод поиска дублируемых чисел. Например 123 это дублируемое число 231, но 1234 это уже другое число. У меня из за малого опыта работы с QT хотя и самого программирование нету понимания как обратится к данным QTextEdit который содержит загруженные данные и обращение библиотеке к ним дял нужного поиска. Хотя даже и с самим алгаритмом вопросы имеются. Ниже приведу код имеющийся. Если кто знает то подскажите пожалуйста как тут решить задачу. Заранее большое спасибо. ###CMainWindow.hpp### Код: #ifndef TESTDUPLECATES_MAINWINDOW_HPP Код: #include "CMainWindow.hpp" Код: #ifndef TESTDUPLECATES_MYDUPLICATES_HPP ###/subdir/MyDuplicates.cpp### Код: #include "MyDuplicates.hpp" Название: Re: Поиск дублируемых чисел из подключаемой библиотеки Отправлено: gil9red от Октября 04, 2015, 08:18 Название темы не соответствуют описанию проблемы :)
В CManiWindow.cpp инклудьте MyDuplicates.hpp и используйте класс MyDuplicates Название: Re: Поиск дублируемых чисел из подключаемой библиотеки Отправлено: Igors от Октября 04, 2015, 09:50 Строк с числами много. Так вот есть интерфейс получающий данные из файла, и требуется во внешней библиотеке сделать метод поиска дублируемых чисел. Например 123 это дублируемое число 231, но 1234 это уже другое число. Следуйте правилу форума: один топик - одна тема. Что Вы хотели выяснить? "Дублирующие числа", "обращение к QTextEdit" или "обращение библиотеке". Давайте что-то одно и подробноУ меня из за малого опыта работы с QT хотя и самого программирование нету понимания как обратится к данным QTextEdit который содержит загруженные данные и обращение библиотеке к ним дял нужного поиска. Хотя даже и с самим алгаритмом вопросы имеются. Ниже приведу код имеющийся. Если кто знает то подскажите пожалуйста как тут решить задачу. Название: Re: Поиск дублируемых чисел из подключаемой библиотеки Отправлено: SektorCT от Октября 04, 2015, 10:59 Следуйте правилу форума: один топик - одна тема. Что Вы хотели выяснить? "Дублирующие числа", "обращение к QTextEdit" или "обращение библиотеке". Давайте что-то одно и подробно
[/quote] Извиняюсь если я не правильно выбрал раздел форума, первый раз столкнулся с этой проблемой и не знал как лучше описать и спросить на форуме. Я пытаюсь понять как из внешней библиотеки я должен обращаться к данным QTextEdit(так же если я что то нахожу из дублируемых чисел я посылаю вывод уже в другой QTextEdit). Ну и само собою уже во внешней этой библиотеке поиск дублируемого числа. Название: Re: Поиск дублируемых чисел из подключаемой библиотеки Отправлено: Racheengel от Октября 04, 2015, 13:20 Содержимое QTextEdit придется разпарсить на числа, разделенные запятыми. Положите их в QStringList и передайте в библиотечну функцию.
В функции берем каждую строку и посимвольно засовываем в QMap<QChar, int> , где ключ это символ, int это количество символов. В итогде получаем смисок мэпов. Далее сравниваем мэпы друг с другом и находим дубликаты. Все. Название: Re: Поиск дублируемых чисел из подключаемой библиотеки Отправлено: SektorCT от Октября 04, 2015, 14:20 Содержимое QTextEdit придется разпарсить на числа, разделенные запятыми. Положите их в QStringList и передайте в библиотечну функцию. В функции берем каждую строку и посимвольно засовываем в QMap<QChar, int> , где ключ это символ, int это количество символов. В итогде получаем смисок мэпов. Далее сравниваем мэпы друг с другом и находим дубликаты. Все. хм, попробую понять как это сделать) (опыта не много). А скажите как мне с библиотеки обратиться к QTextEdit где данные которые нужно будет разабрать? Я правильно понимаю что я должен подключить класс где все виджеты указаны в подключаемой библиотеке? Потому что если я подключаю так Код: #include "../CMainWindow.hpp" То получаю ошибку ../CMainWindow.hpp:9:21: fatal error: QtWidgets: Нет такого файла или каталога Название: Re: Поиск дублируемых чисел из подключаемой библиотеки Отправлено: Racheengel от Октября 04, 2015, 16:43 А зачем обращаться из библиотеки к QTextEdit? Это должна ваша программа делать. Получить содержимое из QTextEdit через text(), распарсить и вызвать библиотечный метод, который и найдет дубликаты (если в общем).
Библиотека ничего не должна знать, где содержатся ваши данные. Ее дело - получить их, обработать и отдать результат. По хорошему, она должна иметь функцию типа Код: QStringList FindDuplicates(const QStringList& inputData) const где inputData - это список отдельных элементов из вашего QTextEdit, а результат - список найденных дубликатов (не знаю, что дальше будете с ними делать, поэтому пока QStringList, хотя мог бы быть список индексов и т.д.). А в вашей программе у вас будет что-то типа этого: Код: ... Название: Re: Поиск дублируемых чисел из подключаемой библиотеки Отправлено: SektorCT от Октября 04, 2015, 17:08 Код: ... А эти данные должны быть уже при нажатии на кнопку быть готовы для передачи в библиотеку или именно в самом слоте нужно делать? И такого метода у QTextEdit как text() я не нашол. toPlainText есть а вот text нету. Название: Re: Поиск дублируемых чисел из подключаемой библиотеки Отправлено: Racheengel от Октября 04, 2015, 19:22 И такого метода у QTextEdit как text() я не нашол. toPlainText есть а вот text нету. да, toPlainText(), конечно, извиняюсь. Название: Re: Поиск дублируемых чисел из подключаемой библиотеки Отправлено: SektorCT от Октября 04, 2015, 22:04 И такого метода у QTextEdit как text() я не нашол. toPlainText есть а вот text нету. да, toPlainText(), конечно, извиняюсь. Кидаю весь код что есть сейчас кроме CMainWindow.hpp, он без изменений. CMainWindow.cpp Код: // MyDuplicates.hpp Код: #ifndef TESTDUPLECATES_MYDUPLICATES_HPP MyDuplicates.cpp Код: #include "MyDuplicates.hpp" Название: Re: Поиск дублируемых чисел из подключаемой библиотеки Отправлено: Racheengel от Октября 04, 2015, 22:25 Если MyDuplicates - это класс, а не неймспейс, то тогда FindDuplicates надо сделать статическим:
Код: static QStringList FindDuplicates(const QStringList& inputData); А где имплементация? Что-то по видимому недокопировалось... Название: Re: Поиск дублируемых чисел из подключаемой библиотеки Отправлено: SektorCT от Октября 04, 2015, 22:31 Если MyDuplicates - это класс, а не неймспейс, то тогда FindDuplicates надо сделать статическим: Код: static QStringList FindDuplicates(const QStringList& inputData); А где имплементация? Что-то по видимому недокопировалось... Да вроде как все скопировал. На функцию не ругается, забыл сделать ее статичной как вы написали. НО сборка все равно не проходит. Название: Re: Поиск дублируемых чисел из подключаемой библиотеки Отправлено: Racheengel от Октября 05, 2015, 00:44 Как функция заимплементирована? Что в файле MyDuplicates.cpp? Он, похоже, не полностью залился...
Название: Re: Поиск дублируемых чисел из подключаемой библиотеки Отправлено: SektorCT от Октября 05, 2015, 01:48 Как функция заимплементирована? Что в файле MyDuplicates.cpp? Он, похоже, не полностью залился... В нем ничего нету. Там должна быть реализация уже алгаритма поиска. По я еще не знаю как сделать его. Кинул просто показать что он есть но пустой. Название: Re: Поиск дублируемых чисел из подключаемой библиотеки Отправлено: Racheengel от Октября 05, 2015, 02:22 Аа, ну дык хотя бы пустышку в срр надо положить, а то не слинкуется...
|