[NEWSboard IBMi Forum]
Seite 2 von 2 Erste 1 2
  1. #13
    rod Besucher/Guest
    Hallo,

    mit Cp273 lese ich die Daten nur mit der richtigen Codepage, Javaintern habe ich sie immer in UNICODE.
    Die Konvertierung erfolgt automatisch bei Angabe der richtigen Codepage.

    Schönen Gruß
    Roderich


    Zitat Zitat von Fuerchau
    PS:
    Mit CP273 erhältst du die Daten in EBCDIC und mnusst sie auch noch selber wandeln.
    JAVA arbeitet z.B. in ISO8859-1 oder sogar UNICODE.
    Wo ist da der Vorteil, alles selber machen zu müssen ?

  2. #14
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    Zitat Zitat von rod
    new FileInputStream(file, "Cp273"));
    Roderich
    was hast Du da für einen FileInputStream? meiner (JDK SE 1.4.2) hat einen solchigen nicht?!

    Dieter Bender
    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. #15
    rod Besucher/Guest
    Hallo Dieter,

    entschuldigung, mein Fehler:
    mReader = new BufferedReader(new InputStreamReader(
    new FileInputStream(file),"Cp273"));

    das ist ein Parameter im Constructor des InputStreamReader

    Schönen Gruß
    Roderich



    Zitat Zitat von BenderD
    Hallo,



    was hast Du da für einen FileInputStream? meiner (JDK SE 1.4.2) hat einen solchigen nicht?!

    Dieter Bender

  4. #16
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo Roderich,

    das ist bei knappen Codesnippets manchmal nicht so einfach, das auf einen Blick zu erfassen, zumal mich das file ein wenig verwirrt, der FileInputStream wäre auch mit dem Pfad zufrieden.
    An die CCSID kommt man wohl über die File und co Objekte nicht dran, was weiß ein Windows oder Unix File dass es eine CCSID haben könnte und gar welche. Die einzige Chance wäre über das IFSFile Objekt aus dem Toolbox Zinnober, aber ich habe die Scheu immer noch nicht verstanden das auf einer AS400 in ein Streamfile zu schreiben, oder wo kommen die Daten denn her?
    Ich bin allerdings immer noch nicht davon überzeugt, dass die falsche Umwandlung ohne Angabe der CCSID ein Feature und kein Bug ist - wie stehts mit euren Java PTFs?

    mfg

    Dieter Bender

    Zitat Zitat von rod
    Hallo Dieter,

    entschuldigung, mein Fehler:
    mReader = new BufferedReader(new InputStreamReader(
    new FileInputStream(file),"Cp273"));

    das ist ein Parameter im Constructor des InputStreamReader

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

  5. #17
    rod Besucher/Guest
    Hallo zusammen,

    ich denke die beste Lösung für mein Problem ist das einlesen der Dateien mit der Toolbox-klasse AS400File. Dann werte ich beim ersten Textfeld der Datei die ccsid wie folgt aus:



    Record r = new SequentialFile(new AS400(), path).read();
    AS400Text asText = (AS400Text) r.getField();
    int ccsid = asText.getCcsid();



    (hier muss vorher sichergestellt werden, dass die Spalte vom Type AS400Text ist. Den FeldTyp kann man wie folgt erhalten:

    int type = new SequentialFile(new AS400(), path).getRecordFormat().getFieldDescription()
    .getDataType().getInstanceType();

    Die verschiedenen Datentypen sind in AS400DataType definiert



    Viele Grüße und vielen Dank für die Tipps
    Roderich

  6. #18
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    also für meinen Geschmack ist JDBC wesentlich einfacher und die Argumentation in einem früheren Posting von der Standard Anwendug, die mit mehreren Plattformen kann als Gegenargument gegen JDBC, wie verträgts sich das mit AS400File???

    mfg

    Dieter Bender

    Zitat Zitat von rod
    Hallo zusammen,

    ich denke die beste Lösung für mein Problem ist das einlesen der Dateien mit der Toolbox-klasse AS400File. Dann werte ich beim ersten Textfeld der Datei die ccsid wie folgt aus:



    Record r = new SequentialFile(new AS400(), path).read();
    AS400Text asText = (AS400Text) r.getField();
    int ccsid = asText.getCcsid();



    (hier muss vorher sichergestellt werden, dass die Spalte vom Type AS400Text ist. Den FeldTyp kann man wie folgt erhalten:

    int type = new SequentialFile(new AS400(), path).getRecordFormat().getFieldDescription()
    .getDataType().getInstanceType();

    Die verschiedenen Datentypen sind in AS400DataType definiert



    Viele Grüße und vielen Dank für die Tipps
    Roderich
    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. #19
    rod Besucher/Guest
    Hallo,

    da hast du Recht, jdbc wäre wesentlich einfacher, aber ich verwende dieses Konstrukt nur um die Codepage herauszufinden, und kann dann mit der richtigen Codepage einen InputStream zur Verfügung stellen. Per JDBC komme ich nicht zu einem InputStream.

    Schönen Gruß
    Roderich

  8. #20
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Und ich habe immer noch nicht verstanden, warum ein InputStream nötig ist !
    Haben deine Dateien keine Dezimalfelder ?
    Wie sieht es da mit der Umsetzung aus ?
    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. Konvertierung nach Graphic --> CCSID Problem
    By codierknecht in forum NEWSboard SAP
    Antworten: 32
    Letzter Beitrag: 09-02-18, 13:00
  2. Java und Fehlermeldung jva0122 bei simplen "Hello World"
    By TARASIK in forum IBM i Hauptforum
    Antworten: 21
    Letzter Beitrag: 30-03-11, 13:48
  3. Antworten: 3
    Letzter Beitrag: 06-06-06, 15:57
  4. CCSID ändern
    By schaaf in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 04-05-06, 11:18
  5. CCSID eines Files
    By Binford in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 07-03-06, 08:58

Berechtigungen

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