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

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

Как заменить содержимое файла, открываемого с помощью TFileStream [D7, WinXP]


GreySerg ©   (2004-08-14 23:04:00) 

Как заменить содержимое файла, открываемого с помощью TFileStream ?

Чё-то такой код неправильно выполняется :

var
 fStream: TFileStream;
 sStream: TStringStream;
 S: String;
begin
 try
   fStream:=TFileStream.Create(FileName ,fmOpenReadWrite or fmShareDenyWrite );
   sStream := TStringStream.Create('');
   try
     sStream.CopyFrom(fStream,fStream.Size);
     S := sStream.DataString;

// какие-то действия со строкой S, представляющей файл

     fStream.Position := 0;
     fStream.Write(S,Length(S));
   finally
     sStream.Free;
     fStream.Free
   end
 except
 end
end;

Мастера , подскажите как надо правильно ?


Anatoly Podgoretsky   (2004-08-15 07:41:00) [1]

Я же и говорю боязливый программист :-)


Andy BitOff   (2004-08-15 02:13:00) [2]

>это я ловлю ошибки, чтобы не выводило их

Тонко =) Надо писать, так чтобы их не было, а если могут быть, то их надо обрабатывать.


GreySerg   (2004-08-14 23:43:00) [3]

> Mim1 ©
Спасибо , только перед строкой fStream.Position := 0; надо ещё поставить  fStream.Size := Length(S);

а except
end - это я ловлю ошибки, чтобы не выводило их


Anatoly Podgoretsky   (2004-08-14 23:18:00) [4]

Ну тогда же будет сообщение об ошибки, зачем программиста пугать?


Mim1   (2004-08-14 23:06:00) [5]

fStream.Write(pointer(S)^,Length(S));

И ни в коем случае не надо  
except
end
ни к чему хорошему не приведет.


Наверх

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