Post by SetCzy sa jakies biblioteki do obslugi baz ze standardem polskich znakow
w mazovi?
[...]
Witam!
{ Obsługa kownersji polskich znaków }
{ Autor: Marek Janaszewski - 2003 r. }
unit MjConvPL;
interface
type
TPLCodePage = (cpAnsi, cpLatin2, cpISO, cpMazowia);
// Uwaga: Przekodowuje tylko polskie znaki
function ConvertPL(const S: string; SourceCP, TargetCP: TPLCodePage):
string;
implementation
const
PLCharCodes: array [0..17, TPLCodePage] of Char = (
{ ANSI Latin2 ISO Mazowia }
('Ą', #164, #161, #143),
('Ć', #143, #198, #149),
('Ę', #168, #202, #144),
('Ł', #157, #163, #156),
('Ń', #227, #209, #165),
('Ó', #224, #211, #163),
('Ś', #151, #166, #152),
('Ź', #141, #172, #160),
('Ż', #189, #175, #161),
('ą', #165, #177, #134),
('ć', #134, #230, #141),
('ę', #169, #234, #145),
('ł', #136, #179, #146),
('ń', #228, #241, #164),
('ó', #162, #243, #162),
('ś', #152, #182, #158),
('ź', #171, #188, #166),
('ż', #190, #191, #167));
function ConvertPL(const S: string; SourceCP, TargetCP: TPLCodePage):
string;
var
I, J: Integer;
C: Char;
begin
Result := S;
UniqueString(Result);
for I := 1 to Length(Result) do
begin
C := Result[I];
for J := Low(PLCharCodes) to High(PLCharCodes) do
if C = PLCharCodes[J, SourceCP] then
begin
Result[I] := PLCharCodes[J, TargetCP];
Break;
end;
end;
end;
end.
W przypadku BDE i .dbf-ów trzeba posłużyć się czymś takim aby mieć dostęp do
pól bez przekodowania:
{ Wyłącza konwertowanie znaków w BDE }
procedure SetTransliterate(ADataSet: TDataSet; AValue: Boolean);
var
I: Integer;
begin
with ADataSet do
for I := 0 to FieldCount - 1 do
if Fields[I] is TStringField then
TStringField(Fields[I]).Transliterate := AValue;
end;
Wtedy można wprowadzić własne kodowanie w aplikacji bez zaburzeń ze strony
BDE.
--
Pozdrawiam,
Marek Janaszewski
[ j_marek(małpa)gazeta(kropka)pl ]
[ == USUN_TO. z adresu == ]