[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Mar 2006
    Beiträge
    16

    Falsche CCSID bei schreiben IFS-Textdatei

    Hallo Forum,
    es ist wie verhext, versuche eine Textdatei auf das IFS zu stellen (diese sollte dann aus Windows heraus gelesen werden können), und kriege immer die CCSID 273 rauf, obwohl ich beim open diese mitgebe. Der Inhalt ist dann natürlich auch EBCDIC...

    Pgm:

    eval oflag = oflag=O_CREAT+O_WRONLY+O_TEXTDATA
    eval path = '/home/TEST/X1.dat' + ZeroBin
    eval fd = open(pathptr: oflag: 511:1252)

    Danach ein Write und ein close --> CCSID ist immer 273

    was mache ich hier falsch ?

    danke für eure hilfe....

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Der "Open" öffnet leider im Binary-Format.
    Versuche es mit "fopen()".
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Dec 2000
    Beiträge
    450
    Oder erstelle die Datei vorher mit dem qsh-Befehl touch unter Angabe der korrekten CCSID.

    Bruno

  4. #4
    Registriert seit
    Mar 2006
    Beiträge
    16
    Hallo Bruno, fuerchau,

    danke für die Tips, habe das Problem jetzt folgendermassen gelöst:
    im open-befehl habe ich jetzt die CCSID für file UND open angegeben, dann ist die Textdatei auf Windows lesbar.

    eval flag=O_CREAT+O_RDWR+O_CCSID+ O_TEXTDATA+O_TEXT_CREAT+O_EXCL
    eval mode=S_IRUSR+S_IWUSR+S_IXUSR

    eval cp_file = 367
    eval cp_open = 37

    eval fd = open(pathptr:flag:mode:cp_file:cp_open)

    ** schreiben
    eval buf='hallo1' + X'0D25'
    callp write(fd: bufpointer: %LEN(%TRIMR(buf)))

    callp close(fd)


    Wenn jetzt die Umwandlungstabelle gefunden wird, geht das super !

    Ist eigentlich die codepage 367 OK, weil alle von der 1252 reden, für die habe ich aber keine conversion-table gefunden....

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    367 ? Kenn ich nicht.
    1252 ist Windows CP für ANSI.
    037 ist USA-Englisch.

    Sind deine Dateien ggf. 273 !?
    Prüfe vor allem auf Umlaute und Sonderzeichen.

    Normalerweise gibts Umwandlungstabellen von 273->1252.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  6. #6
    Registriert seit
    Mar 2006
    Beiträge
    16
    Hallo Fuerchau,
    sorry für die späte Antwort, bin gerade im Urlaub.
    Unsere Dateien sind durchwegs CCSID 273.

    Lt. Wikipedia:
    Many European languages use the EBCDIC-encoded CCSID 37. CCSID 367 is identical to ASCII. CCSID 819 is identical to ISO 8859-1. CCSID 923 is identical to ISO 8859-15. CCSID 1208 is identical to UTF-8.

    Habe das anfangs mit 1252 versucht, dann hatte ich einen Programmabruch mit der Meldung: Umsetzung nicht möglich.

    Mit der 367 klappt das.
    Danke für deine Antworten.

Similar Threads

  1. Windowstabelle wird im IFS in CCSID 1252 erstellt
    By umeis in forum NEWSboard Windows
    Antworten: 3
    Letzter Beitrag: 11-08-06, 12:45
  2. Textdatei im IFS hat Sonderzeichen
    By TARASIK in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 29-06-06, 15:59
  3. Lotus Domino / CCSID / IFS / Mail Anhang
    By Hrs28 in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 26-05-05, 13:16
  4. IFS CCSID
    By DEVJO in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 26-11-04, 19:01
  5. CCSID 273/37 und Java-Objekte im IFS
    By Ahrendt in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 21-07-04, 18:19

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •