Russian Qt Forum
Ноябрь 23, 2024, 10:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2] 3 4 ... 18   Вниз
  Печать  
Автор Тема: Регулярное выражение с QString  (Прочитано 160970 раз)
Spark
Гость
« Ответ #15 : Июль 25, 2013, 12:57 »

Спасибо более менее разобрался. Отладчик выдает:
Цитировать
Отладка запущена
Object::connect: No such slot MainWindow::contextDictsPane( const QPoint & )
Object::connect:  (sender name:   'dictsPane')
Object::connect:  (receiver name: 'MainWindow')
Reloading all the tabs...
Reloading all the tabs...
opa!   ""
Как учесть?
Записан
Spark
Гость
« Ответ #16 : Июль 25, 2013, 13:50 »

зачем пробегать по строкам списка через итератор если есть foreach, который укорачивает написание в 2-3 раза?

и кстати вместо QList< QString > можно писать просто QStringList.
Заменил:
Код
C++ (Qt)
       for( QList< QString >::const_iterator i = itemList.constBegin(); i != itemList.constEnd(); ++i )
           text.addItem( Text::Item( 1, *i ) );
На:
Код
C++ (Qt)
          foreach (QString itm, itemList)text.addItem( Text::Item( 1, itm ) );
На этот раз поддается критике Улыбающийся?
На самом деле важна скорость, полагаю. Поскольку тексты предполагается обрабатывать и внушительных объемов в том числе. А так же сам частотный расчет пока простой. Предполагается постепенно усложнять обработку.
Записан
Spark
Гость
« Ответ #17 : Июль 25, 2013, 14:26 »

Если в тексте последним идет пробел или перенос строки, то алгоритм его считает (все пробелы и переносы в тексте). При этом, если в тексте только внутренние пробелы (допустим скопировать часть строки) не считает.
« Последнее редактирование: Июль 25, 2013, 14:32 от Spark » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #18 : Июль 25, 2013, 14:42 »

делай trimmed для исходной строки
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Spark
Гость
« Ответ #19 : Июль 25, 2013, 14:43 »

Проблема решена. Покритикуйте:
Код
C++ (Qt)
void MainWindow::bufferButtonSave()
{
   QClipboard *clipboard = QApplication::clipboard();
   QString originalText = clipboard->text();
 
   originalText.replace(QRegExp("\\W"), " ");
   originalText.replace(QRegExp("\\d"), " ");
 
       QTextStream fileStream( & originalText );
       QString itemStr, trimmedStr;
       QStringList itemList;
 
       QString nnn;
 
       textory.clear();
 
       do
       {
           // Пословно
           fileStream >>(itemStr);
           // Построчно
//            itemStr = fileStream.readLine();
 
           trimmedStr = itemStr.trimmed();
//  Убираем пустышку
           if( trimmedStr.isEmpty() )
               continue;
 
           QRegExp rx("\\b(" + trimmedStr + ")\\b");
 
           int coun(0);
           int pos = 0;
           while ((pos = rx.indexIn(originalText, pos)) != -1)
           {
               ++coun;
               ++pos;
           }
 
           nnn.setNum(coun);
 
           trimmedStr = trimmedStr + nnn;
           itemList.prepend( trimmedStr );
 
       } while( !fileStream.atEnd() );
 
       textory.enableAdd( true );
 
          foreach (QString itm, itemList)textory.addItem( Textory::Item( 1, itm ) );
 
       textory.enableAdd( cfg.preferences.storeTextory );
}
Записан
Spark
Гость
« Ответ #20 : Июль 25, 2013, 15:13 »

делай trimmed для исходной строки
Типа этого:
Код
C++ (Qt)
   QClipboard *clipboard = QApplication::clipboard();
   QString xt = clipboard->text();
   QString originalText = xt.trimmed();
Не сработало.
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #21 : Июль 25, 2013, 15:40 »

Проблема решена. Покритикуйте:

Это ерунда какая то.. И критиковать здесь бесполезно( Какой смысл?

Я предлагаю вам написать отдельный класс для анализа текста.
Спроектируйте архитектуру этого класса. Так, чтоб он был самодостаточным, интуитивно понятным (даже младенцу).
Чтобы была возможность задавать ему опции для сравнения строк (с учётом регистра, без и т.д.)

И напишите его без использования Qt.)

Тогда в этом будет смысл и польза для вас.. А так это просто переливание из пустого в порожнее..(

Удачи)
 
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Spark
Гость
« Ответ #22 : Июль 25, 2013, 15:50 »

Проблема решена. Покритикуйте:

Это ерунда какая то.. И критиковать здесь бесполезно( Какой смысл?

Я предлагаю вам написать отдельный класс для анализа текста.
Спроектируйте архитектуру этого класса. Так, чтоб он был самодостаточным, интуитивно понятным (даже младенцу).
Чтобы была возможность задавать ему опции для сравнения строк (с учётом регистра, без и т.д.)

И напишите его без использования Qt.)

Тогда в этом будет смысл и польза для вас.. А так это просто переливание из пустого в порожнее..(

Удачи)
  
Вижу вы тоже желаете меня в игнор записать Улыбающийся.

Поясняю. Не ради забавы я пишу эту часть программки. У меня вполне конкретные цели. И раз я в ветке для начинающих и на форуме QT, то наверное стоит критиковать не мое отношение к чистому коду, а сам код написанный с использованием QT.

