Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.11.14;
Скачать: CL | DM;

Вниз

Функция размера текстового файла   Найти похожие ветки 

 
Игорь_   (2004-10-28 15:04) [0]

Господа подскажите функцию для определения размера текстового файла.
Это я знаю function FileSize(f): Integer; но -  Returns the current size of a file; not used for text files.


 
clickmaker ©   (2004-10-28 15:05) [1]

GetFileSize


 
Игорь_   (2004-10-28 15:11) [2]

Можно подробней, а то поиск в HELP такого монстра не показывает.


 
Ricko ©   (2004-10-28 15:20) [3]

Смотри Help Windows SDK


The GetFileSize function retrieves the size, in bytes, of the specified file.

DWORD GetFileSize(

   HANDLE hFile, // handle of file to get size of
   LPDWORD lpFileSizeHigh  // address of high-order word for file size
  );


Parameters

hFile

Specifies an open handle of the file whose size is being returned. The handle must have been created with either GENERIC_READ or GENERIC_WRITE access to the file.

lpFileSizeHigh

Points to the variable where the high-order word of the file size is returned. This parameter can be NULL if the application does not require the high-order word.



Return Values

If the function succeeds, the return value is the low-order doubleword of the file size, and, if lpFileSizeHigh is non-NULL, the function puts the high-order doubleword of the file size into the variable pointed to by that parameter.
If the function fails and lpFileSizeHigh is NULL, the return value is 0xFFFFFFFF. To get extended error information, call GetLastError.
If the function fails and lpFileSizeHigh is non-NULL, the return value is 0xFFFFFFFF and GetLastError will return a value other than NO_ERROR.


 
Chlavik ©   (2004-10-28 15:27) [4]

function TextFileSize(Filepath:string):DWORD;
var s:string;
   F:TextFile;
begin
AssignFile(F,FilePath);
Reset(f);  
Result:=0;
while Not SeelEOF(textF) do
 begin
  ReadLn(TextF,S);
  Inc(Result,Length(s) + Length(CLRF)); - конечно же не  забудем про перевод каретки
 end;
CloseFile(f);
end;

Если еще подумать то можно оптимизировать немного ... :)


 
Игорь_   (2004-10-28 15:27) [5]

Насколько я понял - GetFileSize - это не внутренняя команда Delphi.
А что внутренней не существует?


 
Игорь_   (2004-10-28 15:35) [6]

Господа, может быть все гораздо примитивней чем вы думаете.
Мне нужен всего навсего ответ на вопрос в методичке :

Вопрос 2. Запишите основные процедуры и функции в языке для работы с текстовыми файлами:
1. Для определения размера файла ________________


 
Gero ©   (2004-10-28 16:01) [7]


> Насколько я понял - GetFileSize - это не внутренняя команда
> Delphi.

А что в твоем представлении внутренняя команда Delphi?

> Мне нужен всего навсего ответ на вопрос в методичке

Тебе его уже дали.


 
-=SS=- ©   (2004-10-28 16:08) [8]

Объяви его как File of Byte и получишь размер файла в байтах. Какая разница текстовый он не текстовый....

Var
F:File of Byte;
Size:Integer;
Begin
AssignFile(F,"C:\....");
reset(F);
Size:=FileSize(F);
CloseFile(F);
..............
End;


 
Gero ©   (2004-10-28 16:09) [9]


> Объяви его как File of Byte

А почему бы не как file?


 
Anatoly Podgoretsky ©   (2004-10-28 19:40) [10]

Gero ©   (28.10.04 16:09) [9]
Какая разница, лишь бы не текстовый, но тогда режим открытия другой.


 
Vaitek ©   (2004-10-28 20:09) [11]

А что мешает его на секундочку открыть как не текстовый файл (file of byte) определить размер и закрыть?


 
Gero ©   (2004-10-28 21:19) [12]


> Какая разница, лишь бы не текстовый

Писать меньше.


 
Gero ©   (2004-10-28 21:19) [13]


> Vaitek ©   (28.10.04 20:09)

А что мешает прочитать пару предыдущих постов, прежде чем высказываться?


 
alena.svt ©   (2004-10-29 17:44) [14]

Это не для Игорь_ у него методичка
function __GetFileSize (const FileName : String) : Int64;
var SRec : TSearchRec;
 Begin
   if FindFirst (FileName, faAnyFile, SRec) <> 0 then
     Result := -1 else
     begin
       Int64Rec (Result).Lo := SRec.FindData.nFileSizeLow;
       Int64Rec (Result).Hi := SRec.FindData.nFileSizeHigh;
       Result := SRec.Size;
       FindClose (SRec);
     end;
 End;
procedure TForm1.Button1Click(Sender: TObject);
var
I: Int64;
begin
I:= __GetFileSize("C:\1.txt");
ShowMessage(IntToStr(I));
end;



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

Текущий архив: 2004.11.14;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.023 c
1-1099320334
Kat
2004-11-01 17:45
2004.11.14
Как узнать сколько дней в январе например?


1-1099030313
Василий_М
2004-10-29 10:11
2004.11.14
Утечка памяти в CAPICOM. Как бороться?


14-1098814791
Rouse_
2004-10-26 22:19
2004.11.14
Саунд трек к "Бар Гадкий Койот"


3-1097584758
snake1977
2004-10-12 16:39
2004.11.14
часть значения поля в запросе


1-1099135852
Wish
2004-10-30 15:30
2004.11.14
Подскажите код преобразования Integer в Double