-
Hexa-Wert eines Zeichens
Hallo @ all,
wie ermittele ich den Hexa-Wert eines Zeichens unter RPG mit Bordmitteln ?
Problem : Wir bekommen von einem Partner Datensätze mit Umlauten gesendet, die die i5 'entstellt' darstellt. Zum Beispiel statt eines 'ü' erhalte ich ein 'e' mit 2 Punkten drauf.
Nach der Datenübernahme möchte ich die entsprechenden Zeichen umsetzen.
Oder gibt es einfachere Lösungen als die Prüfung des Hexa-Wertes eines Zeichens ?
Vielen Dank im Voraus !
-
Die Frage ist, wie stellst du die Daten denn ab und kopierst sie in eine PF?
Beim CPYFRMSTMF kannst du eine andere CCSID (z.B. 1252) angeben.
-
Danke für die Antwort.
Das habe ich jetzt auch so eingebaut.
Mein Problem sind jetzt noch bereits im System vorhandene Sätze, wo ich die Umlaute konvertieren will/muß.
-
Hallo
Den Hex-Wert eines Zeiches kannst Du beispielsweise so ermitteln:
Code:
d HexToInt ds
d hiChar 1A
d hiInt 3u 0 overlay(hiChar:1)
Gruss
Jan
-
... das geht am Besten mit SQL, beim Cast kann man da die CCSID angeben, eventuell braucht man da einen Zwischencast nach 65535.
D*B
 Zitat von lossin
Danke für die Antwort.
Das habe ich jetzt auch so eingebaut.
Mein Problem sind jetzt noch bereits im System vorhandene Sätze, wo ich die Umlaute konvertieren will/muß.
-
Wenn es sich allerdings nur um die Umlaute handelt, kann man mit dem SQL-Befehl Replace die falschen Werte in die richtigen umsetzen:
PHP-Code:
Update MySchema/MyTable
Set MyField = Replace(MyField: WertAlt: WertNeu);
Birgitta
-
Oder in RPG mittels XLATE.
-
Dieters Tipp ist der Beste:
Z.B.:
update myfile
set field = cast(cast(field as char(nn) ccsid 65535) as char(nn) ccsid 273)
where ...
Allerdings musst du die Ursprungs-CCSID ja kennen.
-
Erst mal Danke für eure Hilfe !
@Pikachu :
Wie bekomme ich Folgendes mit XLATE hin ?
Wenn Hexa-Wert-des-Zeichens = 99 dann Neuer-Zeichen-Wert = 'ß'
@all
oder geht das auch anders unter ILERPG ?
-
Feld = %xlate(x'99nnmm' : 'ßNM': Feld);
Schließlich kannst du je Hexkonstanten direkt angeben.
In SQL:
update Myfile
set field = replace(field, x'99nnmm', 'ßNM')
-
 Zitat von Fuerchau
In SQL:
update Myfile
set field = replace(field, x'99nnmm', 'ßNM')
Du meinst wahrscheinlich:
PHP-Code:
Update MyFile
Set Field = Translate(Field, x'99xxyy', 'ßNM');
Replace ersetzt die Kombination x'99nnmm' durch 'ßNM' und nicht die einzelnen Zeichen!
Birgitta
-
Ok, sorry. Man sollte eben nicht alles aus dem Kopf machen .
Similar Threads
-
By mk in forum IBM i Hauptforum
Antworten: 9
Letzter Beitrag: 21-12-06, 08:56
-
By JonnyRico in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 25-04-06, 10:16
-
By harkne in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 30-03-06, 12:25
-
By TARASIK in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 03-02-05, 14:17
-
By Philipp Brenner in forum IBM i Hauptforum
Antworten: 19
Letzter Beitrag: 29-11-04, 13:53
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