Форум: "Основная";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
Внизкак узнать кол-во символов в текстовом файле? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.039 c