Russian Qt Forum

Qt => Вопросы новичков => Тема начата: serg_yl от Апрель 08, 2011, 10:04



Название: Чтение и загрузка в переменные...
Отправлено: serg_yl от Апрель 08, 2011, 10:04
Всем доброго дня!

Поставленная задача:
1. Открыть и прочитать файл с числовыми данными и записать их в переменные.
2. Структура файла: 1;2;0.2;4.5;6;0.
3. Загрузить нужно в переменные чтобы получилось (n=1; k=2; a=0.2; b=4.5; c=6; d=0;)
4. Сделать обработчик ошибок, чтобы нельзя было искользовать буквы вместо цифр.

Прошу помощи в реализации этой задачи.
Огромное спасибо за ваши ответы! :-)


Название: Re: Чтение и загрузка в переменные...
Отправлено: Пантер от Апрель 08, 2011, 10:14
Вот тебе наметки кода.
Код
C++ (Qt)
const QString str = file.readLine ();
const QStringList l = str.split (";");
QVector <double> v;
bool ok;
foreach (const QString& number, l) {
 const double d = number.toDouble (&ok);
 if (ok) {
   v.push_back (d);
 }
}
 


Название: Re: Чтение и загрузка в переменные...
Отправлено: Igors от Апрель 08, 2011, 12:19
Код
C++ (Qt)
const QString str = file.readLine ();
const QStringList l = str.split (";");
QVector <double> v;
bool ok;
foreach (const QString& number, l) {
 const double d = number.toDouble (&ok);
 if (ok) {
   v.push_back (d);
 }
}
 
Конечно это будет работать и писать минуту. Но вот что делать если в случае ошибки нужно выдать позицию/строку в файле где символы не могут правильно считаны (и может выделить это место)?  В этом случае незатейливое strchr может оказаться сильнее "высокоуровнего программирования"  :)


Название: Re: Чтение и загрузка в переменные...
Отправлено: Пантер от Апрель 08, 2011, 12:25
Igors, че сказать-то хотел?


Название: Re: Чтение и загрузка в переменные...
Отправлено: Igors от Апрель 08, 2011, 12:47
Igors, че сказать-то хотел?
То что нечего хвататься за контейнеры, foreach и.т.п  пока с C строками работать не умеет. А то получится "парфум на грязное тело"  :)


Название: Re: Чтение и загрузка в переменные...
Отправлено: Пантер от Апрель 08, 2011, 12:53
Ты на раздел глянь, а потом уже про СИ вспоминай. И это "незатейливое strchr" не панацея. Если есть высокоуровневое средство, то нафига лезть в низы? Ты еще про асм вспомни.