Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема с TFileStream [D6, Win2k]


Ivan Kohut ©   (2002-04-14 21:12:00) 

Уважаемые Мастера!
У меня возникла проблема с TFileStream
Вот фрагмент кода

var f1,f2:TFileStream;
s:string;
rez:string;
begin
f1:=TFileStream.Create("temp.txt",fmCreate);
setLength(s,10);
s:="1111155645";
f1.WriteBuffer(s,10);
f1.Free;

f2:=TFileStream.Create("temp.txt",fmOpenRead);
SetLength(rez,5);
f2.ReadBuffer(rez,5);
f2.Free;

И после етого rez="1111155645". А должно же быть "11111" ?
Помогите, если знаете где ошибка. Буду очень благодарен.


Ivan Kohut   (2002-04-15 10:23:00) [1]

Большое спасибо за помощь! Все заработало!


MBo   (2002-04-15 07:06:00) [2]

ты пишешь и читаешь не содержимое строки, а ее адрес, указатель, и при чтении получается rez- КОПИЯ s.
Решение - при чтении и записи делать, как Anatoly Podgoretsky сказал- s[1] и rez[1]


Anatoly Podgoretsky   (2002-04-14 22:11:00) [3]

Да еще не мешало бы передать адресе буффера, а не адрес переменной с адресом буфера, x[1]


Ivan Kohut   (2002-04-14 21:58:00) [4]

Да пробовал, пробовал...
Length(rez)=10 !!!!!!!!!!!!!!!!!!!!!!

И, еще а в файле то появляется после всего етого
E0F14400FCF61200AAFA (смотрел через Hex32)


Anatoly Podgoretsky   (2002-04-14 21:41:00) [5]

А через Length не пробовал?


Ivan Kohut   (2002-04-14 21:36:00) [6]

Через AddWatch...


Anatoly Podgoretsky   (2002-04-14 21:26:00) [7]

Как решил, что это так?


Наверх

Титульная страница Поиск, карта сайта Написать письмо