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