Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.005 c
2-1256015020
Роман
2009-10-20 09:03
2009.12.06
DBF to DB


2-1256034430
Фуфик
2009-10-20 14:27
2009.12.06
Сменить путь в ADOConnection


15-1255020008
Piter
2009-10-08 20:40
2009.12.06
PHP: error_reporting() возвращает непредвиденно ноль


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


15-1254495687
Cyrax
2009-10-02 19:01
2009.12.06
Кто-нибудь знает, что такае "партномер" ?





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