View Full Version : Konvertieren von EBCDIC to ASCII
Guten Tag zusammen,
wer kann mir bitte helfen, Ich sollte in einem Cobol-Programm, Record für Record, von
EBCDIC nach ASCII umkonvertieren. Gibt es da einen Befehl einfachen Befehl dazu oder sollte man da anders vorgehen.
Danke für die Hilfe
Reno
kuempi von stein
19-10-05, 11:50
Guten Tag zusammen,
wer kann mir bitte helfen, Ich sollte in einem Cobol-Programm, Record für Record, von
EBCDIC nach ASCII umkonvertieren. Gibt es da einen Befehl einfachen Befehl dazu oder sollte man da anders vorgehen.
Danke für die Hilfe
Renohello,
ich kenn das nur unter RPG, mit COBOL hab ich nicht soviel rumgemacht bisher.
der weg sollte aber der gleiche sein.
mal so im groben der ablauf:
brauchste eine tabelle (TBL) in der die umsetzungscodes von ebcdic nach asci drinstehen.
dann rufste 'QDCXLATE' mit folgenden parms auf:
-laenge (ein feld z.B. 4.0 da wo die länge des strings drin steht)
-data (die umzusetzenden daten)
-tabname (der name deiner TAB)
-libname (die lib da wo die TAB drinsteht)
voila... sollte funktionieren...
gibt aber bestimmt auch elegantere lösungen.
gruss
k.
Zur Berücksichtigung von CCSID's ist der Aufruf folgenden API's besser:
http://publib.boulder.ibm.com/iseries/v5r2/ic2924/index.htm?info/apis/QLGCNVCS.htm
Du benötigst dazu keine Tabellen, da die Systemtabellen verwendet werden.
Wichtig dabei ist nur, dass die aktuelle JOB-CCSID ggf. abgefragt wird (RTVJOBA per CLP), damit die Entscheidung der Quell-CCSID leichter fällt.
Danke,
können Sie mir bitte ein CLP-Beispiel detailiert zeigen, wie das API-Programm aufgerufen wird (inkl. Parameter) und was zurück kommt. Das würde mir sehr helfen.
Dank und Gruss
Reno
Hallo Reno,
ich benutze die externe Prozedur iconv() und hab dafür ein RPG-Programm, dem man einfach nur den String übergibt und die Quell-CCSID und Ziel-CCSID. Als Ergebnis erhältst Du den konvertierten String zurück. Falls Interesse besteht, schick mir mal Deine eMail-Adresse.
Gruß,
KM
Hier meine E-Mail Adresse: r.lurati@bluewin.ch
Dank und Gruss
Reno
QLGCNVCS ruft übrigens iconv() auf ;)