-
Wofür 2 Open? Nach dem 1. Open solltest du bereits Daten schreiben können.
-
Hallo,
dachte ich auch! Aber: wenn ich nach dem ersten öffnen schreibe, dann hat die Datei einen undefinierten Inhalt.
Beispielsweise "Hello World" sieht dann so aus:
È…““–@æ–™“„@
Im iNavigator sieht es korrekt aus!
Wenn ich die Datei schreibe und anschließend wieder gleich schließe und danach erneut öffne, kann ich die Datei einwandfrei beschreiben und alles sieht ok aus!
Das war einer der Punkte mit dem ich mich schwer tat!
-
Dann stimmt was mit deiner Job-Umgebung nicht, denn im 1. Open gibst du eine CCSID 1252 an, im 2. Open verwendest du CCSID 0.
Hast du mal deine Job-CCSID geprüft? Ist die u.U. wieder mal *HEX?
-
... der casus knaxus sind die flags. Beim ersten open wird die CCSID angegeben und die Datei erstellt. Das 2. open wird als Textdatei gemacht, was Konvertierung bedeutet.
D*B
-
Dann kann man das Flag O_TEXTDATA ja bereits beim 1. Open angeben;-).
-
OK! Dann werde ich das heute mal probieren! Melde mich sobald ich näheres weiß.
-
nö, dann wird nicht konvertiert (RTFM).
-
Genau!!! Dann wird nicht konvertiert!!
habe das "Programm" umgeschrieben:
Flags = O_WRONLY + O_CREAT + O_APPEND + O_CCSID +O_TEXTDATA;
Mode = S_IRWXU + S_IRWXG + S_IRWXO;
Fd = Open(%Trim(txt_file):Flags:Mode:1252);
Danach 3 Zeilen geschrieben:
eval line1 = *blanks
eval line = 'äüöß 1. Zeile'
eval line1 = line + crlf
callp write(fd: %addr(line1): %size(line1))
...
Ergebnis:
ÀÐj¡@@@@ñK@é…‰“…@@@@@@@@@@@@@@
%JZà¡@@@@òK@é…‰“…@@@@@@@@@@@@@@
%JZà¡„„„@óK@é…‰“…@@@@@@@@@@@@@@
%
-
Dann probier mal noch bitte folgendes:
When the O_TEXT_CREAT flag and its prerequisite flags are not set, the specified or derived CCSID is the CCSID in which data is to be returned (when reading from a file), or the CCSID in which data is being supplied (when writing to a file).
Mit der Interpretation, dass dies Binary-Mode ist.
https://www.ibm.com/support/knowledg...htm#HDRIFSCCSD
-
Du meinst das O_TEXT_CREAT flag einfach weglassen?
-
Nein, hinzufügen. Das ist nicht zu verwechseln mit O_TEXTDATA.
Es ist halt immer etwas schwierig, die englische Doku zu verstehen.
Es ist schon seltsam, dass bei der O_CREAT für die Textumwandlung O_TEXT_CREAT erforderlich ist wobei bei bestehenden Dateien O_TEXTDATA bereits ausreicht.
-
Klar! Wer lesen kann....
Hatte den Wert verwechselt!!!
Flags = O_WRONLY + O_CREAT + O_APPEND + O_CCSID +O_TEXTDATA +
O_TEXT_CREAT;
Mode = S_IRWXU + S_IRWXG + S_IRWXO;
Fd = Open(%Trim(txt_file):Flags:Mode:1252);
Fd liefert mir den Wert -1 (= Fehler)!
Verstehe nicht warum.
Im Code gibt es zwar den Hinweis:
Note: O_TEXT_CREAT requires all of the following flags to work:
O_CREAT+O_TEXTDATA+(O_CODEPAGE or O_CCSID)
Alle Werte sind ja angegeben (Außer O_CCSID) aber es heißt ja: OR
Similar Threads
-
By dschroeder in forum NEWSboard Programmierung
Antworten: 4
Letzter Beitrag: 30-01-17, 13:36
-
By PFR in forum NEWSboard Programmierung
Antworten: 15
Letzter Beitrag: 05-01-16, 15:42
-
By JoergHamacher in forum NEWSboard Programmierung
Antworten: 8
Letzter Beitrag: 28-11-13, 09:56
-
By Kilianski in forum NEWSboard Server Software
Antworten: 0
Letzter Beitrag: 08-08-02, 16:07
-
By Michael@Paff.de in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 28-04-02, 08:42
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