Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2006.07.30;
Скачать: [xml.tar.bz2];

Вниз

Tflestream   Найти похожие ветки 

 
anton773 ©   (2006-07-08 20:23) [0]

здравствуйте! Почему следующий код всегда выдает 0 procedure TForm2.BitBtn1Click(Sender: TObject);
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;
I всегда равно 0


 
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
1-1150367443
Aleksandr.
2006-06-15 14:30
2006.07.30
Как подключить к программе chm-файл?


15-1151669678
MsGuns
2006-06-30 16:14
2006.07.30
Сожмем кулаки за Украину ?


15-1152066202
ghost_rustam
2006-07-05 06:23
2006.07.30
paskal or delphi


2-1152621230
ddhvvn
2006-07-11 16:33
2006.07.30
Чтение шестнадцатиричных чисел


15-1151567937
Holy
2006-06-29 11:58
2006.07.30
NEC ND-3551A. Disk T@2 и LabelFlash.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский