Главная страница
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.031 c
8-1089802421
ПЛОВ
2004-07-14 14:53
2004.10.03
RGBA


3-1094353055
Новенький
2004-09-05 06:57
2004.10.03
Ключи и индексы


3-1094385566
Koala
2004-09-05 15:59
2004.10.03
Помогите с ХП


6-1087729568
Сергей Г
2004-06-20 15:06
2004.10.03
Internet & SMS


6-1090728007
DelphiN!
2004-07-25 08:00
2004.10.03
Ссылка на объект для скачивания