P.S. Я не считаю себя программистом, тем более профи. Я обучаюсь и хотел бы немного стать программистом, ну а если повезет то и профи.
« Последнее редактирование: Июль 25, 2013, 15:56 от Spark » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #23 : Июль 25, 2013, 16:12 »


Вижу вы тоже желаете меня в игнор записать Улыбающийся.

Да зачем мне вас в чс заносить? Я никого не туда не заношу.. Дело не в этом(

Цитировать
Поясняю. Не ради забавы я пишу эту часть программки. У меня вполне конкретные цели.

Шутите? И какие же? Без вашего сегодняшнего кода и программы, завтра во вселенной нарушится равновесие и мир превратится в хаус?)

Цитировать
И раз я в ветке для начинающих и на форуме QT, то наверное стоит критиковать не мое отношение к чистому коду, а сам код написанный с использованием QT.

А я и не критикую чистоту вашего кода, заметьте.
Для меня более важен сам подход, образ мысли, то, как спроектирована архитектура. Вот вы говорите, что новичёк и т.д. тогда для вас гораздо более первостепенным - учиться мыслить категориями языка, а не зарываться в частности (Qt - это тоже частности).  Я об этом уже говорил. Вы сейчас мыслите на процедурном уровне и используя при этом метод тыка.. 

Вы просите критики, но совершенно слепы к  ней( Может вам не критика нужна, а внимание и похвала?) Мм?)
А вообще, для хорошей конструктивной критики нужно тоже дорасти, делая при этом со своей стороны усилия..

Я вам дал дельный совет, но вы его восприняли в штыки.. О чём это говорит?

 

   

 



 
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Spark
Гость
« Ответ #24 : Июль 25, 2013, 16:36 »

- Мне нравится метод тыка в обучении. Совместно с другими методами он приводит к результату гораздо быстрее. Даже не хочу и не буду на эту тему спорить. Плавали не раз, знаем.
- Я не стремлюсь к тому, что бы меня похвалили, тем более я понимаю, что этого не будет и тем более моя манера общения наоборот может вызывать раздражение. Но комплекса неполноценности у меня нет и другим того же желаю. Код на показ выставляю только с одной единственной целью, что бы оценили его практичность и критиковали по делу (по поводу кода), записываю и пытаюсь либо сразу оптимизировать, либо позже. Пока же очерчиваю круг задач.
- Мир не рухнет. Но когда работа будет готова и я решу показать ее, тогда возможно поймете почему я поступаю так как поступаю сейчас...
- Надоело уговаривать программиста, что бы он каждый пункт очередной фишки выполнил. Теперь все, что задумал реализовываю сам с точки зрения пользователя.

P.S. Ваш совет я не воспринял в штыки и прекрасно его понимаю. Но к моей основной цели он имеет второстепенное значение и не ускорит ее осуществление, отбросит и в конце концов работа будет заброшена. И та часть мира которая ждала появления моей работы будет огорчена Улыбающийся.
« Последнее редактирование: Июль 25, 2013, 16:41 от Spark » Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #25 : Июль 25, 2013, 16:58 »

P.S. Ваш совет я не воспринял в штыки и прекрасно его понимаю. Но к моей основной цели он имеет второстепенное значение и не ускорит ее осуществление, отбросит и в конце концов работа будет заброшена. И та часть мира которая ждала появления моей работы будет огорчена Улыбающийся.

К несчастью для вас - это типичное заблуждение(
Наивно подходить к делу не освоив инструмент и сам язык на концептуальном уровне и при этом ожидать какие то дивиденды..
Тот путь, что вы избрали, скорее и приведёт к огорчению той части мира ваших пользователей и вас самого, в частности..

Но дело, конечно, ваше) Не буду спорить)
     
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #26 : Июль 25, 2013, 17:00 »

- Мне нравится метод тыка в обучении. Совместно с другими методами он приводит к результату гораздо быстрее.

Забивать шурупы тоже гораздо быстрее.
Записан
Spark
Гость
« Ответ #27 : Июль 25, 2013, 17:28 »

Ok! По делу. Подскажите как лучше привести текст к нижнему регистру?
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #28 : Июль 25, 2013, 17:30 »

Ok! По делу. Подскажите как лучше привести текст к нижнему регистру?

QString::toLower(), всё описано в документации.
Записан
Spark
Гость
« Ответ #29 : Июль 25, 2013, 17:43 »

Ok! По делу. Подскажите как лучше привести текст к нижнему регистру?

QString::toLower(), всё описано в документации.
Спасибо.
Вторая часть совета как раз и есть метод проб и ошибок. Забавно то, что большинство тех кто отрицает метод проб и ошибок, как раз в первую отправляют заниматься этим делом Улыбающийся, причем в худшем проявлении этого метода.
Но про метод проб и ошибок я не в буквальном смысле писал. Метод научного тыка - общепризнанный метод вообще как таковой. Иначе бы не имели того, что сейчас имеем.
Ох в очередной раз пустились во флуд Улыбающийся.

P.S. Кстати, никакой выгоды для себя я не собираюсь извлекать. Моя работа держится на энтузиазме. Мне это нравится и возможно моя работа кому то пригодится.
« Последнее редактирование: Июль 25, 2013, 17:59 от Spark » Записан
Страниц: 1 [2] 3 4 ... 18   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.123 секунд. Запросов: 22.