Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
1 / 1 / 0
Регистрация: 16.05.2017
Сообщений: 58

Попытка считывания за концом текстового файла

18.05.2020, 13:05. Показов 4417. Ответов 25
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите в решении, написал код процедуры "ввод из документа в массив", но он не работает. Выдает ошибку "попытка считывания за концом текстового файла"
вот код, процедура vmas
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
uses crt;
type pam=record
god:integer;
nazv: string[50];
ras: longint;end;
var 
a:array [1..4] of pam; c,z:integer; tex:text; t:string; 
  
procedure vvod;
var c:integer; begin
for c:=1 to 3 do
begin
writeln('Введите год создания ');
readln(a[c].god);
writeln('Введите название ');
readln(a[c].nazv);
writeln('Введите годовую стоимость расходов на содержание ');
readln(a[c].ras);
end;end;
 
procedure vivod;
var c:integer; begin
for c:=1 to 4 do
writeln(' ',a[c].god + ' '  + a[c].nazv, ' '+ a[c].ras);end;
 
procedure zapis;
var c:integer; begin
 Assign(tex, 'C:\text.txt');
 Rewrite(tex);
 writeln(tex, High(a));
 for c:=1 to 3 do
 writeln(tex,' ',a[c].god + ' ' + a[c].nazv, ' '+ a[c].ras);
 close(tex);end;
 
 
  procedure vmas;
  var 
    i, n: Byte; ras:longint;
  begin
  Assign(tex, 'C:\text.txt');
    Reset(tex);
  Readln(tex,n);
  for i:=1 to n do
  begin
    Read (tex,a[i].god);
    Read (tex,a[i].nazv);
    Read (tex,a[i].ras);
  end;
  close(tex);
  end;
 
procedure dovk;
var y:integer;
begin
writeln('Ввод данных нового элемента');
inc(c);
with a[c+3] do
begin
write('введите год создания: ');
readln(god);
write('введите название: ');
readln(nazv);
write('введите расходы на содержание: ');
readln(ras);
end;
end;
 
 
begin
z:=1;
while z<>0 do
  begin
writeln('Введите цифру для выбора');
writeln('1 - ввод данных в массив');
writeln('2 - вывод на экран введенных данных');
writeln('3 - запись введенных данных в файл');
writeln('4 - ввод в конец массива');
writeln('5 - ввод из файла');
writeln('6 - Введите чтобы выйти');
readln(z);
case z of
  1:vvod;
  2:vivod;
  3:zapis;
  4:dovk;
  5:vmas;
  6:Exit;
  end;
  readln;
    clrscr;
  end;
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.05.2020, 13:05
Ответы с готовыми решениями:

Выдаёт ошибку "Ошибка времени выполнения: Попытка считывания за концом текстового файла"
Выдаёт ошибку Ошибка времени выполнения: Попытка считывания за концом текстового файла Не могу понять структуру. Вроде пишу всё...

Попытка чтения за концом файла
program p1; var f: file of string; s1:string; begin Assign(f, 'C:\Desktop\Ìèëëèîíåð\file.txt'); reset(f); read(f,s1); Writeln(...

Ошибка времени выполнения: Попытка считывания за концом текстового файла
program ya_ustal; var f:text;m,l:string; a,b,c:integer; begin b:=0; m:='D:\input.txt'; assign(f,m); reset(f); while not...

25
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
18.05.2020, 13:30
Содержание файла покажите, хоть начало, n и первую запись.
0
1 / 1 / 0
Регистрация: 16.05.2017
Сообщений: 58
18.05.2020, 13:38  [ТС]
файл вручную заполняется, предположим я ввёл 1 2 3 4 5 6 7 8 9 , будет 3 строки,
1 2 3
4 5 6
7 8 9
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
18.05.2020, 13:40
Дуб дубом...
0
1 / 1 / 0
Регистрация: 16.05.2017
Сообщений: 58
18.05.2020, 13:45  [ТС]
вот текстовый файл с тем, что я ввожу. у меня не получается в еще не заполненный массив ввести эти данные из документа
Вложения
Тип файла: txt text.txt (27 байт, 8 просмотров)
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
18.05.2020, 13:48
В файле должно быть
n - количество записей
n строк типа
год название стоимость
0
1 / 1 / 0
Регистрация: 16.05.2017
Сообщений: 58
18.05.2020, 13:58  [ТС]
теперь ошибка изменилась на "входная строка имела неверный формат", помогите пожалуйста разобраться в чем дело
Вложения
Тип файла: txt text.txt (58 байт, 4 просмотров)
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
18.05.2020, 14:07
Правильно файл такой
3
1234 назв 756
2345 назван 6879
7501 название 395
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var s:string;
.......................
assign(f,'text.txt');
reset(f);
readln(f,n);
for i:=1 to n do
 begin
  readln(s);
  a[i].god:=strtoint(copy(s,1,pos(' ',s)-1));
  delete(s,1,pos(' ',s));
  a[i].nazv:=copy(s,1,pos(' ',s)-1));
  delete(s,1,pos(' ',s));
  a[i].ras:=strtoint(s);
 end;
