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

Вниз

Функция FileSize   Найти похожие ветки 

 
Roman88   (2009-04-03 09:44) [0]

Здравствуйте. Пытаюсь получить размер файла с помощью функции FileSize, но она возвращает не верное число. Подскажите что я не так делаю, вот пример кода:

procedure TForm1.Button1Click(Sender: TObject);
var
 f : TextFile;
begin
 AssignFile(f, "C:\1.xls");
 Reset(f);
 ShowMessage("размер = " + IntToStr(FileSize(f)));
end;

Функция возвращает 3 байта, в свойствах файла 410 байт. Подскажите, что делаю не так.


 
Palladin ©   (2009-04-03 09:50) [1]

потому что 410/128~3


 
Palladin ©   (2009-04-03 09:51) [2]

а какого хрена ты сообщаешь компилятору что ты собрался работать с файлом экселя как с текстовым?


 
Roman88   (2009-04-03 09:56) [3]


> потому что 410/128~3


А это что за математика такая?


> а какого хрена ты сообщаешь компилятору что ты собрался
> работать с файлом экселя как с текстовым?


На самом деле, работать буду с CSV фалами ...


 
Ega23 ©   (2009-04-03 09:58) [4]


> в свойствах файла 410 байт


Что-то ты братан брешешь. BIFF-8 как минимум имеет заголовок (512 байт), FAT (возможно и mini-FAT). Все блоки, ЕМНИП, по 512 байт идут.


 
Anatoly Podgoretsky ©   (2009-04-03 10:03) [5]

Используй FindFirst, кроме случаев когда необходимо работать с записями, а какие могут быть записи у текстового файла. Ну и про бессмысленность этого для Экселя тебе уже сказали.

Что за задачу решаешь?


 
Roman88   (2009-04-03 10:05) [6]


> Что-то ты братан брешешь. BIFF-8 как минимум имеет заголовок
> (512 байт), FAT (возможно и mini-FAT). Все блоки, ЕМНИП,
>  по 512 байт идут.


ну ошибся я, 410 КБ. 419840 байт


 
Roman88   (2009-04-03 10:07) [7]


> Используй FindFirst, кроме случаев когда необходимо работать
> с записями, а какие могут быть записи у текстового файла.
>  Ну и про бессмысленность этого для Экселя тебе уже сказали.
>
>
> Что за задачу решаешь?


Обработка строк CSV файлов. Размер хотел получить, что бы Gauge на форму поставить, для отображения прогресса.


 
Ega23 ©   (2009-04-03 10:09) [8]


> ну ошибся я, 410 КБ. 419840 байт


Штобы я так жил! на 3 порядка... :)))


 
Roman88   (2009-04-03 10:13) [9]


> Штобы я так жил! на 3 порядка... :)))


Если поможете, я помолюсь за это))


 
Anatoly Podgoretsky ©   (2009-04-03 10:16) [10]

Gauge?
Почему тогда .xls?


 
brother ©   (2009-04-03 10:20) [11]

из справки:
procedure TForm1.Button1Click(Sender: TObject);

var
  f: file of Byte;
  size: Longint;
  S: string;
  y: Integer;
begin
 if OpenDialog1.Execute then
 begin
   AssignFile(f, OpenDialog1.FileName);
   Reset(f);
   try
     size := FileSize(f);
     S := "File size in bytes: " + IntToStr(size);
     y := 10;
     Canvas.TextOut(5, y, S);
     y := y + Canvas.TextHeight(S) + 5;
     S := "Seeking halfway into file...";
     Canvas.TextOut(5, y, S);

     y := y + Canvas.TextHeight(S) + 5;
     Seek(f, size div 2);
     S := "Position is now " + IntToStr(FilePos(f));
     Canvas.TextOut(5, y, S);
   finally
     CloseFile(f);
   end;
 end;
end;

а у тебя:

> var
> f : TextFile;


 
Roman88   (2009-04-03 10:25) [12]


> Почему тогда .xls?


я как пример написал, честно - не знал что формат файла имеет значение, простите чайник я ((


> brother ©   (03.04.09 10:20) [11]


Спасибо


 
Плохиш ©   (2009-04-03 10:45) [13]


> Roman88   (03.04.09 09:56) [3]
>
>
> > потому что 410/128~3
>
>
> А это что за математика такая?
>

В справке всё расписано.


 
Palladin ©   (2009-04-03 10:59) [14]

Не царское это дело. Справку читать. Пусть холопы читают.



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.05.17;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.005 c
2-1238593247
mnj
2009-04-01 17:40
2009.05.17
рисование компонент


15-1236701442
It's not me
2009-03-10 19:10
2009.05.17
AnsiString и его изменение потокобезопасно?


3-1220613409
Razrab7
2008-09-05 15:16
2009.05.17
Вопрос по работе с ADOStoredProc для СУБД Oracle


2-1238584314
DmitriyR
2009-04-01 15:11
2009.05.17
TFileStream


2-1238824270
XTasy
2009-04-04 09:51
2009.05.17
StringGrid и событие OnMouseMove





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