Загрузка из текстового файла

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Загрузка из текстового файла

Сообщение Decessus » 06.09.2011 19:35:35

нужно из текстового файла загрузить в массив записей данные, не въеду как их оттуда достать вот что сам набрасал, но выдаёт ошибку при попытке открыть файл....
Код: Выделить всё
procedure TForm1.Image2Click(Sender: TObject);
var st,k:string;f:TextFile; n:integer; e:tstringlist;
begin
  if OpenDialog1.Execute then k:=OpenDialog1.FileName;
  //memo1.Lines.LoadFromFile(k);    способ 1 загрузить в мемо
  e.LoadFromFile(k);// второй способ
  {AssignFile(f,k); и наконец третий, ни один не заработал
reset(f);
n:=0;
while not eof(f) do
begin
n:=n+1;
  readln(f,st);
  with s[1] do
   begin
         fam:=copy(st,1,pos(' ',st)-1);
         delete(st,1,pos(' ',st));
         name:=copy(st,1,pos(' ',st)-1);
         delete(st,1,pos(' ',st));
         group:=copy(st,1,pos(' ',st)-1);
         delete(st,1,pos(' ',st));
         year:=copy(st,1,pos(' ',st)-1);
         delete(st,1,pos(' ',st));
         r1:=copy(st,1,pos(' ',st)-1);
         delete(st,1,pos(' ',st));
         r2:=copy(st,1,pos(' ',st)-1);
         delete(st,1,pos(' ',st));
         r3:=copy(st,1,pos(' ',st)-1);
         delete(st,1,pos(' ',st));
         r4:=copy(st,1,pos(' ',st)-1);
         delete(st,1,pos(' ',st));
         r5:=copy(st,1,pos(' ',st)-1);
         delete(st,1,pos(' ',st));
   end;
  end;
CloseFile(f); 
Decessus
новенький
 
Сообщения: 11
Зарегистрирован: 01.04.2011 18:36:52

Re: Загрузка из текстового файла

Сообщение Odyssey » 06.09.2011 20:13:21

Чтобы понять в чём проблема, нужно знать какую конкретно ошибку выдаёт -- текст сообщения, код ошибки, имя класса исключения, и т.п.
Odyssey
энтузиаст
 
Сообщения: 580
Зарегистрирован: 29.11.2007 17:32:24

Re: Загрузка из текстового файла

Сообщение Nik » 06.09.2011 20:20:52

Методом телепатии вычисляю ошибку для второго способа:

Код: Выделить всё
e.LoadFromFile(k);// второй способ


Для начала создайте объект типа TStringList:

Код: Выделить всё
e:=TStringList.Creater;
e.LoadFromFile(k);


PS. Маленький совет: используйте более читабельные и понятные имена переменных. От всех этих e и k в глазах рябит, и читать код не хочется.
Аватара пользователя
Nik
энтузиаст
 
Сообщения: 573
Зарегистрирован: 04.02.2006 00:08:09
Откуда: Киров

Re: Загрузка из текстового файла

Сообщение Decessus » 06.09.2011 20:25:35

за переменные извините, это только набросок вот и не придумал им имена...
по поводу второго способа знаю, забыл про это, исправить уже не успел т.к переустанавливаю лазарус...
ошибка состояла в том что невозможно было открыть файл, но скопировал этот код на делфи и там он всё нормально загрузил в мемо остального не проверял...
Decessus
новенький
 
Сообщения: 11
Зарегистрирован: 01.04.2011 18:36:52

Re: Загрузка из текстового файла

Сообщение Mr.Smart » 06.09.2011 20:38:52

Код: Выделить всё
e.LoadFromFile(UTF8ToSys(k))
Mr.Smart
долгожитель
 
Сообщения: 1796
Зарегистрирован: 29.03.2008 01:01:11
Откуда: из леса!

Re: Загрузка из текстового файла

Сообщение Decessus » 06.09.2011 21:04:33

спасибо!!!!
вот так вот сделал=)
Код: Выделить всё
uses ... , LConvEncoding;
...
var Buffer: TStringList;
...
Buffer := TStringList.Create;
Buffer.LoadFromFile(UTF8ToSys(k));
Memo1.Text := CP1251ToUTF8(Buffer.Text);
FreeAndNil(Buffer);
Decessus
новенький
 
Сообщения: 11
Зарегистрирован: 01.04.2011 18:36:52


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 225

Рейтинг@Mail.ru
cron