IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Проблемы чтения из файла
obi4niy
сообщение 9.10.2011 21:43
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Здравствуйте, более опытные товарищи паскальщики.
Есть проблема, решения которой я не нашел самостоятельно.

Есть программа, целью которой есть извлечение данных из текстовых файлов, расчеты и запись их результатов в другой текстовый файл. Всю программу приводить не буду, приведу урезанный вид с проблемным участком.

uses crt,dos;
VAR
Fi:array [1..72] of integer;
P:array [1..72] of real;
f2: text;
procedure ind;
begin
textcolor(6);
writeln(' Список файлов с индикаторными диаграммами:');
ShowDir('*.ind');
textcolor(10);
writeln;write('Введите имя требуемого файла:');
readln(name3);
assign(f2,name3);
reset(f2);
i:=0;
repeat i:=i+1;
readln(f2,fi[i],P[i]);
until i=72;
close(f2);
end;


Файл с расширением *.ind представляет собой текстовый файл с двумя столбцами чисел:

Код
fi[i]    P[i]
0    0.10
10    0.90
20    0.90
30    0.90
40    0.90
50    0.90
60    0.90
.....



Проблема в том, что после ввода имени файла, программа прекращает работу и выдает ошибку 106 - недопустимый формат целого числа.
Скажите пожалуйста, почему возникает эта ошибка, и как исправить код, чтобы она более не возникала?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Lapp
сообщение 10.10.2011 3:55
Сообщение #2


Уникум
*******

Группа: Модераторы
Сообщений: 6 823
Пол: Мужской
Реальное имя: Лопáрь (Андрей)

Репутация: -  159  +


Так у тебя же первая строка содержит не числа, а заголовки столбцов - верно? Ты просто пропусти ее. Перед циклом чтения вставь строчку:
  readln(f2);


Не по делу: немного странно видеть repeat / until в роли цикла for. Почему так сделал?


--------------------
я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
obi4niy
сообщение 10.10.2011 16:12
Сообщение #3





Группа: Пользователи
Сообщений: 2
Пол: Мужской

Репутация: -  0  +


Спасибо, проблема решена.

Мне тоже странно. Это программа из курсовой работы, писал её препод по информатике, и мне она поступила как образец. Однако ошибок в этом образце было прилично. Видимо, писалась она "лишь бы было".
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 20.07.2025 6:02
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"