Хочу из файла получить промежуток между # и #!.
Но почему то не получается
QFile file("pro.txt");
QLabel l;
QString str, str2;
if (file.open(QIODevice::ReadOnly))
{
str.append(file.readAll());
int put=0;
for (int i=0; str.length(); i++){
if ((str[i]=='#') && (put=1)) {
put=0;
break;
}
if (put==1) str2.append(str[i]);
if ((str[i]=='#') && (str[i+1] =='!')) put=1;
}
l.setText(str2);
text->addWidget(&l);
}
lab1->setLayout(text);
lab1->show();
Похоже что по коду вы берете промежуток между #! и #.
У вас в строку добавляется пока put == 1. А put приравнивается к 1 по условию ((str[i]=='#') && (str[i+1] =='!')). Условия надо переставить немного.
не условие соответствует. Я просто не правильно написал между #! и #.
У меня на экран почему-то ничего не выводиться. Думал что append не правильно применяю, прочитал документацию - все так. В чем ошибка не знаю
#Pro##Of#!Word#=C:\cpp#ico111RU
из этой строки хочу вывести Word
Вместо:
if ((str[i]=='#') && (put=1))
if ((str[i]=='#') && (put==1))
for (int i=0; str.length(); i++)
for (int i=0; i<str.length(); i++)
Спасибо за исправления!
Все равно не выводит текст на форму.
ошибка с кодировкой наверное.
Да. Действительно ошибка с кодировкой, поэтому не выводило
А если сделать:
l.setText(str);
да так она первоначально мне весь текст из файла выводила
только теперь у меня проблема вывода русского текста
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)