![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Чтение из файла при помощи Filestream
den49 © (2009-10-16 20:39:00)НЕ могу разобраться в чем дело. Текст из файла не выводиться в Мемо(((ПОдскажите пожалуйста где ошибка...
procedure TForm1.Button1Click(Sender: TObject);
var p : PChar;
begin
GetMem(p, 255);
with TFileStream.Create('c:\12.txt', fmOpenReadWrite) do
try
Seek(10,soFromBeginning);
read(p^, 254);
Memo1.Lines.Add(p);
finally
free;
end;
FreeMem(p);
end;
Leonid Troyanovsky (2009-10-18 23:35:00) [1]
> den49 © (16.10.09 22:49) [17]
> Жорж, спасибо за ответ. Разумное решение.
Любопытно, что здесь может означать "разумное".
Критерий разумности - в студию, если не затруднит.
--
Regards, LVT.
den49 (2009-10-16 22:49:00) [2]Жорж, спасибо за ответ. Разумное решение.
Жорж (2009-10-16 22:37:00) [3]
> но хорошо бы текст в переменной хранить
var
SL: TStringList;
...
SL:=TStringList.Create;
..
SL.LoadFromFile('c:\123.txt');
...
Memo1.Lines.Assign(SL); //Копируем текст в мемо из переменной
..
SL.Assign(Memo1.Lines);//Обратно
...
SL.Free;// не забываем разрушать то, что создали явно
Германн (2009-10-16 21:31:00) [4]
> Это тоже не работает
Под String память кто выделять будет?
den49 (2009-10-16 21:28:00) [5]
> Замени PChar на String и всё будет нормально.
procedure TForm1.Button1Click(Sender: TObject);
var p :string;
begin
with TFileStream.Create('c:\12.txt', fmOpenRead) do
try
Seek(10,soFromBeginning);
read(p, 254);
Memo1.Lines.Add(p);
finally
free;
end;
end;
Это тоже не работает, когда начиает считывать P inaccessible value.
qwer_qwer (2009-10-16 21:19:00) [6]
> den49 © (16.10.09 21:10) [10]
Замени PChar на String и всё будет нормально.
den49 (2009-10-16 21:19:00) [7]с Memo1.Lines.LoadFromFile('c:\12.txt'); в мемо все выводиться, но хорошо бы текст в переменной хранить, а не привязывать к компоненту. А 2 фрагмента кода выводят пятый символ и всё.Весь остальной текст остается за кадром(
Медвежонок Пятачок (2009-10-16 21:13:00) [8]Какой вариант?
У тебя ненавязчиво спросили что показывают эти два фрагмента кода на твоем файле
den49 (2009-10-16 21:10:00) [9]НУ да, кстати про этот вариант совсем забыл, спасиб.
Медвежонок Пятачок (2009-10-16 21:08:00) [10]....
ShowMessage('считано байт: ' + IntToStr(read(p^, 254));
....
Медвежонок Пятачок (2009-10-16 21:06:00) [11]Memo1.Lines.LoadFromFile('c:\12.txt');
den49 (2009-10-16 21:04:00) [12]В файле текст есть и он текстовый. Delphi 7. Может кто у себя попробует выполнить?
Медвежонок Пятачок (2009-10-16 21:02:00) [13]файл у тебя пустой. чего не понятно-то?
den49 (2009-10-16 21:01:00) [14]ИСправил все равно не пашет. Может добавляю в Мемо не правильно?
procedure TForm1.Button1Click(Sender: TObject);
var p : PChar;
begin
GetMem(p, 255);
ZeroMemory(p,255);
with TFileStream.Create('c:\12.txt', fmOpenRead) do
try
Seek(10,soFromBeginning);
read(p^, 254);
Memo1.Lines.Add(p);
finally
free;
end;
FreeMem(p);
end;
Медвежонок Пятачок (2009-10-16 20:59:00) [15]Я бы сказал что в нем текста не мало, а нет совсем.
Loginov Dmitry (2009-10-16 20:57:00) [16]> НЕ могу разобраться в чем дело. Текст из файла не выводиться
> в Мемо(((ПОдскажите пожалуйста где ошибка...
Вероятно, то в текстовом файле либо текста мало, либо он не такой уж и текстовый (где нибудь затесался нулевой байт).
Версия Delphi какая?
Медвежонок Пятачок (2009-10-16 20:49:00) [17]во вторых
with TFileStream.Create('c:\12.txt', fmOpenRead) do
Медвежонок Пятачок (2009-10-16 20:48:00) [18]Во первых:
GetMem(p, 255);
затем:
ZeroMemory(p,255);
иначе будет мусор в конце строки