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

Вниз

как узнать кол-во символов в текстовом файле?   Найти похожие ветки 

 
Black ©   (2004-09-16 13:32) [0]

как узнать кол-во символов в текстовом файле?


 
begin...end ©   (2004-09-16 13:35) [1]

Разделив размер файла на размер, занимаемый одним символом, получим количество символов (включая служебные).


 
Amoeba ©   (2004-09-16 13:35) [2]

Отобразить его в память (см. MemoryMapped files). Затем просканировать его побайтово считая количество байтов, соотверствующих неотображаемым символам. И, наконец, вычесть это число из размера файла.


 
[lamer]Barmaglot ©   (2004-09-16 13:36) [3]

толи я чего-то не понимаю, толи одно из двух...

для Ansi файлов (Win98) размер файла в байтах соответствует количеству символов (считая разделители и табуляцию). Для Юникоде размер файла в двое больше количества символов (каждый символ представлен 2 байтами)...


 
Amoeba ©   (2004-09-16 13:39) [4]


> begin...end ©   (16.09.04 13:35) [1]

Раз файл ТЕКСТОВЫЙ, то служебные/неотображаемые символы не должны учитываться. В случае бинарника вопрос бы не возник (если его автор не ламер).


 
Amoeba ©   (2004-09-16 13:41) [5]

Текстовые файлы в Юникоде (судя по уровню знаний автора вопроса) расмматривать в данном случае неактуально.


 
[lamer]Barmaglot ©   (2004-09-16 13:53) [6]

to Amoeba ©   (16.09.04 13:41) [5]

Тогда и MemoryMappedFile тоже не актуально... :-)


 
Anatoly Podgoretsky ©   (2004-09-16 13:55) [7]

Тогда и бинарники неактуально :-)


 
Суслик ©   (2004-09-16 13:56) [8]


>  [3] [lamer]Barmaglot ©   (16.09.04 13:36)


> Для Юникоде размер файла в двое больше количества символов
> (каждый символ представлен 2 байтами)...

Не совсем так.
Попробуй создать notepadom unicode файл. Он будет сохранен либо младший байт идет раньше (little endian, кажется) либо наоборот (не помню как называется).

А вот признак какой порядок байт используется пишется в первых 2 байтах: либо $fffe либо $feff.


 
Суслик ©   (2004-09-16 13:57) [9]


>  [8] Суслик ©   (16.09.04 13:56)

Уточнение.

fffe и feff это так называемый BOM (bit of mask, вроде :))

unicode файл может быть и без BOM.

тогда колво символов действиетльно div 2...


 
kukuikar ©   (2004-09-16 14:00) [10]

var
ColSym: Integer;
Str: String;
F: TextFile;
begin
AssignFile(F, "C:\autoexec.bat");
Reset(F);
ColSym:=0;
While not EoF(F) do
 begin
 ReadLn(F, Str);
 ColSym:=ColSym+Length(Str);
 end;
ShowMessage(IntToStr(ColSym));//включая пробелы и знаки табуляции
end;


 
kukuikar ©   (2004-09-16 14:00) [11]

var
ColSym: Integer;
Str: String;
F: TextFile;
begin
AssignFile(F, "C:\autoexec.bat");
Reset(F);
ColSym:=0;
While not EoF(F) do
 begin
 ReadLn(F, Str);
 ColSym:=ColSym+Length(Str);
 end;
ShowMessage(IntToStr(ColSym));//включая пробелы и знаки табуляции
end;


 
begin...end ©   (2004-09-16 14:34) [12]


> kukuikar

Садись, четыре :-)


 
kukuikar ©   (2004-09-16 14:37) [13]


> > kukuikar
>
> Садись, четыре :-)

???


 
begin...end ©   (2004-09-16 14:39) [14]


> [13] kukuikar ©   (16.09.04 14:37)

Расслабься :-)



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

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

Наверх




Память: 0.49 MB
Время: 0.025 c
6-1090502507
PUMA
2004-07-22 17:21
2004.10.03
получение кода страницы


4-1093360437
Makhanev A.S.
2004-08-24 19:13
2004.10.03
Откуда здесь AV?


14-1095128166
КаПиБаРа
2004-09-14 06:16
2004.10.03
Вопрос по железу :)


1-1095339279
Klopan
2004-09-16 16:54
2004.10.03
TInifiles


14-1094973988
SPeller
2004-09-12 11:26
2004.10.03
Проблемы с сетью