Форум программистов, компьютерный форум, киберфорум
Наши страницы
Lazarus
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
El petyx
0 / 0 / 0
Регистрация: 24.05.2017
Сообщений: 3
1

Ошибка 103 при попытке чтения файла

14.06.2017, 13:52. Просмотров 879. Ответов 3
Метки нет (Все метки)

Здравствуйте. После попытки чтения выдается ошибка runerror 103. Что нужно исправить?
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
procedure TForm1.Button3Click(Sender: TObject);
var
f:file;
s:file;
i,j,p:integer;
begin
Assignfile(f,'source.dat');
ReWrite(f,1);
for i:=1 to stringgrid1.RowCount do
 for j:=1 to stringgrid1.ColCount do
 begin
 p:=strtoint(stringgrid1.cells[j-1,i-1]);
 blockwrite(f,p,sizeof(p));
end;
CloseFile(f);
AssignFile(s,'size.dat');
ReWrite(s,1);
blockwrite(s,stringgrid1.RowCount,sizeof(stringgrid1.RowCount));
blockwrite(s,stringgrid1.ColCount,sizeof(stringgrid1.ColCount));
CloseFile(s);
end;
 
procedure TForm1.Button4Click(Sender: TObject);
var
f:file;
s:file;
i,j,p,y:integer;
si: array [1..2] of integer;
begin
AssignFile(s,'size.dat');
Reset(s,1);
for i:=1 to 2 do begin
    BlockRead(f,p,sizeof(p));
    si[i]:=p;
    end;
CloseFile(s);
StringGrid2.RowCount:=si[1];
StringGrid2.ColCount:=si[2];
 
AssignFile(f,'source.dat');
Reset(f,1);
 
{while not Eof(f) do
begin
   for i:=1 to StringGrid2.RowCount do
            for j:=1 to StringGrid2.ColCount do
                begin
                   BlockRead(f,p,sizeof(p));
                   StringGrid2.Cells[i-1,j-1]:=IntToStr(p);
                end;  
CloseFile(f);
end;
end;
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.06.2017, 13:52
Ответы с готовыми решениями:

Текстовый редактор, ошибка при попытке сохранения файла
Здравствуйте! Помогите, пожалуйста, программа-блокнот- компиляция проходит...

Ошибка чтения *.dat файла
Всем доброго времени суток. В своё время делал курсовую работу (тесты), и вот...

Ошибка при попытке присвоения значения переменной класса
Что то не пойму опять что не так :-( есть некий класс, описанный так: ...

При попытке открыть файл, в пути которого есть символы на кириллице, возникает ошибка: Unable to open file
Добавил на форму OpenDialog, Memo. При попытке открыть файл в пути которого...

Ошибка при считывании из файла
пишу тестер при кампиляции выдает не понятную ошибку,думаю проблема при...

3
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26363 / 17688 / 7004
Регистрация: 22.10.2011
Сообщений: 31,124
Записей в блоге: 6
14.06.2017, 14:41 2
Открываешь файл через переменную s (31-я строка), а читаешь через переменную f (33-я строка). Издержки копи-пасты?
0
El petyx
0 / 0 / 0
Регистрация: 24.05.2017
Сообщений: 3
15.06.2017, 07:39  [ТС] 3
Не, издержки криворукости. Вот, подправил, но ошибка (103) таже появляется, а именно в строке 43

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
procedure TForm1.Button3Click(Sender: TObject);
var
f:file;
s:file;
i,j,p:integer;
begin
Assignfile(f,'source.dat');
ReWrite(f,1);
for i:=1 to stringgrid1.RowCount do
 for j:=1 to stringgrid1.ColCount do
 begin
 p:=strtoint(stringgrid1.cells[j-1,i-1]);
 blockwrite(f,p,sizeof(p));
end;
CloseFile(f);
AssignFile(s,'size.dat');
ReWrite(s,1);
blockwrite(s,stringgrid1.RowCount,sizeof(stringgrid1.RowCount));
blockwrite(s,stringgrid1.ColCount,sizeof(stringgrid1.ColCount));
CloseFile(s);
end;
 
procedure TForm1.Button4Click(Sender: TObject);
var
f:file;
s:file;
i,j,p,y:integer;
si: array [1..2] of integer;
begin
AssignFile(s,'size.dat');
Reset(s,1);
for i:=1 to 2 do begin
    BlockRead(s,p,sizeof(p));
    si[i]:=p;
    end;
CloseFile(s);
StringGrid2.RowCount:=si[1];
StringGrid2.ColCount:=si[2];
 
AssignFile(f,'source.dat');
Reset(f,1);
 
while not Eof(f) do
begin
   for i:=1 to StringGrid2.ColCount do
            for j:=1 to StringGrid2.RowCount do
                begin
                   BlockRead(f,p,sizeof(p));
                   StringGrid2.Cells[i-1,j-1]:=IntToStr(p);
                end;
CloseFile(f);
end;
end;
0
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
26363 / 17688 / 7004
Регистрация: 22.10.2011
Сообщений: 31,124
Записей в блоге: 6
15.06.2017, 09:22 4
Лучший ответ Сообщение было отмечено volvo как решение

Решение

Цикл while не нужен, из файла и так прочитается столько значений, сколько туда было записано:
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
procedure TForm1.Button4Click(Sender: TObject);
var
  f: file;
  s: file;
  i, j, p, y: integer;
  si: array [1..2] of integer;
begin
  AssignFile(s, 'size.dat');
  Reset(s, 1);
  for i := 1 to 2 do
  begin
    BlockRead(s, p, sizeof(p));
    si[i] := p;
  end;
  CloseFile(s);
  StringGrid2.RowCount := si[1];
  StringGrid2.ColCount := si[2];
 
  AssignFile(f, 'source.dat');
  Reset(f, 1);
 
  //while not EOF(f) do
  //begin
    for i := 1 to StringGrid2.ColCount do
      for j := 1 to StringGrid2.RowCount do
      begin
        BlockRead(f, p, sizeof(p));
        StringGrid2.Cells[i - 1, j - 1] := IntToStr(p);
      end;
    CloseFile(f);
  //end;
end;
P.S. Ты в курсе, что в StringGrid будет транспонированная относительно StringGrid1 матрица?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.06.2017, 09:22

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

Ошибка при вызове файла справки
При вызове файла справки из приложения на Delphi, файл запускается, но при этом...

Ошибка в методе при сохранении файла
Пытаюсь сохранить контейнер в файл, но выводит ошибку в классе tHouse на...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru