[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2008
    Beiträge
    5

    IFS-APIs mit Umlautproblem

    Hallo liebes Forum,

    ich nutze die APIs fopen() und fputs() zum erstellen von PC-Dokumenten.

    Leider habe ich das Problem, dass die Umlaute(ÄÜÖ) fehlerhaft in diesen Dateien erzeugt werden(Ö = ' ).

    Was kann ich machen, um diesen Fehler zu bereinigen???

    Mein Code entspricht ca. folgendem Format:

    fd = fopen('/myDir/myFile.txt':'a');
    callp fputs('Neue Zeile' + X'0D25':fd);
    fclose(fd);

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Du musst im fopen erweiterte Modi zum Konvertieren angeben (ungefähr so):

    fopen('/myDir/myFile.txt':'a,ccsid=1252');

    http://publib.boulder.ibm.com/infoce...5607.pdf#FOPEN

    Die genaue Syntax entnimm bitte dem Handbuch.
    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
    Mar 2002
    Beiträge
    5.365
    mit circa Code wirds halt nur circa richtig!

    Der Trick ist im Prinzip folgender:
    erstes öffnen mit erstellen unter Festlegung CCSID
    schließen
    neu öffnen mit der Angabe Textdaten
    In Code findet man das auf meiner Freeware Seite, wobei man dann auch INSTREAM und OUTSTREAM direkt verwenden könnte.

    D*B

    Zitat Zitat von skar Beitrag anzeigen
    Hallo liebes Forum,

    ich nutze die APIs fopen() und fputs() zum erstellen von PC-Dokumenten.

    Leider habe ich das Problem, dass die Umlaute(ÄÜÖ) fehlerhaft in diesen Dateien erzeugt werden(Ö = ' ).

    Was kann ich machen, um diesen Fehler zu bereinigen???

    Mein Code entspricht ca. folgendem Format:

    fd = fopen('/myDir/myFile.txt':'a');
    callp fputs('Neue Zeile' + X'0D25':fd);
    fclose(fd);
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  4. #4
    Registriert seit
    Feb 2008
    Beiträge
    5
    Das merkwürdige ist wenn ich direkt die CCSID angebe, dann kommt absoluter Kauderwelsch heraus.

    z.B.
    fd = fopen('/myDir/myFile.txt':'a, o_ccsid=850');
    or
    fd = fopen('/myDir/myFile.txt':'a, ccsid=850');

    Wenn ich jedoch die CCSID weglasse, und fopen versucht die CCSID des PC-Datei selber herauszufinden, dann werden nur die Umlaute falsch angezeigt.


    Hatte das gleiche Problem im Prinzip als ich das PC-Dokument in EBCDIC erstellte und später mit cpy in PCASCII konvertierte. Da hatte ich versehentlich die Übersetzung in Binär-Modus angegeben. Als ich es jedoch dann in den Textmodus umstellte wurden die Umlaute richtig dargestellt.

  5. #5
    Registriert seit
    Feb 2008
    Beiträge
    5
    Auch wenn ich vorher die Datei mit fopen() mit CCSID 850 erstellt hatte.

  6. #6
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    viellecht siehst du dir doch mal den outstream an!!!
    open mit createflag und CCSID erstellt die passende Datei
    close
    erneuter open ohne!!! CCSID und dem Flag für Textdaten sorgt für korrekte Konvertierung

    D*B

    Zitat Zitat von skar Beitrag anzeigen
    Auch wenn ich vorher die Datei mit fopen() mit CCSID 850 erstellt hatte.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  7. #7
    Registriert seit
    Feb 2008
    Beiträge
    5
    Wie kann man bei fopen() ein Textflag setzen???

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ich poste doch nicht aus Jux und Dollerei, oder weil mir langweilig ist, in der bereits mehrfach angegebenen Quelle steht das haarklein mit open drin, wenn du das partout mit fopen machen willst, dann gibt es auch noch die C Reference

    D*B

    Zitat Zitat von skar Beitrag anzeigen
    Wie kann man bei fopen() ein Textflag setzen???
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  9. #9
    Registriert seit
    Feb 2008
    Beiträge
    5
    Sorry BenderD,

    hatte mich ein wenig falsch ausgedrückt. Bin ja natürlich schon dabei deine Lösung mit open() auszuprobieren. Welche den großen Vorteil bietet mehr Einstellungsmöglichkeiten als fopen() zu besitzen.

    Hätte ja sein können, dass du weißt ob man bei fopen() das Textflag setzen könnte. Dann wäre ich eventuell schneller zur Lösung gekommen.

    Sorry nochmals, wollte ganz bestimmt nicht ignorant erscheinen :-)

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Du musst dich entweder für ASCII (850, oder DOS-Welt) oder 1252 ANSI (Windwos) entscheiden.

    Da bei 850 wohl die Umlaute falsch sind, muss wohl 1252 sein.
    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

Similar Threads

  1. Berechtigungen im IFS zuweisen
    By ChrisX in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 03-12-07, 12:07
  2. IFS - Freigabe per Befehlszeile
    By eps330 in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 26-11-07, 12:24
  3. Dateien per FTP von IFS auf der AS400 holen
    By kroehn in forum NEWSboard Windows
    Antworten: 5
    Letzter Beitrag: 08-11-06, 19:36
  4. Allgemeine Berechtigung für Jobs ... IFS Ordner ...
    By bode in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 30-10-06, 11:10
  5. Datei im IFS auf iSeries verschlüsseln
    By jo400 in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 21-10-06, 17:57

Berechtigungen

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