Главная страница
    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.48 MB
Время: 0.004 c
6-1210247266
laao
2008-05-08 15:47
2009.12.06
как корректно завершать работу с поднятым IdHTTPServer ?


4-1224198326
Riply
2008-10-17 03:05
2009.12.06
Потоко-безопасный перебор модулей чужого процесса.


1-1227707159
DmitriyG
2008-11-26 16:45
2009.12.06
На этапе компиляции определить подключен или нет модуль


15-1255001989
картман
2009-10-08 15:39
2009.12.06
"Служба XXX неожиданно прервана" Service Control Manager код 7034


15-1254837325
VladOfMonster
2009-10-06 17:55
2009.12.06
Срочно. Установка wine в Linux





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский