![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кодировка [D5, Win95/98]
msys © (2002-01-02 21:06:00)Как определить в какой кодировке текстовый файл(DOS или WIN) ?
Спасиба.
Quest (2002-01-03 12:16:00) [1]:) ... и ещё, перед проверкой на вхождение в массив OemCharSet, необходимо отсечь цифры и спец. символы ... Удачи!
Quest (2002-01-03 12:12:00) [2]разумеется предварительно необходимо считать эту строку из файла:
AssignFile(DataFile, "File.txt");
Reset(DataFile);
Readln(DataFile, S);
Quest (2002-01-03 12:06:00) [3]........
const
OemCharSet = [128..159];//[А..Я] - заглавные буквы Dos
// кодировки без буквы "Ё" - она пересекается с Win кодировкой
....
// s - строка символов
....
S_tmp:=UpperCase(Trim(s));// возвести в верхний регистр
IF (S_tmp[1]) in OemCharSet) Then ... // s - в DOS кодировке
...
// или
IF (Copy(S_tmp,1,1) in OemCharSet) Then ... // s - в DOS кодировке
Вадим (2002-01-02 21:15:00) [4]Я делал так:
type
TCodePage = (cpDOW, cpWIN);
function SomeFunc(s: string): TCodePage;
const
DOS: set of char = (...);
WIN: set of char = (...);
var
d, w: integer;
begin
d := 0;
w := 0;
for s := 1 to Length(s) do
begin
if s[i] in DOS then Inc(d);
if s[i] in WIN then Inc(w);
end;
if d > w then Result := cpDOS
else Result := cpWIN;
end;