-
Reguläre Ausdrücke mit Replace: suche Beispiel
Hallo zusammen,
ich habe im ILE-RPG Umfeld noch nicht mit REGEX (z.B. C Routine regcomp, regexec, ...) gearbeitet. Ich möchte eigentlich ungültige Zeichen in einem String mit einem Leerzeichen ersetzen. Hat jemand ein Beispielprogramm ? Über GOOGLE bin ich nicht wirklich fündig geworden.
Slawo
-
Nun ja, da ist der %xlate(From:To:Var) eigentlich der schnellste Weg, da du ja Leerzeichen haben willst.
Was auch genauso schnell ist, ist eine kleine eigene Schleife:
d Pos 5I 0
d Var 100
for Pos = 1 to %size(Var)
if %check('gültige Zeichen':%subst(Var:Pos:1)) > 0;
%subst(Var:Pos:1)=*blank;
endif;
endfor;
Den Overhead mit RegEx würde ich bei so einfachen Sachen lassen.
-
Nun ja, so kann man das Problem jetzt auch lösen.
Ich werde zukünftig auch öfteres mal über diese Problematik stolperen da würd es mich schon interessieren wie ich das mit RegEx machen könnte.
Slawo
-
Hier gibts einen längeren Beitrag dazu:
http://newsolutions.de/forum-systemi...ighlight=regex
Insbesonders ist auf die CCSID-Problematik zu achten.
Der Rest steht eigentlich im C-Handbuch.
Allerdings kann ich keine Replace-Funktion finden.
Hierfür musst du ggf. die %Replace()-BuiltIn bzw. "%subst(Var:Pos:Size) = NewValue" verwenden, nach dem du einen Match (Position und Länge) gefunden hast.
-
es geht noch einfacher:
definiere 2 Strings, einmal mit den zu ersetzenden Zeichen, einmal mit den Ersatzzeichen (in diesem Fall blanks) und nutze dann %xlate
d low c 'zäöü'
d trans c '
dattest = %xlate(low:trans:dattest);
es werden die in low definierten Zeichen in dattest durch die entsprechenden aus trans ersetzt.
gruß
kh
-
Dabei ist das Problem bei Sonderzeichen mit abweichender CCSID zur Laufzeit nicht zu verachten.
-
..Regex für Arme
eine Idee wäre da noch die SQL-Replace Funktion:
Select Replace('abc', 'b' , 'bee') as erg from sysibm.sysdummy1;
Das kann man relativ einfach verwursten. Ist wahrscheinlich nicht die Performanste Lösung aber sollte klappen.
-
SQL-Funktionen lassen sich auch direkt ohne Cursor verwenden:
exec sql set : MyVar = replace(...);
Similar Threads
-
By willi77 in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 25-10-10, 11:08
-
By Dominik_Meyer in forum NEWSboard Server Software
Antworten: 0
Letzter Beitrag: 24-11-06, 07:06
-
By Winnilein in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 19-09-06, 08:31
-
By takeoff/400 in forum NEWSboard Server & Hardware Markt
Antworten: 2
Letzter Beitrag: 31-07-06, 18:17
-
By Peet in forum NEWSboard Server & Hardware Markt
Antworten: 2
Letzter Beitrag: 02-05-06, 08:08
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks