Форум: "Начинающим";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];
Вниз
Tflestream Найти похожие ветки
← →
anton773 © (2006-07-08 20:23) [0]здравствуйте! Почему следующий код всегда выдает 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;
← →
begin...end © (2006-07-08 20:35) [1]В коде видно сразу несколько ошибок.
1. Перепутаны местами параметры при вызове метода Seek.
2. Вместо FileStream.Size указано FS.Size.
3. Вы пренебрегли моим ником.
:о)
← →
anton773 © (2006-07-08 21:22) [2]
> 1. Перепутаны местами параметры при вызове метода Seek.
> 2. Вместо FileStream.Size указано FS.Size.
> 3. Вы пренебрегли моим ником.
Вашим ником я не пренебрегал :) Просто обрезал все лишнее(для упрощения) Да вдобавок код не копировал из делфей,а набирал вручную поэтому там опечатки. А вообще ты оказался прав.Причина была в том,что перепутаны местами параметры метода Seek.(компиллятор почемуто не ругался).Спасибо!
← →
Германн © (2006-07-09 02:35) [3]
> Причина была в том,что перепутаны местами параметры метода
> Seek.(компиллятор почемуто не ругался).
А почему бы ему ругаться:
procedure Seek(var F; N: Longint);
← →
Германн © (2006-07-09 02:39) [4]
> А почему бы ему ругаться:procedure Seek(var F; N: Longint);
А вот теперь и я сам задам этот вопрос!
← →
Шпиён (2006-07-09 02:55) [5]
> Германн © (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 03:02) [6]
> Шпиён (09.07.06 02:55) [5]
Понял свою ошибку.
← →
anton773 © (2006-07-09 08:15) [7]Еще вопрос можно? здесь файловый поток создается если файл уже существует. А если файла нет то как его(файл) создать а потом создать поток?
← →
XbI (2006-07-09 09:48) [8]AssignFile,Rewrite,BlockWrite,CloseFile...и дальше уже как ты там делал...
← →
Loginov Dmitry © (2006-07-09 10:00) [9]> А если файла нет то как его(файл) создать а потом создать
> поток?
Например, так:procedure TForm1.Button1Click(Sender: TObject);
const
FileName = "MyFile.txt";
begin
with TFileStream.Create(FileName, fmCreate) do
try
// Здесь идет обработка
Write("какие-то данные", 15);
finally
Free;
end;
end;
← →
Loginov Dmitry © (2006-07-09 10:02) [10]Не, лучше так:
var
fMode: Word;
....
begin
if FileExists(FileName) then fMode := fmOpenXXX else fMode := fmCreate;
.....
← →
anton773 © (2006-07-09 10:43) [11]Всем спасибо! Сделал по совету Loginov Dmitry. Все работает.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.01 c