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ć ?
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ć:
też tak myślałem, ale wolałem sie spytać, a nóż widelec :-P
dzieki za tą strone
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.
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… ??
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:
- Pętelka z warunkami zamiany
- StringReplace
- 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).
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...
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;
no o niebo lepszy sposob
dzięki Dominik [browar]