Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Object Pascal: кроссплатформенные технологии > помогите разобраться с массивом


Автор: doorway 15.9.2010, 11:47
вот написал программу, которая из текстового файла(столбик целых чисел, 10 строк) должна строки считать в массив. а потом я с этим массивом буду работать. компилируется все нормально, но при выполнении ошибка runtime error 106 at 0BF0:0095

Код

program var2;
var 
mass:array[1..10] of integer;
inp, out:text;
i:integer;
begin
assign(inp,'inpu.inp');
assign(out,'outpu.out');
reset(inp);
rewrite(out);
i:=1;
while not Eof(input) do
begin
readln(inp,mass[i]);
i:=i+1;
end;
write(out,mass[i]);
close(out);
close(inp);
end.


Автор: pseud 15.9.2010, 12:00
Цитата(doorway @  15.9.2010,  11:47 Найти цитируемый пост)
ошибка runtime error 106 at 0BF0:0095

в какой строке?

Автор: Frees 15.9.2010, 12:18
может это в файле например перенос строки лишний
может


Код

for i := 1 to 10 do
begin
  readln(inp,mass[i]);
end;

Автор: doorway 15.9.2010, 12:43
в 14 строке пишет invalid numeric format, а до этого, если смотреть по шагам, курсор на черном экране чет ходит вправо, создает пустые строки, потом если дальше дать f8, опять начинает с первого бигина, а потом на 14 строке рантайм еррор

Добавлено @ 12:53
Код

program var2;
var
mass:array[1..10] of integer;
inp, out:text;
i:integer;
begin
assign(inp,'inpu.inp');
assign(out,'outpu.out');
reset(inp);
rewrite(out);
for i:=1 to 10 do
begin
read(inp,mass[i]);
i:=i+1;
end;
write(out,mass[2]);
close(out);
close(inp);
end.


вот в таком виде работает без ошибок, но результат в выходном файле 0. 
входной файл имеет вид типа:
1
2
3
4
..
10

Автор: aleksh 15.9.2010, 14:10
во первых 14 строка вообще лишняя
Цитата(doorway @  15.9.2010,  12:43 Найти цитируемый пост)
i:=i+1;

зачем?
во вторых, если память мне не изменяет, то не read, а readln

Автор: doorway 15.9.2010, 18:54
Цитата(aleksh @ 15.9.2010,  14:10)

Цитата(doorway @  15.9.2010,  12:43 Найти цитируемый пост)
i:=i+1;
во первых 14 строка вообще лишняя зачем?
во вторых, если память мне не изменяет, то не read, а readln

ууу, все верно, да, как-то я не заметил, но все равно, работает, а на выходе 0

Автор: bems 16.9.2010, 01:15
Код

while not Eof(input) do
Вроде завел отдельный inp для этого, а потом пытаешся работать с неоткрытым input

Автор: sanek1990 21.9.2010, 14:43
вот держи все работает!

Код

program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  mass: array [1..10] of integer;
  inp, out: TextFile;
  i: integer;
  
begin
  Assign(inp,'inpu.txt');
  Assign(out,'outpu.txt');

  Reset(inp);
  Rewrite(out);

  for i:=1 to 10 do
  begin
    Readln(inp,mass[i]);
    Writeln(out,mass[I]);
  end;

    CloseFile(out);
    CloseFile(inp);
end.

 

Автор: superVad 21.9.2010, 18:47
Написал на делфи... Не заметил, что паскаль.

Автор: sanek1990 22.9.2010, 08:00
и точно, не заметил smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)