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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Чтение и загрузка в переменные...  (Прочитано 3329 раз)
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. Сделать обработчик ошибок, чтобы нельзя было искользовать буквы вместо цифр.

Прошу помощи в реализации этой задачи.
Огромное спасибо за ваши ответы! :-)
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Апрель 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);
 }
}
 
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #2 : Апрель 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 может оказаться сильнее "высокоуровнего программирования"  Улыбающийся
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Апрель 08, 2011, 12:25 »

Igors, че сказать-то хотел?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #4 : Апрель 08, 2011, 12:47 »

Igors, че сказать-то хотел?
То что нечего хвататься за контейнеры, foreach и.т.п  пока с C строками работать не умеет. А то получится "парфум на грязное тело"  Улыбающийся
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #5 : Апрель 08, 2011, 12:53 »

Ты на раздел глянь, а потом уже про СИ вспоминай. И это "незатейливое strchr" не панацея. Если есть высокоуровневое средство, то нафига лезть в низы? Ты еще про асм вспомни.
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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