Форум: "Начинающим";
Текущий архив: 2009.12.06;
Скачать: [xml.tar.bz2];
ВнизЧтение из файла при помощи Filestream Найти похожие ветки
← →
den49 © (2009-10-16 20:39) [0]НЕ могу разобраться в чем дело. Текст из файла не выводиться в Мемо(((ПОдскажите пожалуйста где ошибка...
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;
← →
Медвежонок Пятачок © (2009-10-16 20:48) [1]Во первых:
GetMem(p, 255);
затем:
ZeroMemory(p,255);
иначе будет мусор в конце строки
← →
Медвежонок Пятачок © (2009-10-16 20:49) [2]во вторых
with TFileStream.Create("c:\12.txt", fmOpenRead) do
← →
Loginov Dmitry © (2009-10-16 20:57) [3]> НЕ могу разобраться в чем дело. Текст из файла не выводиться
> в Мемо(((ПОдскажите пожалуйста где ошибка...
Вероятно, то в текстовом файле либо текста мало, либо он не такой уж и текстовый (где нибудь затесался нулевой байт).
Версия Delphi какая?
← →
Медвежонок Пятачок © (2009-10-16 20:59) [4]Я бы сказал что в нем текста не мало, а нет совсем.
← →
den49 © (2009-10-16 21:01) [5]ИСправил все равно не пашет. Может добавляю в Мемо не правильно?
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 21:02) [6]файл у тебя пустой. чего не понятно-то?
← →
den49 © (2009-10-16 21:04) [7]В файле текст есть и он текстовый. Delphi 7. Может кто у себя попробует выполнить?
← →
Медвежонок Пятачок © (2009-10-16 21:06) [8]Memo1.Lines.LoadFromFile("c:\12.txt");
← →
Медвежонок Пятачок © (2009-10-16 21:08) [9]....
ShowMessage("считано байт: " + IntToStr(read(p^, 254));
....
← →
den49 © (2009-10-16 21:10) [10]НУ да, кстати про этот вариант совсем забыл, спасиб.
← →
Медвежонок Пятачок © (2009-10-16 21:13) [11]Какой вариант?
У тебя ненавязчиво спросили что показывают эти два фрагмента кода на твоем файле
← →
den49 © (2009-10-16 21:19) [12]с Memo1.Lines.LoadFromFile("c:\12.txt"); в мемо все выводиться, но хорошо бы текст в переменной хранить, а не привязывать к компоненту. А 2 фрагмента кода выводят пятый символ и всё.Весь остальной текст остается за кадром(
← →
qwer_qwer (2009-10-16 21:19) [13]
> den49 © (16.10.09 21:10) [10]
Замени PChar на String и всё будет нормально.
← →
den49 © (2009-10-16 21:28) [14]
> Замени 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.
← →
Германн © (2009-10-16 21:31) [15]
> Это тоже не работает
Под String память кто выделять будет?
← →
Жорж (2009-10-16 22:37) [16]
> но хорошо бы текст в переменной хранить
var
SL: TStringList;
...
SL:=TStringList.Create;
..
SL.LoadFromFile("c:\123.txt");
...
Memo1.Lines.Assign(SL); //Копируем текст в мемо из переменной
..
SL.Assign(Memo1.Lines);//Обратно
...
SL.Free;// не забываем разрушать то, что создали явно
← →
den49 © (2009-10-16 22:49) [17]Жорж, спасибо за ответ. Разумное решение.
← →
Leonid Troyanovsky © (2009-10-18 23:35) [18]
> den49 © (16.10.09 22:49) [17]
> Жорж, спасибо за ответ. Разумное решение.
Любопытно, что здесь может означать "разумное".
Критерий разумности - в студию, если не затруднит.
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.12.06;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.006 c