Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.047 c
15-1164353049
Железяка
2006-11-24 10:24
2006.12.17
Закрыть доступ в сеть


2-1164818064
мишок
2006-11-29 19:34
2006.12.17
Системный файл


2-1164978170
.ruslan
2006-12-01 16:02
2006.12.17
PageScroller убрать кнопки прокрутки и использовать колёсик мыши


1-1162542343
tower
2006-11-03 11:25
2006.12.17
Передать массив как аргумент функции из dll


2-1164782214
Unknowing
2006-11-29 09:36
2006.12.17
Логика работы программы