Главная страница
    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.007 c
1-1228119004
parasolka
2008-12-01 11:10
2009.12.06
Передача параметров в Dll.


15-1254491780
Unknown user
2009-10-02 17:56
2009.12.06
Чтение/запись PSD (Photoshop) формата


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


15-1254826192
Windows User
2009-10-06 14:49
2009.12.06
Скрыть таскбар...


2-1255580012
uno-84
2009-10-15 08:13
2009.12.06
Создание файла .DBF нужной версии





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский