Форум: "Потрепаться";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];




Вниз

RE 


handra   (2002-01-24 13:41) [0]

...возвращаясь к прошлому...
Помнится, в форумах обсуждалься вопрос по поводу определения кодировки русского текста (win, dos, koi) и функций преобразование для него. Были предложены частотные, исключающие способы...
Увы, поиск по сайту с целью локализации той дискуссии результатов не дал.
Всем, у кого осталось/имеется что-либо на эту тему - просьба, откликнитесь. Приветствуется готовая библиотека функций, т.к. вермени на ее создание, ко сожалению, уже нет.
Заранее благодарен, Ваш handra.



Виктор Щербаков   (2002-01-24 14:12) [1]

Function TForm1.DetectCharSet(FName : String) : Integer; // by Sergey Luzan ----
// -1: Charset not detected
// 1: DOS
// 2: WIN
CONST
MaxSize = 4096; // Max text length analized for detecting charset
DOSTopChars : String = #165#168#173#174;
// "еино" в кодировке DOS - часто встречающиеся символы
WINTopChars : String = #229#232#237#238;
// "еино" в кодировке WIN - часто встречающиеся символы
Type
TMyBuffer = Array[1..MaxSize] OF Char;
Var
DOSCount, WINCount : Integer;
TopDOSChar, TopWINChar : Array[Char] OF Boolean;
F: file;
Size: Cardinal;
Buffer: ^TMyBuffer;
i : Integer;
c : Char;
Begin
DOSCount:=0; WINCount:=0;
FOR c:=#0 TO #255 DO
Begin
TopDOSChar[c] := ( Pos(c,DOSTopChars) > 0 );
TopWINChar[c] := ( Pos(c,WINTopChars) > 0 );
End;
{$I-}
AssignFile(F, FName);
Reset(F,1);
{$I+}
IF IOResult=0 Then // File found
Begin
Size := FileSize(F);
IF Size>MaxSize Then Size:=MaxSize;
try
GetMem(Buffer, Size);
try
BlockRead(F, Buffer^, Size);
FOR i:=1 TO Size DO
Begin
IF TopDOSChar[Buffer^[i]] Then Inc(DOSCount);
IF TopWINChar[Buffer^[i]] Then Inc(WINCount);
End;
finally
FreeMem(Buffer);
end;
finally
CloseFile(F);
end;
End; { IOResult = 0 }
IF DOSCount=WINCount Then
DetectCharSet:=-1
Else
IF DOSCount>WINCount Then DetectCharSet:=1
Else DetectCharSet:=2;
End; { DetectCharSet }



handra   (2002-01-25 15:30) [2]

to Виктор Щербаков > спасибо, немного легче...
to all> видать забыли?! или сюда заходят, чтобы испачкать друг друга д..., грязью?




Форум: "Потрепаться";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.03.11;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.023 c
4-32609           ЛамерОК               2002-01-10 23:29  2002.03.11  
Раскладка клавиатуры!


3-32399           ne                    2002-02-12 08:09  2002.03.11  
unsupported on-disk structure


14-32549          PEC                   2002-01-21 10:58  2002.03.11  
Привет народ,помогите кто может !


1-32505           Troyan                2002-02-25 11:45  2002.03.11  
нужен пример алгоритма кодирования


7-32596           VEG                   2001-11-19 16:41  2002.03.11  
Крупный шрифт