Главная страница
    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.004 c
15-1236701442
It's not me
2009-03-10 19:10
2009.05.17
AnsiString и его изменение потокобезопасно?


15-1237194918
Cobalt
2009-03-16 12:15
2009.05.17
Работа со строками через asm - переносимость между версиями?


15-1237120235
Юрий
2009-03-15 15:30
2009.05.17
С днем рождения ! 15 марта 2009 воскресенье


2-1238737468
Roman88
2009-04-03 09:44
2009.05.17
Функция FileSize


15-1237382359
немо2
2009-03-18 16:19
2009.05.17
select min(col1) from tabl1. Работает по 5 минут. MSSQL2000





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