Zamiana polskich znaków diakrytycznych

Jeśli programujesz, administrujesz, integrujesz i masz wątpliwość lub obawę, to właśnie najlepsze miejsce dla Ciebie. Pisz śmiało...
ODPOWIEDZ
se38
Posty: 32
Rejestracja: pt maja 04, 2007 4:17 pm

Zamiana polskich znaków diakrytycznych

Post autor: se38 »

Witam

tym razem potrzebuję zamienić w STRING'u
polskie znaki diakrytyczne na :

ąść na asc

itd. itp.


pozdrawiam
leopard
Posty: 18
Rejestracja: czw cze 21, 2007 10:22 am
Been thanked: 3 times

Post autor: leopard »

Myśle, że najprostsze rozwiązanie będzie najszybsze. Można to oczywiscie zapakować w moduł funkcyjny.

Kod: Zaznacz cały


data str(200) type c.
str = 'Śliczna żółta żaba pękła, stękła jak koń, źdźbłem przebita.'.
write:/ str.

REPLACE ALL OCCURRENCES OF 'Ę' IN str WITH 'E'.
REPLACE ALL OCCURRENCES OF 'Ó' IN str WITH 'O'.
REPLACE ALL OCCURRENCES OF 'Ą' IN str WITH 'A'.
REPLACE ALL OCCURRENCES OF 'Ś' IN str WITH 'S'.
REPLACE ALL OCCURRENCES OF 'Ł' IN str WITH 'L'.
REPLACE ALL OCCURRENCES OF 'Ż' IN str WITH 'Z'.
REPLACE ALL OCCURRENCES OF 'Ź' IN str WITH 'Z'.
REPLACE ALL OCCURRENCES OF 'Ć' IN str WITH 'C'.
REPLACE ALL OCCURRENCES OF 'Ń' IN str WITH 'N'.

REPLACE ALL OCCURRENCES OF 'ę' IN str WITH 'e'.
REPLACE ALL OCCURRENCES OF 'ó' IN str WITH 'o'.
REPLACE ALL OCCURRENCES OF 'ą' IN str WITH 'a'.
REPLACE ALL OCCURRENCES OF 'ś' IN str WITH 's'.
REPLACE ALL OCCURRENCES OF 'ł' IN str WITH 'l'.
REPLACE ALL OCCURRENCES OF 'ż' IN str WITH 'z'.
REPLACE ALL OCCURRENCES OF 'ź' IN str WITH 'z'.
REPLACE ALL OCCURRENCES OF 'ć' IN str WITH 'c'.
REPLACE ALL OCCURRENCES OF 'ń' IN str WITH 'n'.

write:/ str.
Jeśli jest jakiś gotowy moduł funkcyjny, to i tak na pewnie bazuje na replace.
Artur Machaj
abaper
Posty: 99
Rejestracja: sob kwie 28, 2007 8:34 am
Been thanked: 1 time

Post autor: abaper »

Hej

wystarczy jak użyjesz "TRANSLATE"

znaki potraktuj jak pary:
1 znak to źródło
2 znak to cel

np:

Kod: Zaznacz cały

DATA gv_text(200).
gv_text = 'Śliczna żółta żaba pękła, stękła jak koń, źdźbłem przebita.'.
TRANSLATE  gv_text USING 'ęeóoąaśsłlżzźzćcńnĘEÓOĄAŚSŁLŻZŹZŃN'.
WRITE gv_text.

pozdrawiam
abaper
yacol
Posty: 561
Rejestracja: śr kwie 04, 2007 4:32 pm
Lokalizacja: Poznań
Has thanked: 9 times
Been thanked: 165 times
Kontakt:

Post autor: yacol »

Ewentualnie możesz użyć modułu funkcyjnego SCP_REPLACE_STRANGE_CHARS. Używałem go właśnie do zamiany polskich diakrytyków na ich łacińskie odpowiedniki i ten moduł funkcyjny idealnie się do tego nadaje.

Pozdrawiam,

Jacek Witczak
ODPOWIEDZ