Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.12.06;
Скачать: CL | DM;

Вниз

Чтение из файла при помощи 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.012 c
15-1254981541
Хм...
2009-10-08 09:59
2009.12.06
Самопроизвольное движение курсора мыши


15-1254842298
Alkid
2009-10-06 19:18
2009.12.06
Самодурствующее начальство


15-1255165531
Дмитрий_
2009-10-10 13:05
2009.12.06
Разъесните что нужно сделать


6-1210159869
ILNARus
2008-05-07 15:31
2009.12.06
прием данных в разных потоках


15-1254984944
Savek
2009-10-08 10:55
2009.12.06
Недостаточно привилегий