![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Не могу прочитать файл ;-)
Hollander © (2006-11-28 21:29:00)Мне надо прочитать текстовый файл по строкам и занести все строки в массив. Написал такой код:
procedure TSMemo.getlist();
var f: TextFile;
s:string;
count: integer;
begin
AssignFile(f, 'C:\list.txt');
Reset(f);
repeat
readln(f, s);
Thelist[count] := s;
Inc(count);
until not EOF(f);
end;
Если не писать Reset(f), то прога выдает такую ошибку:
Project Project1.exe raised exception class EInOutError with message 'I/O error 104'
Если пишу, то такую:
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 0040441C in module 'Project1.exe'
Помогите плз
RASkov (2006-11-29 03:47:00) [1]Добавлю к [2]
4. count не инициализирован.
> все строки в массив
И если Thelist это массив, то какие у него границы и в случае динамич. массива как задается ему размер?
Так же если размер массива известен зарание(известно кол-во строк в файле) то лучше for:='ом по нему пробежаться.
Или другой вариант(если не известно зарание кол-во элементов массива/строк в файле)
загрузить файл в StringList, и его использовать в качестве массива. Точно такой же индексный доступ...
Алхимик (2006-11-28 22:03:00) [2]Пример из справки раз:
var
F: TextFile;
S: string;
begin
if OpenDialog1.Execute then { Display Open dialog box }
begin
AssignFile(F, OpenDialog1.FileName); { File selected in dialog }
Reset(F);
Readln(F, S); { Read first line of file }
Edit1.Text := S; { Put string in a TEdit control }
CloseFile(F);
end;
end;
Пример из справки два:
var
F1, F2: TextFile;
Ch: Char;
begin
if OpenDialog1.Execute then begin
AssignFile(F1, OpenDialog1.Filename);
Reset(F1);
if SaveDialog1.Execute then begin
AssignFile(F2, SaveDialog1.Filename);
Rewrite(F2);
while not Eof(F1) do
begin
Read(F1, Ch);
Write(F2, Ch);
end;
CloseFile(F2);
end;
CloseFile(F1);
end;
end;
Потом есть такая замУчательная весЧь как трассировка:
Step Over и Trace Into
http://helpstudio.h1.ru/books/d4/d4_10/step_ove.htm
которая покажет на какой строке происходит ошибка.
Dmitrij_K (2006-11-28 21:56:00) [3]Thelist - это что?
Desdechado (2006-11-28 21:56:00) [4]1. Thelist не описано
2. а не открыт ли этот файл еще чем-нибудь
3. в условии until лишний not