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

Вниз

работа с текстовыми файлами   Найти похожие ветки 

 
Socol   (2004-12-16 13:57) [0]

Люди момогите мне нужно узнать размер текстового файла отописываю его как var F:textfile  к сожелении функция filesize для текстофых файлов не работает))) Других функций я ненаю)))
или можно номер последнего символа в файле))) С уважением Socol)))


 
ssk ©   (2004-12-16 13:59) [1]

можно так:

function GetFileSize(FileName: string): longint;
var
 strm: TMemoryStream;
 sFileName: string;
begin
 strm := TMemoryStream.Create;
 sFileName := FileName;
 strm.LoadFromFile(sFileName);
 Result := strm.Size;
 FreeAndNil(strm);
end;


 
Socol   (2004-12-16 14:01) [2]

млин а попроще какнить мона?:)


 
ghg ©   (2004-12-16 14:06) [3]

а это что ли сложно?


 
Socol   (2004-12-16 14:08) [4]

вобше проблематично


 
Socol   (2004-12-16 14:08) [5]

вобше проблематично


 
Александр Иванов ©   (2004-12-16 14:10) [6]

ssk ©   (16.12.04 13:59) [1]

Она вернет количество символов.


 
lexis   (2004-12-16 14:11) [7]

var SR: TSearchRec;
....
  FindFirst(FileName, SR);
  Size := SR.Size;
  FindClose(SR);
....


 
ssk ©   (2004-12-16 14:18) [8]

>Александр Иванов ©   (16.12.04 14:10) [6]
Она вернет количество символов.


ты в работе код пробовал, или это просто предварительно-теоретическое утверждение?


 
Arnold ©   (2004-12-16 14:20) [9]

var
T:OFSTRUCT;
R:BY_HANDLE_FILE_INFORMATION;
Size:Real;
begin
GetFileInformationByHandle(OpenFile("файл.txt",T,OF_READ),R);
Size:=R.nFileSizeLow/1024; //а вот и размер в Кб
end;


 
КаПиБаРа ©   (2004-12-16 14:24) [10]

Где то читал, что во избежание проблем с открытием файлов рекомендуется узнавать размер с помощью findfirst/findnext.


 
Александр Иванов ©   (2004-12-16 14:31) [11]

ssk ©   (16.12.04 14:18) [8]

В работе я его пробовал, а ты?


 
Александр Иванов ©   (2004-12-16 14:35) [12]

ssk ©
Попробовал его для файла из одной строки, он возвратил мне 21.
Может я не понял автора, если ему нужно размер файла в байтах, то можно использовать filesize(просто файл объявлять как нетипизированный). Но насколько я понял, ему нужно количество строк в файле.


 
ssk ©   (2004-12-16 14:40) [13]

>Александр Иванов
В работе я его пробовал, а ты?


конечно. все отлично работает.

Попробовал его для файла из одной строки, он возвратил мне 21.

21 байт - должен быть размер файла. а в свойствах твоего файла какой размер пишется?


 
Александр Иванов ©   (2004-12-16 14:45) [14]

ssk ©   (16.12.04 14:40) [13]

Просто я понял задачу по другому (количество строк) :).

Кстати автор так и не пояснил, что ему нужно размер файла или количество строк в файле.


 
DN ©   (2004-12-16 14:49) [15]

TFSinfile := TFileStream.Create(path, fmOpenRead);
TFSinfile.Seek(0,soFromBeginning);
len := TFSinfile.Size;
TFSinfile.Free;


 
КаПиБаРа ©   (2004-12-16 14:49) [16]

Александр Иванов ©   (16.12.04 14:45) [14]
Кстати автор так и не пояснил, что ему нужно размер файла или количество строк в файле


Люди момогите мне нужно узнать размер текстового файла


 
socol   (2004-12-16 15:48) [17]

уточню))) Мне нужен размер файла в байтах))) или количество символов содержащихся в файле)))


 
socol   (2004-12-16 15:49) [18]

уточняю))) Мне нужен размер файла в байтах или количество символов в файле)))


 
socol   (2004-12-16 15:55) [19]

Arnold ©  
var
T:OFSTRUCT;
R:BY_HANDLE_FILE_INFORMATION;
Size:Real;
begin
GetFileInformationByHandle(OpenFile("файл.txt",T,OF_READ),R);
Size:=R.nFileSizeLow/1024; //а вот и размер в Кб
end;
// size получается равным 0 почему?


 
Александр Иванов ©   (2004-12-16 15:58) [20]

socol   (16.12.04 15:55) [19]

А у тебя такой файл есть?


 
socol   (2004-12-16 16:06) [21]

файл.txt этот? есть размером 12 байт)))


 
Александр Иванов ©   (2004-12-16 16:10) [22]

Лучше полный путь к нему укажи. Может поможет.


 
socol   (2004-12-16 16:12) [23]

так я и указываю полный))) Например C:\1.txt)))


 
Александр Иванов ©   (2004-12-16 16:17) [24]

У меня этот код работает на "ура".
Тогда попробуй "стандартный" подход:

var f:file;
Size:logint;
begin
 AssignFile(f,"c:\key.txt");
 Reset(f,1);
 Size:=filesize(f);
end;


 
socol   (2004-12-16 16:17) [25]

все начал показывать))) Токо мне нужен размер не в клб в байтах пробывал делить на 8 получается дробное число)))


 
socol   (2004-12-16 16:18) [26]

Александр Иванов ©   (16.12.04 16:17) [24]
У меня этот код работает на "ура".
Тогда попробуй "стандартный" подход:

var f:file;
Size:logint;
begin
AssignFile(f,"c:\key.txt");
Reset(f,1);
Size:=filesize(f);
end;

мне нужен текстовый файл))) Это не проканает)))


 
socol   (2004-12-16 16:21) [27]

всем огромное спосибо за информацию))) Наконец то сделал)))


 
Term   (2004-12-16 16:21) [28]

ну открой его как file of char


 
socol   (2004-12-16 16:31) [29]

не как чар не канает надо как textfile


 
Anatoly Podgoretsky ©   (2004-12-16 19:28) [30]

Канает, не канает, не воровская малина, сказано делать, так делай.



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

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

Наверх




Память: 0.53 MB
Время: 0.062 c
1-1103226157
Ильичев С.А.
2004-12-16 22:42
2005.01.02
Раскладка клавиатуры


1-1103186106
Mishenka
2004-12-16 11:35
2005.01.02
Добавление элементов в GroupBox?


1-1103364229
Хакер
2004-12-18 13:03
2005.01.02
Сортировка строк и удаление дубликатов


14-1102832267
Редкий гость
2004-12-12 09:17
2005.01.02
код на C++ Builder


14-1102768867
Редкий гость
2004-12-11 15:41
2005.01.02
в Билдере OpenDialog -> FileName возвращает