Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.51 MB
Время: 0.024 c
1-1103523038
Mishenka
2004-12-20 09:10
2005.01.02
Как в DBGridEh (из EhLib) сделать структуру как в TreeView?


1-1103443089
Logun
2004-12-19 10:58
2005.01.02
Delphi и капризный Flash


1-1103485454
Shnabs
2004-12-19 22:44
2005.01.02
Преобразование


4-1100590952
Gefest
2004-11-16 10:42
2005.01.02
Как перехватывать нажатия клавиш?


3-1102318930
Lamer_Of_Delphi
2004-12-06 10:42
2005.01.02
MSSQL Временные таблицы...




   Наверх