![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с 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]Как решил, что это так?