-
QSH und echo
Hi,
Ich baue mir in einem RPG-Programm einen übergebenen (CL) String zusammen und möchte den nun via QSH und echo an das IFS übergeben. Funktioniert soweit gut, nur bekomme ich im übergebenen File Hieroglyphen. Ich nehme mal an, das hängt mit der CCSID zusammen.
Job CCSID ist 500.
Für Hinweise bin ich dankbar.
kf
-
Ich wäre für Hinweise was genau du da machst ebenso dankbar.
Wer erstellt die IFS-Datei?
Dein CLP?
Das "echo" per Ausgabeumleitung?
Das Problem könnte eben sein, dass die IFS-Datei dann auch CCSID 500 hat und somit EBCDIC-Code enthält.
-
Hallo Baldur,
Ich erstelle eine Import-CSV Datei mit den Feldnamen als Header. Dafür erstelle ich als erstes einen kompletten Headerstring für QSH welcher in einem RPG Programm aufbereitet wird, also mit echo und Target. Diesen schiebe ich mit QSH CMD(&string) in's IFS und gleich einen CPYTOIMPF hinterher. Das File besteht nicht im IFS. Die Daten vom CPYT... sind ok, nur der Header zickt.
Besser so?
btw, ich möchte das nicht mit SQL lösen, soll im RPG bleiben.
kf
-
Beim CPYTOIMPF gibst du ja eine Ziel-CCSID an, deshalb die korrekte Darstellung.
Mit dem Echo wird die neue IFS-Datei erstellt, da du dabei aber keine CCSID angeben kannst, wird die Job-CCSID genommen.
Du musst also eine leere Datei erstellen, die CCSID setzen und dann per Echo die Daten anhängen.
qsh cmd('echo >/Home/MyFile.csv;touch -C 1252 /Home/MyFile.csv;echo ''HDR;'' >/Home/MyFile.csv')
Mittels "touch -C File" wird die CCSID der Datei gesetzt, eine Datenumsetzung erfolgt nicht!
-
Alles klar, bau mir den String so zusammen. Danke.
kf
-
Hallo Baldur,
Hat leider nicht den gewünschten Erfolg gebracht - immer noch der gleiche Inhalt.
Hab noch einen Test mit dem deinem Beispiel gefahren - funktioniert auch nicht.
Der nachfolgende CPYTOIMPF mault mich dann auch noch wegen der CCSID an.
Noch andere Ideen, bevor ich den String einfach in ein Flatfile setze und dieses dann mittels normalem CPYTOIMPF übertrage?
Gruss
kf
-
Gelöst!
qsh cmd('echo >/Home/MyFile.csv;touch -C 1252 /Home/MyFile.csv;echo ''HDR;'' >/Home/MyFile.csv')
Mittels "touch -C File" wird die CCSID der Datei gesetzt, eine Datenumsetzung erfolgt nicht!
Der erste echo darf nicht sein, da das File schon falsch erstellt wird. Ich habe den touch vorangestellt und den echo hinterher - et voilà, schon klappts.
also:
qsh cmd('touch -C 1252 /Home/MyFile.csv;echo ''HDR;'' >/Home/MyFile.csv')
kf
-
OK, dann scheint der touch die Datei wohl schon anzulegen was ich nicht wusste.
Ein nachträglicher touch sollte aber immer noch möglich sein da auch ein CHGATR später immer noch möglich ist.
-
@touch: -C legt an, -c nicht und CCSID für existierende bleibt
@CCSID: da gibt es eine EnvVar QIBM_CCSID (o.ä.), zum ändern für eine vorhandene Streamfile gibt es setccsid
setccsid 1252 muell.txt
D*B
-
Danke für den Hinweis, dann war ich ja nicht sooo schlecht .
Similar Threads
-
By malzusrex in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 27-09-12, 11:54
-
By tomikra in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 30-06-06, 10:33
-
By FKathmann in forum IBM i Hauptforum
Antworten: 14
Letzter Beitrag: 21-11-05, 09:02
-
By ExAzubi in forum IBM i Hauptforum
Antworten: 3
Letzter Beitrag: 14-06-05, 11:12
-
By DEVJO in forum NEWSboard Java
Antworten: 1
Letzter Beitrag: 27-05-05, 09:07
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