-
String zeichen finden under ersetzten.
Hallo,
aufgrund einer prüfziffernberechnung, muss ich in einem String alle Buchstaben duch Nummern (10 bis 35, wobei A=10, B=11,... Z=35 ist) ersetzt werden.
Da ich eigentlich nur C++ Programmiere, wollte ich mal fragen ob ihr für mich die passenden Funktionen hättet.
Also einmal, zeichen auf stelle x prüfen
(könnte ja man ja mit SubSt lösen)
Dann wäre eine Funktion, zeichen an stelle x löschen ganz gut.
Und zeichenkette an stelle x einfügen.
weil ich in RPG keine 30 Stellen numerisch teilen kann, müsste ich später dann auch noch wissen, wie ich einen SubSt in ein Numerisches feld schiebe.
Wenn ihr Quellen zum nachlesen habt, nehe ich diese auch gerne an.
Danke,
Gruß.
-
Noch ein Nachtrag:
Zu dem ersten Problem, dass ich aus dem 'A' eine '10' usw machen muss, könnte ich in c++ einfach den Ascii wert überprüfen und von diesen wert 55 abziehen. So käm ich dann bei 'A' z.b. auf die 10.
Hier ein beispiel:
Von i = 1, tue solange i < länge des Strings
{
wenn ( zeichen an position i > 'A' und zeichen an position i < 'Z')
{
//Dann ist es ein zeichen.
einfügeZahl = (dez.Wert)zeichen an position i - 55;
}
sonst
{
einfügeZahl = zeichen an position i
}
}
-
Da die AS/400 in EBCDIC arbeitet, hast du da schlechte Karten. A-Z sind nicht lückenlos aufsteigend.
Ich würde die Werte 0-9 und A-z in eine Tabelle stellen und dann per LOKUP jedes Zeichen in der Tabelle suchen.
Der "Index - 1" ergibt dann den Wert für die Berechnung.
Eine Ersetzung des Originalstrings würde ich nicht vornehmen.
-
ok, ist es mir denn möglich den String wie ein array zu behandeln. Hab eben durch zufall bei Wikipedia das hier gefunden.
/FREE
FOR k = 1 TO %elem(Array);
Array(k) = k;
ENDFOR;
EVAL *INLR = *ON;
/END-FREE
Hatte mich schon gefreut, so wie in C einfach mit () hinter dem feldnamen die einzellnen zeichen ansprechen zu können. Dies mag der compiler aber nicht .
Ich werds jetzt mit SubSt versuchen. Wenn ihr was einfacheres wisst, bitte her damit .
Danke.
-
Hier werden verschiedene Sachen gemischt:
%elem(Array) = Anzahl definierter Elemente eines Arrays.
Um eine Zeichenkette anzusprechen gibts %SUBST(STRING:POS:LÄNGE).
Um ein Zeichen in einem Array zu suchen nutze %LOKUP.
-
Hallo kr1s!
Probier' mal folgendes (ohne Gewähr):
Code:
D STRINGDS DS
D STRING 30A
D BYTE 1A Dim(30) Overlay(STRING)
D WERT 3U 0 Dim(30) Overlay(STRING)
D NUM S 3U 0 Inz
D**********************************************************************
D BYTES C 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
D WERTE C X'0A0B0C0D0E0F101112131415161718-
D 191A1B1C1D1E1F20212223'
D**********************************************************************
C MOVEL 'QWERTZ' STRING
C BYTES:WERTE XLATE STRING STRING
C MOVE WERT(5) NUM
C SETON LR
Gruß
Jürgen
Similar Threads
-
By e_sichert in forum IBM i Hauptforum
Antworten: 4
Letzter Beitrag: 07-11-06, 15:25
-
By Christian.Hesse in forum NEWSboard Programmierung
Antworten: 3
Letzter Beitrag: 04-08-06, 10:04
-
By edig in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 07-07-06, 10:51
-
By codierknecht in forum NEWSboard Programmierung
Antworten: 5
Letzter Beitrag: 03-07-06, 15:25
-
By cheffe1008 in forum NEWSboard Programmierung
Antworten: 7
Letzter Beitrag: 16-05-06, 07:45
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