[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Feb 2010
    Beiträge
    3

    Question IFS - Attribute von Dateien auslesen

    Hallo zusammen,

    ich bin auf der Suche nach einer Möglichkeit, Attribute einer Datei im IFS in eine Variable auszulesen. Wichtig wäre mir das Erstelldatum der Datei.

    Ich habe mir mittels QNTC ein Windowsverzeichnis gemappt. Die Dateinamen lesen ich per RPG aus dem Verzeichnis aus. Zusätzlich zu dem Dateinamen bräuchte ich, wie schon gesagt, das Erstelldatum der Datei.

    Vielen Dank im vorraus...!!

    Marius

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.241
    Da gibts nur die C-Funktionen stat() oder Qp0lGetAttr()--Get Attributes

    Zeitangaben werden immer in Sekunden seit dem 1.1.1970 00:00:00 Uhr GMT gespeichert.
    Um also das Datum zu erhalten ist:

    d FileDate Z

    FileDate = %date('1970-01-01') + %seconds(Zeitwert);

    Hinzuzurechnen ist dann noch deine aktuelle Zeitzone QUTCOFFSET.

    Einfache gehts ggf. mit der QSH und Dateiausgabe:
    cd /MyPath;
    ls -lT >/qsys.lib/mylib.lib/myfile.file/myfile.mbr
    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
    Nov 2006
    Beiträge
    102
    stat() ist einfacher zu handeln, liefert aber kein Erstellungsdatum.
    Dann bleibt nur Qp0lGetAttr(), das relativ umfangreich und komplex ist. Ich habe einmal ein Programm geschrieben, das ganze Verzeichnisse oder Verzeichnisstrukturen in zwei Ausgabedateien ausliest. (Eine für die Attribute eines Objekts, die zweite mit einem oder mehreren Berechtigungssätzen eines Objekts). Der Zugriff auf einzelne Objekte war in diesem Programm nicht vorgesehen, aber es wäre vielleicht eine Basis, um darauf weiterzuarbeiten. Auf Wunsch kann ich es Dir gern zukommen lassen. Ist halt relativ umfangreich, weil alle verfügbaren Attribute ausgelesen werden.
    Zweiter Vorschlag: Für die letzte Ausgabe von NEWSolutions (Dez./Jan.) habe ich einen Artikel von Scott Klement übersetzt, in dem er eine selbstgeschriebene SQL-Funktion (UDTF) vorstellt, die IFS-Attribute liefert. Diese UDTF ist super, weil sie sehr flexibel einsetzbar ist, arbeitet aber in der bisherigen Version ebenfalls mit stat() und liefert damit kein Erstellungsdatum. Jetzt gibt es eine neue Version, die auf Qp0iGetAttr basiert und damit alle verfügbaren Informationen liefert. Ich bearbeite den Update für das nächste Heft und stelle dann auch den überarbeiteten Code online. Vielleicht kannst Du Dir ja das bisherige Tool mal ansehen, ob es für Deine Zwecke geeignet wäre, und falls ja, mir Bescheid geben, dann beeile ich mich mit dem Code.
    Gruß
    M. Spateneder

  4. #4
    Registriert seit
    Feb 2010
    Beiträge
    3
    Vorab erstmal danke für die Antworten!

    @ Fuerchau

    Ich habe stat() ausprobiert. Aber wie Spateneder schon gesagt hat, gibt es leider kein Erstellungsdatum zu dem Objekt.
    Die QSH-Lösung wäre nicht schlecht. Aber leider weis ich nicht wie ich das Ergebnis von QSH in eine Variable in RPG oder in eine Datei ausgebe.

    @ Spateneder

    Ich hab mir das Qp0lGetAttr() API angeschaut. Es ist wirklich umfangreich.
    Ich gucke mal ob wir die besagte Ausgabe der NEWSolutions noch haben. Wenn nicht würde ich mich noch mal melden.

    Danke!

    Marius

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    @Dateiausgabe: ??? steht doch im posting von Baldur drin! Einfach nur abtippen und ausprobieren!!! Die Ausgabeumleitung ">" ist dein Freund.

    D*B

    , der sich manchmal fragt, warum sich mancher Antworter mehr Mühe beim schreiben als mancher Frager beim lesen gibt


    Zitat Zitat von Marius.Ko Beitrag anzeigen
    Vorab erstmal danke für die Antworten!

    @ Fuerchau

    Ich habe stat() ausprobiert. Aber wie Spateneder schon gesagt hat, gibt es leider kein Erstellungsdatum zu dem Objekt.
    Die QSH-Lösung wäre nicht schlecht. Aber leider weis ich nicht wie ich das Ergebnis von QSH in eine Variable in RPG oder in eine Datei ausgebe.

    @ Spateneder

    Ich hab mir das Qp0lGetAttr() API angeschaut. Es ist wirklich umfangreich.
    Ich gucke mal ob wir die besagte Ausgabe der NEWSolutions noch haben. Wenn nicht würde ich mich noch mal melden.

    Danke!

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

  6. #6
    Registriert seit
    Feb 2010
    Beiträge
    3

    Talking

    Ohh,
    danke für den Hinweis! Das ">" hab ich nicht gesehen.
    Ich habe hinter ls -lT die Datei im IFS angegeben. Ich werde es gleich mal versuchen!

Similar Threads

  1. Dateien aus dem IFS löschen
    By Bobou in forum IBM i Hauptforum
    Antworten: 14
    Letzter Beitrag: 16-01-07, 10:26
  2. Dateien per FTP von IFS auf der AS400 holen
    By kroehn in forum NEWSboard Windows
    Antworten: 5
    Letzter Beitrag: 08-11-06, 19:36
  3. FTP aus IFS mit kaputten Dateien
    By BeRe in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 21-08-06, 10:17
  4. Dateien in QDLS bzw. IFS über Explorer löschen
    By dino in forum IBM i Hauptforum
    Antworten: 6
    Letzter Beitrag: 22-05-06, 18:59
  5. Zugriff auf NSF Dateien im IFS
    By Stephan/400 in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 03-05-06, 07:10

Berechtigungen

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