![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Tflestream [WinXP]
anton773 © (2006-07-08 20:23:00)здравствуйте! Почему следующий код всегда выдает 0
procedure TForm2.BitBtn1Click(Sender: TObject);I всегда равно 0
var
FileStream: TFileStream;
I:integer;
begin
if FileExists(Edit2.Text) then
FileStream:= TFileStream.Create(Edit2.Text,fmOpenReadWrite);
FileStream.Seek(soFromBeginning,FS.Size);
I:= FileStream.Position;
anton773 (2006-07-09 10:43:00) [1]Всем спасибо! Сделал по совету Loginov Dmitry. Все работает.
Loginov Dmitry (2006-07-09 10:02:00) [2]Не, лучше так:
var
fMode: Word;
....
begin
if FileExists(FileName) then fMode := fmOpenXXX else fMode := fmCreate;
.....
Loginov Dmitry (2006-07-09 10:00:00) [3]> А если файла нет то как его(файл) создать а потом создать
> поток?
Например, так:
procedure TForm1.Button1Click(Sender: TObject);
const
FileName = 'MyFile.txt';
begin
with TFileStream.Create(FileName, fmCreate) do
try
// Здесь идет обработка
Write('какие-то данные', 15);
finally
Free;
end;
end;
XbI (2006-07-09 09:48:00) [4]AssignFile,Rewrite,BlockWrite,CloseFile...и дальше уже как ты там делал...
anton773 (2006-07-09 08:15:00) [5]Еще вопрос можно? здесь файловый поток создается если файл уже существует. А если файла нет то как его(файл) создать а потом создать поток?
Германн (2006-07-09 03:02:00) [6]
> Шпиён (09.07.06 02:55) [5]
Понял свою ошибку.
Шпиён (2006-07-09 02:55:00) [7]
> Германн © (09.07.06 02:39) [4]
TFileStream:
property Size: Int64;
function Seek(Offset: Longint; Origin: Word): Longint; overload; virtual;
function Seek(const Offset: Int64; Origin: TSeekOrigin): Int64; override;
Германн (2006-07-09 02:39:00) [8]
> А почему бы ему ругаться:procedure Seek(var F; N: Longint);
А вот теперь и я сам задам этот вопрос!
Германн (2006-07-09 02:35:00) [9]
> Причина была в том,что перепутаны местами параметры метода
> Seek.(компиллятор почемуто не ругался).
А почему бы ему ругаться:
procedure Seek(var F; N: Longint);
anton773 (2006-07-08 21:22:00) [10]
> 1. Перепутаны местами параметры при вызове метода Seek.
> 2. Вместо FileStream.Size указано FS.Size.
> 3. Вы пренебрегли моим ником.
Вашим ником я не пренебрегал :) Просто обрезал все лишнее(для упрощения) Да вдобавок код не копировал из делфей,а набирал вручную поэтому там опечатки. А вообще ты оказался прав.Причина была в том,что перепутаны местами параметры метода Seek.(компиллятор почемуто не ругался).Спасибо!
begin...end (2006-07-08 20:35:00) [11]В коде видно сразу несколько ошибок.
1. Перепутаны местами параметры при вызове метода Seek.
2. Вместо FileStream.Size указано FS.Size.
3. Вы пренебрегли моим ником.
:о)