[PR] Zamiana 'ą ę ó ł ?ż ź' --> 'a e o l z

0

da sie jakoś zamienić polskie litery z ogonkami w jakimś stringu na litery bez ogonków ? istnieje jakas prosta funkcja (najlepiej w jednej linijce :-) ) czy musze robić pętle i pokolei spradzać każdy znak i zamieniać ?

0

Nie sądzę, aby w anglojęzycznym delphi istniała funkcja do zamiany polskich literek. Zrób po prostu pętlę. To może się przydać:

http://fabryka.republika.pl/lamerzona/ogonki2.asp

0

też tak myślałem, ale wolałem sie spytać, a nóż widelec :-P
dzieki za tą strone

0

A czy nie da się wykorzystać wyrażeń regularnych? Nie znam się na nich, ale tak mi do głowy przyszedł taki pomysł.

[<font color="blue">dopisane</span>]
piechnat - nie napisałem, że w Delphi istnieją te wyrażenia - wiem, że w ogóle są i myślałem, że może są one obsługiwane w Delphi.

0

A czy nie da się wykorzystać wyrażeń regularnych? Nie znam się na nich, ale tak mi do głowy przyszedł taki pomysł.

Przepraszam bardzo ale już drugi raz słyszę o jakichś
wyrażeniach regularnych w Delphi, czy to prawda ? [???]
Jak się z tego korzysta jeżeli takie istnieją ?

[<font color="blue">dopisane</span>]
hmmmm.... poczytałem w Helpie i jest tam temat Regular expressions
tyle że nie wiem w jakich funkcjach tego można używać, ktoś coś wie… ??

0

Wyrażenia opisane w Helpie są używane przy wyszukiwaniu. Menu Search->Find tam jest opcja Regular expresions.
A co do zamiany, to można:

  1. Pętelka z warunkami zamiany
  2. StringReplace
  3. Jeżeli są zapisane w unicode to można bawić się w rozkład znaku na elementy graficzne (odpowiednie bity ustawiać lub wyłączać i pewne elementy graficzne będą wyłączane).
0

użyłem StringReplace (swoją drogą to bardzo użyteczna funkcja :-) szkoda że wcześniej jej nieznałem)

Zmienna := StringReplace(Zmienna,'ą','a',[rfReplaceAll]);
Zmienna := StringReplace(Zmienna,'ć','c',[rfReplaceAll]);

itd...

0

Najlepiej chyba tak :

function Ogonki(Text : String): String;
var
 I : Integer;
const
 Tails = 'ąĄáÁâÂăĂäÄćĆçÇčČďĎđĐéÉęĘëËěĚíÍîÎĺĹľĽłŁńŃňŇóÓôÔőŐöÖŕŔřŘšŠśŚşŞţŢťŤůŮüÜúÚűŰżŻžŽźŹýÝ';
 OffTail = 'aAaAaAaAaAcCcCcCdDdDeEeEeEeEiIiIlLlLlLnNnNoOoOoOoOrRrRsSsSsStTtTuUuUuUuUzZzZzZyY';
begin
  for I := 1 to 80 do
    Text := StringReplace(Text, Tails[I], OffTail[I], [rfReplaceAll]);
  Result := Text;
end;
0

no o niebo lepszy sposob
dzięki Dominik [browar]

1 użytkowników online, w tym zalogowanych: 0, gości: 1