-
wie ruft man denn diese nl_langinfo auf?
so geht es irgendwie nicht:
PHP-Code:
D nllanginfo PR * ExtProc('nl_langinfo') D * VALUE OPTIONS(*STRING:*TRIM)
/free envccsid = %str(nllanginfo('CODESET')); /end-free
da krieg ich immer nen leeren String zurück....
hab auch schon envlang = %str(nllanginfo('0'));
probiert.... krieg ich aber auch nur nen leerstring...
der Übergabeparameter bei nllanginfo ist ja vom typ nl_item, blos woher krieg ich den im RPG?
-----------------------------------------------------
edit:
hat sich erledigt.... man muss ne zahl übergeben, kein String -.-
D nllanginfo PR * ExtProc('nl_langinfo')
D 10i 0 VALUE
envccsid = %str(nllanginfo(1));
1 ist die ccsid(codeset)...
und ich habe endlich eine funktionierende REGEX Funktion in RPG 
Regex arbeitet anscheinend mit der CCSID welche nl_langinfo zurückggibt, also nicht unbedingt mit dem Wert, welcher in der Umgebungsvariable LANG steht!!!!
Ist LANG leer, bekommt man CCSID 37 zurück....
Hab dies ausprobiert und er hat immer mit der CCSID von nl_langinfo gearbeitet!!!!
-
Schönen guten Tag Zusammen,
also ich muss für meine Ausbildung RPG/ILE verwenden/lernen da kommt es öfters vor das ich ein Teil eines Strings suchen oder ersetzten muss. Ich selbst verwendet Regulärer Ausdruck in C# und war immer begeistert wie viel man damit anstellen kann. Nun würde ich das gern in RPGILE (Free) verwende leider bin ich aus den Beiträgen vor mir nicht ganz schlau geworden gibt es vielleicht ein gutes deutsches Tutorial zu diesem Thema?
So sieht man Beispiel Programm aus, leider funktioniert es nicht:
Code:
/FREE
Source = 'Das ist ein TEST(123) Regulaerer Ausdruck';
DSPLY %SCAN('([0-9])' :Source);
*Inlr = *On;
/END-FREE
PS: Ich hoffe es ist dein Problem das ich hier Anfänger Fragen stelle.
PS: Ein kleines Beispiel Programm mit Kommentaren würde mir sicher weiterhelfen.
-
%scan kennt keine regulären Ausdrücke sonder durchsucht einfach nach dem Vorkommen der Zeichenkette.
Für reguläre Ausdrücke benötigst du die C-Funktionen regcomp() und regexec().
In ILERPG definiert man dann einen Prototype (ähnlich der .h-Dateien in C++), der dann aufgerufen wird.
Beim sog. binden wird dann das "BNDDIR('QC2LE')" benötigt, damit das Programm dann eben die Funktionen verwenden kann.
Da z.B. regcomp() selber Speicher anlegt sollte dieser auch mittels free() wieder freigegeben werden.
Ansonsten ist das Thema "ILE-Schulung" für das Forum zu komplex.
-
Hab es nun mit Ihrer Hilfe und Vorlagen aus dem Internet versucht etwas nachzubauen, das ist dabei raus gekommen.
Code
Leider bekomme ich beim Aufrufen: regexec() failed with: regexec() failed to find a match..
-
Dann hast du ggf. regcomp() vergesssen bzw. den Status von regcomp() nicht abgefragt ob der Ausdruck denn überhaupt gültig ist.
-
Also ich bin mal mit dbg durch gegangen regcomp Status ist ok nur bei :
Code:
C* Execute RE c eval rc = regexec(preg: %addr(string):
c nmatch: pmatch: 0)
c if rc <> 0
gibt es ein Fehler zurück also rc nicht mehr 0 sondern 1. Welche gründe könnte das haben?
-
Ggf. falsche Prototypdeklaration. Prüfe die doch noch mal gegen das C-Handbuch ab.
Ggf. hast du die Lib QSYSINC installiert, dann gibts die ganzen C-Header in den H/SYS-Dateien (und noch ein paar mehr).
-
Ohh vergessen das es diesen Thread gab, sonst hätte ich keinen neuen erstellt .
@Fuerchau
Sie haben ja die Methode mit dem Befehl putenv vorgeschlagen, diese würde ich gern in einem C/C++ anwenden.
So etwa?
Code:
So sieht der Befehl aus:
putenv("LANG=QSYS.LIB/DE_DE.LOCALE");
Vorteil bei putenv():
- gilt nur für das aktive Prgrammobjekt
- keine ENVVAR's im Job <-- Envvar wird gesetzt
Similar Threads
-
By codierknecht in forum NEWSboard SAP
Antworten: 32
Letzter Beitrag: 09-02-18, 14:00
-
By umeis in forum NEWSboard Windows
Antworten: 3
Letzter Beitrag: 11-08-06, 13:45
-
By schaaf in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 04-05-06, 12:18
-
By Muchi in forum IBM i Hauptforum
Antworten: 7
Letzter Beitrag: 21-04-06, 14:54
-
By Binford in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 07-03-06, 09:58
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