-
Nicht lesbare Daten nach Read aus dem IFS
Hallo,
ich möchte Daten aus einer .csv Datei im IFS lesen. Die eingelesenen Daten werden aber nciht umgesetzt. Was mache ich falsch/was fehlt? Habe mich an den bekannten Beispielen von Scott Klement orientiert. Auch verschiedene Versuche mit den Parametern des Open haben nichts gebracht (O_CCSID/O_TEXTDATA/O_CODEPAGE). Oder ist buf falsch definiert?
Open der Datei:
Inp_File = '/CIAN/' + Read_File;
oflag = O_RDWR + O_CCSID + O_TEXTDATA;
omode = S_IRWXU + S_IRWXG + S_IRWXO;
eval fd = open(%trimr(Inp_File) : oflag :
omode : 500);
Lesen der Datei:
eval len = read(fd: %addr(buf): %size(buf));
Inhalt von buf:
ä%ÑÁ>Èñà&/ÊÈ`&<ãäèê&<ãçëè
è`øÁ
.+( ààá ë.+ñàáî
.+âä+àá ë.+ñàáî
èáëèàá ë.+ñàáî
+!èñãßàá ë.+ñàáî
ë â ñêäê àá ë.+ñàáî
ëçñ&&áêàá ë.+ñàáî
ä!+ëñå+ááàá ë.+ñàáî
.+ç.åàá ë.+ñàáî
â!ñ+å ñäê àá ë.+ñàáî
.+âêäàá ë.+ñàáî
.+ <ñàá ë.+ñàáî
.+î <àá ë.+ñàáî
.+â<âàá ë.+ñàáî
.+( ààá ë.+ñàáî
( [!êñä ë àá ë.+ñàáî
äíêèñà!ëêñàá ë.+ñàáî
.+
ë& ñ+èáëèàá ë.+ñàáî
íè!( èñäëàá ë.+ñàáî
<ã ãíáàá ë.+ñàáî
<ñ(&íáàá ë.+ñàáî
ê(ëâáåàá ë.+ñàáî
êá â ààá ë.+ñàáî
<âêâ êàá ë.+ñàáî
åäñâ êàá ë.+ñàáî
&<ñ
Definition buf:
D buf S 5000
Danke für Ideen!
Grüße
Matthias
-
O_CCSID ist schon korrekt.
Wenn dein Job allerdings auf CCSID(*HEX) steht, weiß das System ja nicht in welche CCSID umgewandelt werden soll.
Ändere deinen Job auf die benötigte CCSID (z.B. 273), dann sollte es klappen.
-
Der Job läuft unter CCSID 500. Ergo sollte das klappen. Der Fehler muß also noch irgendwo anders liegen.
-
Die Files im IFS haben alle CCSID 819. Der Job läuft unter 500. Wenn ich mir mal einen CHGJOB, Parameter CCSID, anschaue, sehe ich in der Lsite der CCSID's die 819 nicht. Deutet das auf ein Problem mit CCSID 819 hin? Erstellt werden die csv's per CPYTOIMPF mit TOCCSID(*STMF).
-
Ich bin schon mal ein Stück weiter. Die .csv Files haben CCSID 819, die Daten sind binär gespeichert. Wenn ich jetzt die .csv Datei mit COPY kopiere und dabei die CCSID 500 und Format *TEXT angebe, dann kann ich die Daten offensichtlich lesen. Allerdings muß der open() dann auch mit O_TEXTDATA und O_CCSID (500) gemacht werden.
-
Dann stammen die CSV-Daten nicht aus der PC-Welt sondern aus einer anderen AS/400.
Beim Kopieren von Dateien in das IFS per FTP wird die CCSID aus CHGFTPA gewählt.
Beim Kopieren über Freigaben (Windows) die Default-CCSID des NetServers.
Dabei spielt es keine Rolle, welchen Code die Daten tatsächlich haben.
Man sollte also immer wissen, wie die Daten tatsächlich kodiert sind.
Lesbar mit Windows Notepad?
Dann wahrscheinlich 1252 (Voll-ANSI) oder 819 (Teil-ANSI).
Per CHGATR kann man die CCSID einer IFS-Datei anpassen ohne Codewandlung.
Ist die Datei mit EDTF auf der AS/400 lesbar?
EDTF wandelt standardmäßig von der IFS-CCSID in die JOB-CCSID um.
-
Danke für die Info's! Ja, die Dateien stammen von einer anderen AS/400. Alle haben CCSID 819 und sind mit EDTF lesbar.
-
Wenn Du O_CCSID bzw. O_CODEPAGE angibst, musst Du auch den 4. Parameter, CCSID oder Codepage, angeben. Als 5. Parameter kannst Du einfach 0 übergeben, das ist dann die Job-CCSID.
Aber weniger ist oft besser, darum probier's mal so:
oflag = O_RDWR + O_TEXTDATA;
fd = open(%trimr(Inp_File) : oflag );
Wenn das nichts bringen sollte, gib' wieder O_CCSID und den 4. Parameter an, mit der CCSID der IFS-Datei (mit stat() im Pgm herauszufinden).
-
So wie es für mich aussieht, hat die Datei zwar CCSID 819 (ggf. Copy aus Windows/FTP), der Inhalt ist wohl aber die CCSID des Quellsystem (z.B. 273).
Damit kann keine Codewandlung von 819 nach irgendwas funktionieren.
-
Das kann nicht sein, Baldur.
Um 09:33 hat msost geschrieben, dass die Dateien CCSID 819 haben und er sie mit EDTF lesen kann - also stimmt die Codierung. Es kann nur das Lesen im RPG falsch sein.
Similar Threads
-
By falke34 in forum NEWSboard Programmierung
Antworten: 11
Letzter Beitrag: 11-07-14, 10:32
-
By JürgenG in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 22-11-02, 09:24
-
By Bruno Jakob in forum IBM i Hauptforum
Antworten: 0
Letzter Beitrag: 28-02-02, 12:57
-
By HJM in forum NEWSboard Windows
Antworten: 3
Letzter Beitrag: 25-02-02, 22:27
-
By ROSTE in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 08-10-01, 08:58
Tags for this Thread
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