Главная страница
    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.011 c
15-1151599434
PSPF2003
2006-06-29 20:43
2006.07.30
Выход в инет


2-1152413062
KLAUS
2006-07-09 06:44
2006.07.30
Работа с ресурсами


15-1151777769
kaif
2006-07-01 22:16
2006.07.30
С сегодняшнего дня рубль стал конвертируемым


3-1148541696
DelphiN!
2006-05-25 11:21
2006.07.30
Добавление столбца в таблицу БД Firebird


15-1151314731
ANB
2006-06-26 13:38
2006.07.30
Бутово





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский