Здравствуйте, гость ( Вход | Регистрация )
ilyabvt | Дата 27.8.2011, 10:59 |
Цитата Может быть вот так if (str[i] >='а' && str[i] <='п' || str[i] >='р' && str[i] <='я') И где логика? Цитата условие ложно или наоборот истино? Условие ложно, в то время как должно быть истинно. В случае со строкой "Ехалsghffg000:Zгрекаyfhkkl907Zчерезdxsvhy897Zрекуtyfdvh657Zвидитighjky843Zг рекаuidhnr902Zвtyujnd734Zрекеouthck5520Zрак" вообще не один символ не удовлетворил условиям, хотя по идее должны были пройти все русские буквы. |
|
Litkevich Yuriy | Дата 27.8.2011, 10:37 |
он все равно не проходит проверку условие ложно или наоборот истино? |
|
DOGG | Дата 27.8.2011, 7:24 |
Может быть вот так if (str[i] >='а' && str[i] <='п' || str[i] >='р' && str[i] <='я') |
|
ilyabvt | Дата 26.8.2011, 21:37 |
Цитата Яб так делал: if (str[i] >=QChar('А') && str[i] <=QChar('Я')) Попробуй, будет ли польза? Я уже так пробовал. Не помогает. Не работает, значит, даже если символ находиться в указанном диапазоне он все равно не проходит проверку. |
|
Litkevich Yuriy | Дата 26.8.2011, 20:30 |
ilyabvt, ну если у тебя кодировка исходника задана явно, то имеет смысл обсудить. Тему после разделю (главное не смешивать в сообщениях, я их не могу разделить). Яб так делал: Попробуй, будет ли польза?И, собственно, что значит не работает? |
|
ilyabvt | Дата 26.8.2011, 9:55 |
символы с кодами выше latin1 требуют дополнительных телодвижений, так же как и вывод русского текста на виджетах, .... Раскрывающийся текст Ну для вывода русского на виджетах достаточно:
А какие телодвижения нужны тут? Хотя конечно можно написать например так:
но это не совсем то что я искал. P.S. прошу прощения за вопросы немного не по теме. |
|
Litkevich Yuriy | Дата 26.8.2011, 5:42 |
а вот так нет: символы с кодами выше latin1 требуют дополнительных телодвижений, так же как и вывод русского текста на виджетах, .... |
|
ilyabvt | Дата 25.8.2011, 17:43 |
Теперь каждое слово в отдельной строке. Цитата(MJIbIu) QRegExp("[0-9][a-z][A-Z]") двоеточие забыли убрать) Вы пошли от обратного, а это с моей точки зрения, в данном случае, не совсем хорошо, ибо вдруг текст в юникоде, тогда помимо английских букв, цифр и знаков препинания может встретится очень много других символов. P.S. Да буду очень признателен, если мне объяснят почему вот так работает:
а вот так нет:
|
|
MJIbIu | Дата 25.8.2011, 15:36 |
Цитата убрать лишние символы. а какие символы считаются лишними ? Ехалsghffg000:Zгрекаyfhkkl907Zчерезdxsvhy897Zрекуtyfdvh657Zвидитighjky843Zгрекаu idhnr902Zвtyujnd734Zрекеouthck5520Zрак Ехал грека через реку видит в реке рак - мне кажется ему это надо получить остальное выкинуть QString r = "Ехалsghffg000:Zгрекаyfhkkl907Zчерезdxsvhy897Zрекуtyfdvh657Zвидитighjky843Zг рекаuidhnr902Zвtyujnd734Zрекеouthck5520Zрак" return r.remove(QRegExp("[0-9][a-z][A-Z]")); что то придумал с ходу, мб я с RegExp напутал Ехалsghffg000:Zгрекаyfhkkl907Zчерезdxsvhy897Zрекуtyfdvh657Zвидитighjky843Zгрекаu idhnr902Zвtyujnd734Zрекеouthck5520Zрак QRegExp reg (":[0-9]{3}Z"); QStringList lines = text.split(reg); if(int j =text.indexOf(reg)) { foreach (QString line, lines) { int i = j - 6; int k = 0; QString newline = line.mid(k-i).left(i); return newline; } } помогите пожалуйста разобраться, а то я совсем запуталась, надо разбить строку на другие строки и убрать лишние символы. я пробовала, пробовала и ника, там кусок того, что у меня получилось, но не работает(( выводит только первое слово отдельно... а зачем ты дела QString newline = line.mid(k-i).left(i); ?? если хочешь склеить list и получить string тогда не проще ли будет QString newline; foreach (QString line, lines) { newline+= line; } return newline; |
|
Алексей1153 | Дата 25.8.2011, 14:19 |
Цитата убрать лишние символы. а какие символы считаются лишними ? |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 20.4.2024, 1:24 |