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

    CPYTOPCD und CRLF beim letzten Satz in TXT-File

    Hallo Kollegen,

    habe schon viele Postings zu diesem Thema gelesen und auch mehrere Portier-Befehle ausprobiert. CPYTOPCD CPYTOIMPF und XTOPC von SSS-Tools.

    Ergebnis ist immer beim letzten Satz, daß Programm einen Zeilenvorschub erzeugt und einen
    Leersatz ausgibt. Hab inzwischen den Eindruck, daß es ein Problem des Releases ist. Wir haben V5R4. Am Notepad++ kann es eigentlich nicht liegen. Fakt ist, unser Partner kann die Dateien nicht einlesen, weil halt Leer-Satz.

    Hab auch verschiedene Postings gelesen mit Linux-Befehlen, ist aber nicht so meine Welt.



    Bei einem Softwarehaus, wo ich schon angerufen habe, gibts keine Probleme. Die verwenden da auch CPYTOPCD und es funktioniert.

    Jemand eine Anregung ? Bin schon fix und fertig, weil sich wochenlang nix bewegt und ich nur ab und zu mal Zeit für die Baustelle hab.

    Gruß

    Roger

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Ich denke da hast du keine Chance, wenn du es nicht selber programmierst.
    Per Definition wird halt jeder Satz mit CRLF abgeschlossen.
    Beim letzten Satz ist die Datei danach zu Ende und es gibt keine Leerzeile.
    Auch im Notepad hast du zwar den Cursor unter der letzten Zeile, aber da gibts keine Zeichen mehr.
    Somit ist das Format vollkommen in Ordnung.
    Euer Partner hat da halt ein Problem, da er sich nicht an die Definition hält und eine Leerzeile annimmt.
    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
    Jan 2012
    Beiträge
    1.102
    Vielleicht musst du ja gar nicht die ganze Dateierzeugung selbst programmieren. Es würde ja reichen, die per CPYTOPCS erzeugte Datei (Streamfile) zu modifizieren. Also die letzten beiden Steuerzeichen zu eliminieren. Das kann man per RPG machen (mit den Streamfile-APIs) oder mit eine PC-Programmiersprache.

    Dieter

  4. #4
    Registriert seit
    Aug 2006
    Beiträge
    2.072
    Hast Du dir das mit einem Hexeditor angesehen?

    GG

  5. #5
    Registriert seit
    Feb 2008
    Beiträge
    8
    Nein. Nie davon gehört :-)

  6. #6
    Registriert seit
    Feb 2008
    Beiträge
    8
    Aber warscheinlich nicht mit V5R4 ;-)

  7. #7
    Registriert seit
    May 2002
    Beiträge
    1.121
    Im Notepad++ kann man sich die Steuerzeichen anzeigen lassen.
    Ansicht-->Nicht druckbare Zeichen --> Alle anzeigen.
    Dann wirst du sehen (wie Baldur schon sagte) das in der letzten Zeile ein CRLF steht und der Cursor zwar auf der nächsten Zeile, dort aber nichts ist.
    Das ist aber eingentlich auch die gänige Praxis....

    Gruß
    Ronald

  8. #8
    Registriert seit
    Dec 2004
    Beiträge
    203
    Hi,
    oder ihr einigt euch mit dem externen auf einen Endesatz in dem z. B. in einem vorher definierten Feld (Bereich) ein entsprechend abgestimmter Wert (z. B. Kundennummer = 999999) steht. Dann ist das Ende erreicht, der Satz wird nicht verarbeitet und gut ist.
    Gruß,
    Ralf

  9. #9
    Registriert seit
    Mar 2002
    Beiträge
    5.286
    Zitat Zitat von RWehrwein Beitrag anzeigen
    Aber warscheinlich nicht mit V5R4 ;-)
    ... auch da geht DSPF bzw. WRKLNK und dann anzeigen -. danach F10

    Nur mal zur Info: hinter einem Leersatz kommt nochmal eine Satzendekennung und wenn da am Schluss bei euch noch eine über wäre, dann fehlte euch ein PTF. Was habt ihr denn als Satzende ausgemacht?
    CR oder LF oder CRLF oder noch was anderes?

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

  10. #10
    Registriert seit
    Feb 2008
    Beiträge
    8
    Notepad zeigt bei Anzeige nicht druckbare Zeichen bei jedem Satz CRLF

    und bei dem allerletzten Satz ein SUB in einem Leersatz

    Langsam werd ich auch das Gefühl nicht los, dass ein PTF fehlt.

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Lade mal das Programm "Notepad++", wie der Kollege oben schon sagte, kannst du nur damit Steuerzeichen sichtbar machen.
    Das Notepad zeigt CRLF normalerweise gar nicht an sondern macht dann einen Zeilenumbruch.
    Aus historischen Gründen (Unix/Linux/DOS) gibt es ggf. nach dem letzten Satz noch den Code x'04'.
    Dieser muss als EOF interpretiert werden (kommt aus der alten DFÜ=Datenfernübertragung).
    Normalerweise funktioniert dies auch, da "klassische" System den Code EOF (STRG+D) verstehen.
    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

  12. #12
    Registriert seit
    Feb 2008
    Beiträge
    8
    Habs rausgefunden.

    CPYTOSTMF FROMMBR('/qsys.lib/BIBLIOTHEKNAME.lib/DATEINAME.file/DATEINAME.mbr')
    TOSTMF('/Home/ORDNER/DATEINAME.TXT')
    STMFOPT(*REPLACE)
    STMFCODPAG(*PCASCII)
    ENDLINFMT(*CRLF)

    Ist halt blöd, weil es inzwischen so viele Transfer-Befehle(auch alte Befehle) gibt.
    In diesem Fall geht der Transfer ins IFS als Text-Datei.

Similar Threads

  1. Ersteller / letzten Änderer einer Source finden.
    By dholtmann in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 10-06-16, 17:20
  2. Letzten Wert Identitätsspalte zurückliefern per Stored Procedure
    By Gutmann in forum NEWSboard Programmierung
    Antworten: 5
    Letzter Beitrag: 02-12-15, 10:38
  3. MD5-Hash Code auf Datenbank-File oder IFS-File
    By CaddyMajor in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 07-04-15, 13:07
  4. Falsche Dateierstellungszeit beim CPYTOPCD
    By Der Gute in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 04-07-02, 13:47
  5. Zeilenvorschub bei CPYTOPCD in der letzten Zeile
    By hilmar in forum IBM i Hauptforum
    Antworten: 10
    Letzter Beitrag: 09-01-02, 17:53

Berechtigungen

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