[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Thema: IFS und CCSID

Hybrid View

  1. #1
    Registriert seit
    Apr 2009
    Beiträge
    69

    IFS und CCSID

    Hallo zusammen,
    ich habe das Problem das ich auf einem Win2003 Server eine .bat Datei benötige die ich
    auf iSeries mit RPG im IFS erzeugen will. Das ganze habe ich erst einmal mit einer Text File ausprobiert.Ich habe nun gelesen das ich auf der I5 beim open und erzeugen der *.txt datei im IFS eine CCSID mitgeben kann.Hier mal die Code Schnippsel.

    if unlink('/XXXX/xxxx/xxxx.txt') < 0;
    err = errno;
    if err ENOENT;
    callp die('unlink(): ' + %str(strerror(err)));
    endif;
    endif;

    fd = open( %trim(path) : flags : mode : codepage );

    callp close(fd);
    flags = O_WRONLY + O_TRUNC + O_TRUNC;
    fd = open( %trim(path) : flags : mode );
    if fd < 0;
    callp die('open(): ' + %str(strerror(errno)));
    errmsg = %str(strerror(errno));
    callp die('open() for output: ' + ErrMsg);
    endif;

    .... begsr init;
    codepage = 367;

    Ich habe es schon mit verschd. CCSID probiert, jedoch keinen Erfolg gehabt.

    Ist der Weg generell richtig? oder mache ich überhaupt was falsch?

    Wo finde ich die richtige CCSID? Habe es auch schon mit 1252 probiert

    Gruß co_steffl

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... beim zweiten öffnen fehlt wohl das TEXTDATA Flag.
    bei mir auf der Webseite gibt es aber auch ein fertiges SRVPGM OUTSTREAM

    D*B

    Zitat Zitat von co_steffl Beitrag anzeigen
    Hallo zusammen,
    ich habe das Problem das ich auf einem Win2003 Server eine .bat Datei benötige die ich
    auf iSeries mit RPG im IFS erzeugen will. Das ganze habe ich erst einmal mit einer Text File ausprobiert.Ich habe nun gelesen das ich auf der I5 beim open und erzeugen der *.txt datei im IFS eine CCSID mitgeben kann.Hier mal die Code Schnippsel.

    if unlink('/XXXX/xxxx/xxxx.txt') < 0;
    err = errno;
    if err ENOENT;
    callp die('unlink(): ' + %str(strerror(err)));
    endif;
    endif;

    fd = open( %trim(path) : flags : mode : codepage );

    callp close(fd);
    flags = O_WRONLY + O_TRUNC + O_TRUNC;
    fd = open( %trim(path) : flags : mode );
    if fd < 0;
    callp die('open(): ' + %str(strerror(errno)));
    errmsg = %str(strerror(errno));
    callp die('open() for output: ' + ErrMsg);
    endif;

    .... begsr init;
    codepage = 367;

    Ich habe es schon mit verschd. CCSID probiert, jedoch keinen Erfolg gehabt.

    Ist der Weg generell richtig? oder mache ich überhaupt was falsch?

    Wo finde ich die richtige CCSID? Habe es auch schon mit 1252 probiert

    Gruß co_steffl
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Apr 2009
    Beiträge
    69
    Danke für dir rasche Antwort,
    werde es mir mal anschauen. Ich berichte wieder.

    gruß co_steffl

  4. #4
    Registriert seit
    Apr 2009
    Beiträge
    69
    Hallo

    den o_textdata habe ich gesetzt. Codepage auf 273
    Daten sehen im IFS O.K aus

    prtacctab 'H' 'A_38AE20' -r 'D:\ases\SES\custom\reports\de_...

    Jedoch auf PC geöffnet mit Word-Padso

    —™£ƒƒ£‚@}È}@}ÁmóøÁÅòð}@`™@ }Äz쁢…¢ìâÅâ샤¢£–”ì™…— –™£¢ì„…mÄÅì™…—©ø“óK™… —–™£}@`–@}Äz쁢…¢ìâÅâ샤¢ –”쁃ƒ£‚ìÁmóøÁÅòð@`ƒ“@ð %@@@@@@@@@@@@@@@@


    Ist 273 die richtige Codepage dafür?

    co_steffl

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    273 ist ja auch EBCDIC, für den PC benötigst du 1252 (Westeuropa).

    Achtung:
    Die CCSID wird nur verwendet, wenn die Datei angelegt wird, ansonsten gilt die aktuelle CCSID !
    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
    Apr 2009
    Beiträge
    69
    Hallo
    hatte ich schon probiert codepage 1252


    daraus wird dann im IFS

    CCSID . . . . . . . . . . . . . . . . : 5348

    In ifs sieht das so aus

    prtacctab 'H' 'A_38AE20' -r 'D:ÖasesÖSESÖcustomÖ


    grosse Ö sollte Back-slash sein

    In pc sieht so aus

    —™£ƒƒ£‚@}È}@}ÁmóøÁÅòð}@`™@ }Äz쁢…¢ìâÅâ샤¢£–”


    wir bei 1.ten open angelegt
    flags = O_WRONLY + O_CREAT + O_TRUNC + O_CODEPAGE + O_TEXTDATA;

    Gruss co_steffl

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    5348 entspricht 1252 mit Euro.
    Aber welche CCSID hat dein JOB ?
    Wenn der auf 65535 steht, gibts auch keine Codewandlung.

    Und ein Ö ist niemals ein \ sondern immer ein Ö.
    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

  8. #8
    Registriert seit
    Apr 2009
    Beiträge
    69
    Hallo

    mein Job hat ccsid 1141

    co_steffl

    ps das mit dem Ö hat sich geklärt, rest nicht

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Les dir bitte noch mal die Beschreibung durch:
    open()--Open File
    Vielleicht siehst du ja dann was falsch läuft.
    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

  10. #10
    Registriert seit
    Oct 2009
    Beiträge
    5
    Hallo co_steffl,

    notfalls kannst Du ja auch in eine temporäre Arbeitsdatei schreiben und diese dann per CPYTOIMPF (mit STMFCODPAF(*PCASCII) und RMVBLANK(*TRAILING)) ins IFS stellen.
    Dies geht ja auch innerhab des RPGs mit call(e) 'QCMDEXC'.

    Viele Grüße
    Michael

  11. #11
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    ... nur mal der Ordnung halber gefragt, in welchem Dateisystem machst du das ganze Spiel? das mit der CCSID geht natürlich nur, wenn das Dateisystem das kann (QNTC kann das zum Beispiel nicht)

    D*B

    Zitat Zitat von co_steffl Beitrag anzeigen
    Hallo
    hatte ich schon probiert codepage 1252


    daraus wird dann im IFS

    CCSID . . . . . . . . . . . . . . . . : 5348

    In ifs sieht das so aus

    prtacctab 'H' 'A_38AE20' -r 'D:ÖasesÖSESÖcustomÖ


    grosse Ö sollte Back-slash sein

    In pc sieht so aus

    —™£ƒƒ£‚@}È}@}ÁmóøÁÅòð}@`™@ }Äz쁢…¢ìâÅâ샤¢£–”


    wir bei 1.ten open angelegt
    flags = O_WRONLY + O_CREAT + O_TRUNC + O_CODEPAGE + O_TEXTDATA;

    Gruss co_steffl
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  12. #12
    Registriert seit
    Apr 2009
    Beiträge
    69
    Hallo zusammen,

    erst mal Danke für alle Tipps. Auch wenn Ihr mich für dumm haltet, aber seit heute Morgen läuft es Warum auch immer. Ich habe nichts geändert. Hier nochmal die Quelle und vielen Dank!

    Gruß co_steffl

    if unlink('/ASES/export/prtacctab.txt') < 0;
    err = errno;
    if err <> ENOENT;
    callp die('unlink(): ' + %str(strerror(err)));
    endif;
    endif;

    fd = open ( %trim(path) // Open for create
    : flags
    : mode
    : codepage
    );

    callp close(fd);

    flags = O_WRONLY + O_TRUNC + O_TRUNC + O_TEXTDATA;

    fd = open ( %trim(path) // open for proceed
    : flags
    : mode
    );

    if fd < 0;
    callp die('open(): ' + %str(strerror(errno)));
    errmsg = %str(strerror(errno));
    callp die('open() for output: ' + ErrMsg);
    endif;
    .
    .
    .

    begsr init;

    codepage = 1252;
    path = '/ASES/export/prtacctab.txt';
    flags = O_WRONLY + O_CREAT + O_TRUNC + O_CODEPAGE;
    mode = S_IRUSR + S_IWUSR + S_IRGRP + S_IROTH;

Similar Threads

  1. Probleme mit IFS und CCSID
    By fabax in forum IBM i Hauptforum
    Antworten: 12
    Letzter Beitrag: 19-03-07, 13:32
  2. Windowstabelle wird im IFS in CCSID 1252 erstellt
    By umeis in forum NEWSboard Windows
    Antworten: 3
    Letzter Beitrag: 11-08-06, 12:45
  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
  •