close(f);
0
1 / 1 / 0
Регистрация: 16.05.2017
Сообщений: 58
18.05.2020, 14:11  [ТС]
почему-то эта же ошибка осталась, я совсем ничего не понимаю, или я такой косячный, или что
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
18.05.2020, 14:22
Ты файл исправил?
0
1 / 1 / 0
Регистрация: 16.05.2017
Сообщений: 58
18.05.2020, 14:29  [ТС]
путь прописал как и у вас, text.txt
там ведь больше нечего исправлять?
а ошибка всё та же
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
18.05.2020, 14:30
Цитата Сообщение от Никита242322 Посмотреть сообщение
там ведь больше нечего исправлять?
А ты сравни свой файл и мой.
0
1 / 1 / 0
Регистрация: 16.05.2017
Сообщений: 58
18.05.2020, 14:47  [ТС]
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  procedure vmas;
  var 
    i, n: Byte; s:string;
  begin
    assign(tex,'text.txt');
reset(tex);
readln(tex,n);
for i:=1 to n do
 begin
  readln(s);
  a[i].god:=strtoint(copy(s,1,pos(' ',s)-1));
  delete(s,1,pos(' ',s));
  a[i].nazv:=copy(s,1,pos(' ',s)-1);
  delete(s,1,pos(' ',s));
  a[i].ras:=strtoint(s);
 end;
close(tex);
  end;
по сути всё верно исправил, программа работает, но конкретно на вызове этой процедуры дает ошибку "входная строка имела неверный формат"

Добавлено через 14 минут
как разобраться с этой ошибкой? подскажите кто-нибудь пожалуйста
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
18.05.2020, 14:54
Цитата Сообщение от Никита242322 Посмотреть сообщение
программа работает, но конкретно на вызове этой процедуры дает ошибку "входная строка имела неверный формат"
Это называется не работает.
Приложи снова свой файл. И не подобие, а именно тот что ты пытаешься читать.
0
1 / 1 / 0
Регистрация: 16.05.2017
Сообщений: 58
18.05.2020, 15:34  [ТС]
вот, с этого файла пытаюсь ввести данные в массив
Вложения
Тип файла: txt text.txt (67 байт, 3 просмотров)
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
18.05.2020, 15:46
for i:=1 to n do
begin
readln(tex,s);
0
1 / 1 / 0
Регистрация: 16.05.2017
Сообщений: 58
18.05.2020, 15:58  [ТС]
добавил tex, та же ошибка

Добавлено через 10 минут
оно ругается на эти 2 строчки, пробовал убирать эти 2 строки - работает без них, считывает но, на god и ras пишет 00(видимо потому что убрал), а в nazv считывает данные из поля god
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
procedure vmas;
  var 
    i, n: Byte; s:string;
  begin
    assign(tex,'text.txt');
reset(tex);
readln(tex,n);
for i:=1 to n do
 begin
  readln(tex,s);
  a[i].god:=strtoint(copy(s,1,pos(' ',s)-1));{на эту строку}
  delete(s,1,pos(' ',s));
  a[i].nazv:=copy(s,1,pos(' ',s)-1);
  delete(s,1,pos(' ',s));
  a[i].ras:=strtoint(s);{и на эту строку}
 end;
close(tex);
  end;
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
18.05.2020, 16:11
Цитата Сообщение от Никита242322 Посмотреть сообщение
оно ругается на эти 2 строчки
Значит ты просто дуб непобедимый и все, иди в военкомат, сдавайся.
0
1 / 1 / 0
Регистрация: 16.05.2017
Сообщений: 58
18.05.2020, 16:17  [ТС]
я понимаю, что я в этом чайник, но а в чем на самом деле может быть ошибка?
0
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
18.05.2020, 16:37
Проверь в файле чтобы между словами в строках было по одному пробелу.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
18.05.2020, 16:37
Помогаю со студенческими работами здесь

Выдаёт ошибку Ошибка времени выполнения: Попытка считывания за концом текстового файла
Не могу понять структуру. Вроде пишу всё правильно, но всё равно выдаёт ошибку. Выдаёт ошибку Ошибка времени выполнения: Попытка считывания...

Подскажите пожалуйста, как исправить ошибку "Runtime exception: Попытка считывания за концом текстового файла"
Задача: Ведомость студентов, сдававших сессию, содержит ФИО и оценки по четырем предметам. Вывести список студентов, сдавших сессию со...

Ошибка времени исполнения. Попытка считывания с концом
var min, max, a: integer; first: boolean; begin assign(input,'input.txt'); reset(input); first:=true; while not...

Ошибка: Попытка чтения за концом файла
вот программа с заданием: //Сформировать файл F целого типа. //Найти S - сумму первых трех положительных компонент файла (считая, что...

При попытке считать информацию из типизированного файла, происходит попытка считывания с клавиатуры и ошибка
Написала код который должен решать следующую задачу:дан символьный файл, группы символов разделены пробелами. Каждая такая группа...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru