Страница 1 из 1

Ошибка при выполнении при обращении к файлу

Добавлено: 02 май 2009, 21:49
GrindeX
uses crt;
type massiv3=array[1..1000]of integer;
var i:integer;ff:text;m3:massiv3;
begin
clrscr;

assign(ff,'c:\pg\111\2.txt');
i:=0;
repeat
i:=i+1;
read(ff,m3);
until eof(ff);
close(ff);
readln;
end.

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

Re: Ошибка при выполнении при обращении к файлу

Добавлено: 02 май 2009, 22:16
Naeel Maqsudov
Не указано:
1) какой версии компилятор (подозреваю, что Turbo Pascal 7 для Win)
2) на какой строчке (подозреваю, что на read)
3) какая ошибка - номер и сообщение

Если указанные мною предположения верны, то добавьте в начале
uses wincrt;

Дело в том, что в TP7 и BP7 операции ввода вывода (в т.ч. тривиальный вывод на экран) в современных windows могут работаь некорректно, так как рассчитаны на DOS.

Re: Ошибка при выполнении при обращении к файлу

Добавлено: 02 май 2009, 22:54
GrindeX
Проблема в том что команда read(ff,m3); записывает все содержимое файла в один элемент массива, а мне нужно чтобы каждая циферка из файла была отдельным элементом.

Re: Ошибка при выполнении при обращении к файлу

Добавлено: 03 май 2009, 22:08
BHy4ok
1) Вы забыли "reset(ff)"
2) Чтобы считать поэлементно нужно рабоать со строкой.
"for I := 1 to length(s)" - тут можете поставить свое условине то-же <>''
[syntax='Pascal']
uses
Crt;

type
massiv3=array[1..100] of integer;
var
i,j:integer;
ff:text;
m3:massiv3;
s:string;

begin
CrlScr;
assign(ff,'c:\pg\111\2.txt');
reset(ff);
read(ff,s);
for I := 1 to length(s) do
val(s,m3,j);
close(ff);
readln;
end.
[/syntax]

Re: Ошибка при выполнении при обращении к файлу

Добавлено: 03 май 2009, 23:07
GrindeX
Спасибо !!