Welcome to U.A.C. [O.S.A.]
login / register
Status: Guest
Архивы форума | iddqd.ru
Wolf 3D
ПравилаПравила ПоискПоиск
18+
[нужна помощь программистов] Pascal, чтение файлов.
   Список разделов - Флуд и устаревшие темы - [нужна помощь программистов] Pascal, чтение файлов.Ответить
АвторСообщение
Plutonium
= Sergeant Major =
Next rank: UAC Sergeant Major after 77 points
603

Doom Rate: 1.4
Ссылка на пост №1 Отправлено: 02.12.11 18:30:36
Дела такие: у меня есть файл input.txt , Я хочу, чтоб паскаль прочитал одно- или двузначное число внутри и присвоил это значение переменной (a), чтоб с ней можно было работать. (умножать, делить, ... ). Напишите рабочий кусок кода, пожалуйста.
1
StasBFG[iddqd]
-= DoomGod =-
Админ форума
3287

Doom Rate: 2.14
Ссылка на пост №2 Отправлено: 02.12.11 18:45:13
А что в этом файле input.txt? просто число в текстовой записи?
readln(f,a)

f - переменная файла
a - число которое тебе нужно
Ф-ция readln определяет тип переменной a и конвертирует данные в нужный формат.
1 2 2
Plutonium
= Sergeant Major =
Next rank: UAC Sergeant Major after 77 points
603

Doom Rate: 1.4
Ссылка на пост №3 Отправлено: 02.12.11 19:10:48
Вот код моей программы:

program p1;
uses crt;
var f,f1:file of integer;
a,b,c: integer;
begin
  clrscr;
  assign (f,'C:\Program Files\input.txt');
  reset (f);
  read (f,a);
  b:=a+3;
  close (f);
  writeln (b);
  end.

Пишет: попытка чтения за концом файла.(строка 9) Что в моей программке не так?
(кстати, здесь readln не проходит, только read.)

Добавлено спустя 4 минуты 30 секунд:

в файле только цифра 7. Единственный символ.
1
Memfis
= UAC Marshal =
Next rank: UAC General after 97 points
8103

Doom Rate: 1.85
Ссылка на пост №4 Отправлено: 02.12.11 19:18:21
Програм фаелс ему может не нравиться? Ну из-за пробела.
1 1 1
Plutonium
= Sergeant Major =
Next rank: UAC Sergeant Major after 77 points
603

Doom Rate: 1.4
Ссылка на пост №5 Отправлено: 02.12.11 19:22:23
поместил файл в корень диска, изменил путь - бесполезно...
1
StasBFG[iddqd]
-= DoomGod =-
Админ форума
3287

Doom Rate: 2.14
Ссылка на пост №6 Отправлено: 02.12.11 19:47:25
У тебя файл текстовый, а ты из него читаешь в формате Integer. Тип файла поменяй на text и всё заработает, readln в том числе.
Вероятно в файле у тебя однозначное число, а Integer 2 байта занимает - вот и вылезает ошибка.
Так будет работать:
program p1;
uses crt;
var f,f1:text;
a,b,c: integer;
begin
  clrscr;
  assign (f,'C:\Program Files\input.txt');
  reset (f);
  readln (f,a);
  b:=a+3;
  close (f);
  writeln (b);
end.
1 2 2
Plutonium
= Sergeant Major =
Next rank: UAC Sergeant Major after 77 points
603

Doom Rate: 1.4
Ссылка на пост №7 Отправлено: 02.12.11 19:50:28
StasBFG[iddqd]
спасибо, заработало)
1
VladGuardian
= Major =
Next rank: Lieutenant Colonel after 196 points
3094

Doom Rate: 1.17
Ссылка на пост №8 Отправлено: 03.12.11 00:17:51
Memfis :
Програм фаелс ему может не нравиться? Ну из-за пробела.

Однозначно - нет. Пути с пробелами (без кавычек) могут напакостить лишь в командной строке и бат-файлах, а внутри кода такая строка воспринимается как единый объект, сколько бы пробелов там не было.
1 7 13
Страница 1 из 1Перейти наверх
   Список разделов - Флуд и устаревшие темы - [нужна помощь программистов] Pascal, чтение файлов.