Delphi > Obecné

Odstranění diakritiky u  (velké A se stříškou)

(1/4) > >>

Jirka:
Nevím zda je to vlastnost nebo chyba, ale pomocí funkce 

--- Kód: Delphi ---SynaChar.CharsetConversionEx(AnsiString(MujText), CP1250, CP1250, replace_czech)])
se mi to nedaří převést.

geby:
Tabulka "replace_czech", jak název napovídá, nahrazuje česká písmenka. Stříšky tam nejsou.

V dnešní době unicode Delphi bych ale šel spíš cestou přiřazení do stringu s kódovou stránkou 20127 (US-ASCII).

Jan Fiala:
Na odstranění diakritiky používám:


--- Kód: Delphi ---function StringToEncoding(const AInput: string; AEncoding: Integer): string;var  enc: TEncoding;  by: TBytes;begin  enc := TEncoding.GetEncoding(AEncoding);  try    by := TEncoding.Unicode.GetBytes(AInput);    by := TEncoding.Convert(TEncoding.Unicode, enc, by);    Result := enc.GetString(by);  finally    enc.Free;  end;end; 
AEncoding je v tomto případě stránka 20127, což je US ASCII 7b
Funguje to obecně, nejen pro CZ

Jirka:

--- Citace: geby  05-10-2021, 22:09:56 ---Tabulka "replace_czech", jak název napovídá, nahrazuje česká písmenka. Stříšky tam nejsou.

--- Konce citace ---

Díky za info , snad mě částečně omlouvá to, že jsem více  moravák než  čech :D



--- Citace: Jan Fiala  06-10-2021, 06:58:27 ---Na odstranění diakritiky používám:
function StringToEncoding(const AInput: string; AEncoding: Integer): string;

--- Konce citace ---

Díky , už jsem to začal používat ..

geby:
Já měl na mysli trochu jednodušší řešení. (v podstatě to ani nemusí být funkce...)


--- Kód: Delphi ---function StrToAscii(const value: string): string;type  AsciiString = type AnsiString(20127);begin  Result := string(AsciiString(value));end; 

Navigace

[0] Seznam témat

[#] Další strana

Přejít na plnou verzi