[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Apr 2016
    Beiträge
    15

    Kopieren IFS-Daten mit QSHELL

    Hallo,
    vielleicht kann mir jemand hier einen Tipp geben.

    Aufgabe:
    Daten aus einem IFS-Verzeichnis in ein anderes IFS-Verzeichnis kopieren (mit *REPLACE)

    CPYF ist leider nicht möglich, da der IFS-Dateinname ASCII Zeichen enthält.
    Die Dateinamen die im IFS-Verzeichnis stehen sind auch unterschiedlich lang.
    Ohne diese ASCII Zeichen im Dateinamen würde es natürlich mit CPYF gehen.

    Gibt es einen QSHELL Befehl mit dem ich den Inhalt der Ordner kopieren kann, und der sich nicht an Dateinamen mit ASCII Zeichen stört.
    Ein Beispiel wäre auch schön.

    Besten Dank
    Peter

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Das Problem mit dem ASCII-Zeichen verstehe ich nicht.
    D.h., dass ein Zeichen im Namen vorkommt, dass nicht in EBCDIC übersetzbar ist?
    Für IFS-Objekte gibt es den nativen CPY-Befehl.
    In der Qshell heißt der Befehl z.B. "cp file1 [file2] ... ZielVerzeichnis".
    Man kann auch mittels "find ... -exec {cp ...}" erst suchen, dann finden. u.v.m.
    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
    Apr 2016
    Beiträge
    15
    Ja es sind nicht übersetzbare Zeichen im Dateinamen
    Hier ein Auszug aus dem DEBUG
    [IMG]file:///C:/DOKUME~1/Pflaum/LOKALE~1/Temp/1/XPgrpwise/5989C0ADFrankfurtFRA-PO10013531651170EE1/IMAGE_1.png[/IMG][IMG]file:///C:/DOKUME~1/Pflaum/LOKALE~1/Temp/1/XPgrpwise/5989C0ADFrankfurtFRA-PO10013531651170EE1/IMAGE_1.png[/IMG]Click image for larger version. 

Name:	IMAGE_1.png 
Views:	343 
Size:	17,1 KB 
ID:	396
    Dann probiere ich es mal mit dem CP Befehl, oder bekomme ich diese Zeichen anderweitig weg.

  4. #4
    Registriert seit
    Apr 2016
    Beiträge
    15
    Da ich nicht so fit in QSH Verarbeitung bin,
    wie lautet den der CP Befehl wenn ich den gesamten Inhalt aus Verzeichnis X in das Verzeichnis Y kopieren möchte.
    cp /X /Y
    oder
    cp X/* Y/*

  5. #5
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Das das Bild irgendwie aus dem Debugger stammt, vermute ich eher einen Programmfehler bei der Variablendeklaration. Der weiße Block deutet auf Schrottdaten hin. Das deutet auf falsche Längeninformation bzw. inkorrekte Verarbeitung der Längen hin.
    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 2016
    Beiträge
    15
    Der Dateiname wird aus dem IFS Ausgelesen und steht dann in einem 256 Stellen Feld
    Erst kommt der Name XXXXXXX111111111 dann kommen einige Stellen mit NULL Werten (HEX 00) und dann erst *BLANKS (Hex 40).

    Gibt es auch die Möglichkeit mit %SCAN oider %CHECK NULL Werte abzufragen bzw. HEX-Werte ??

  7. #7
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Da ich nicht sehe, wie du den Namen der Datei ermittelst gehe ich von einem API aus.
    Dieses gibt dir i.d.R. auch die Längeninformation mit. Du brauchst also nur per %subst() auf den Namen zugreifen und eliminierst den Schrott.
    Per %scan() kann man natürlich auch nach X'00' bzw. *LOVAL suchen um dann den %subst() zu machen.
    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 2016
    Beiträge
    15
    ich habe die NULL Werte (X'00') entfernt, jetzt funktioniert auch der "normale" CPY Befehl.
    Danke für die Hilfe

  9. #9
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Trotzdem würde ich gerne wissen, welche API's du bei der Ermittlung der IFS-Namen verwendest.
    Kannst du das noch mitteilen?
    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
    Apr 2016
    Beiträge
    15
    na klar,
    von Scott Klement Working with the IFS in RPG IV
    OpenDir, ReadDir, CloseDir usw.

  11. #11
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Dann hast du ja auch die Antwort.
    Der ermittelte Name endet immer mit einem X'00', somit kannst du nur per %subst() den Namen extrahieren.
    Das sollte aber bei Scott auch so ersichtlich sein.
    Es gibt übrigens auch die Funktion %str(), die dir diese Problematik aber abnimmt.
    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. QShell im Batch
    By malzusrex in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 14-04-16, 13:28
  2. Unterordner auslesen OHNE QShell
    By NVNM in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 24-11-15, 08:06
  3. QShell: id -G <username>
    By hxiak in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 29-09-14, 13:55
  4. Qshell Umleitung find mit -exec in eine PF
    By hxiak in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 15-09-14, 18:15
  5. Daten kopieren und manipulieren
    By Fuerchau in forum NEWSboard Server Software
    Antworten: 2
    Letzter Beitrag: 05-04-01, 00:35

Tags for this Thread

Berechtigungen

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