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

Вниз

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

 
Игорь_   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.039 c
6-1094555612
beginners
2004-09-07 15:13
2004.11.14
browser


14-1098798518
oldman
2004-10-26 17:48
2004.11.14
Я ЕЕ ТАКИ РЕШИЛ!!!


1-1099386557
Yurij-7
2004-11-02 12:09
2004.11.14
ComboBox


14-1098703870
vopros
2004-10-25 15:31
2004.11.14
Сегодня иду на Зенит-ЦСКА.Но немножко не посебе.


9-1090425892
Evgeniy_K
2004-07-21 20:04
2004.11.14
Шрифт





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