Текущий архив: 2006.12.17;
Скачать: CL | DM;
ВнизНе могу прочитать файл ;-) Найти похожие ветки
← →
Hollander (2006-11-28 21:29) [0]Мне надо прочитать текстовый файл по строкам и занести все строки в массив. Написал такой код:
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"
Помогите плз
← →
Dmitrij_K (2006-11-28 21:56) [1]Thelist - это что?
← →
Desdechado © (2006-11-28 21:56) [2]1. Thelist не описано
2. а не открыт ли этот файл еще чем-нибудь
3. в условии until лишний not
← →
Алхимик © (2006-11-28 22:03) [3]Пример из справки раз:
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
которая покажет на какой строке происходит ошибка.
← →
RASkov (2006-11-29 03:47) [4]Добавлю к [2]
4. count не инициализирован.
> все строки в массив
И если Thelist это массив, то какие у него границы и в случае динамич. массива как задается ему размер?
Так же если размер массива известен зарание(известно кол-во строк в файле) то лучше for:="ом по нему пробежаться.
Или другой вариант(если не известно зарание кол-во элементов массива/строк в файле)
загрузить файл в StringList, и его использовать в качестве массива. Точно такой же индексный доступ...
Страницы: 1 вся ветка
Текущий архив: 2006.12.17;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.044 c