[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    int _stat( const char *path, struct stat *buffer );
    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

  2. #2
    Registriert seit
    Jul 2002
    Beiträge
    151
    Hallo Fürchau,

    c if stat('/QDLS/ORDNER/test.txt': p_statds) < 0

    fehlte mir noch

    Gruss Holger

  3. #3
    Registriert seit
    Dec 2002
    Beiträge
    301
    Dann hast Du ja die erste Hürde gemeistert. Wenn Du am Datum interessiert bist, dann reicht stat() allerdings nicht aus. Die Felder st_atime, st_mtime, st_ctime enthalten Werte, die mit der Funktion localtime_r() erst konvertiert werden müssen. Und natürlich will auch diese Funktion wieder eine Datenstruktur. Alles in allem ist das Programmieren mit den UNIX-Type API`s in RPG sehr nervig, da die Prototypendefinitionen und die Datenstrukturdefinitionen zumeist selbst erstellt werden müssen. In C sind diese alle bereits da und müssen nur noch mit einem #INCLUDE aufgenommen werden.
    Frank Hildebrandt

  4. #4
    Registriert seit
    Dec 2002
    Beiträge
    301
    Hier ist das Teil in RPG.
    PHP-Code:
    h DFTACTGRP(*NOBNDDIR('QC2LE')           
     * 
    'stat' Datenstruktur                  
    d stat_ds         DS                  Align
    d st_mode                       10U 0      
    d st_ino                        10U 0      
    d st_nlink                       5U 0      
    d st_uid                        10U 0      
    d st_gid                        10U 0      
    d st_size                       10I 0      
    d st_atime                      10I 0      
    d st_mtime                      10I 0      
    d st_ctime                      10I 0      
    d st_dev                        10U 0      
    d st_blksize                    10U 0      
    d st_alcsize                    10U 0      
    d st_objtype                    11A        
    d st_codepag                     5U 0      
    d st_resv11                     66A        
     
    'tm' Datenstruktur                    
    d tm_ds           DS                  Align
    d tm_sec                        10I 0      
    d tm_min                        10I 0      
    d tm_hour                       10I 0      
    d tm_mday                       10I 0                                                                
    d tm_mon                        10I 0                                                                
    d tm_year                       10I 0                                                                
    d tm_wday                       10I 0                                                                
    d tm_yday                       10I 0                                                                
    d tm_isdst                      10I 0                                                                
     
    'stat' UNIX-Type API                                                                            
    d stat            PR            10I 0 ExtProc
    ('stat')                                                
    d                                 *   Value                                                          
    d                                 
    *   Value                                                          
     
    'localtime_r' ILE-for AS/400 Run-Time-Library                                                 
    d localtime_r     PR            10I 0 ExtProc
    ('localtime_r')                                         
    d                                 *   Value                                                          
    d                                 
    *   Value                                                          
     
    Weitere Felddeklarationen                                                                         
    d stmf            S            256A                                        Datenstromdatei           
    d adate           S              8S 0                                      Datum des letzten Zugriffs
    d mdate           S              8S 0                                      Datum der Datenänderung   
    d cdate           S              8S 0                                      Datum der Attributänderung
     
    Datenstromdatei füllen                                                                            
    c                   
    Eval      StmF =                                                                 
    c                              '/QDLS/ORDNER/test.txt'                                       
     
    String mit Null terminieren                                                                       
    c                   
    Eval      StmF = %Trim(StmF) + X'00'                                             
     
    Felder initialisieren                                       
    c                   
    Eval      adate = *Zero                    
    c                   
    Eval      mdate = *Zero                    
    c                   
    Eval      cdate = *Zero                    
     
    Funktion 'stat' aufrufen                                    
    c                   
    If        stat(%Addr(StmF) :               
    c                                  %Addr(stat_ds))             
    c                             <> - 1                           
     
    Datum des letzten Zugriffs                                  
    c                   CallP     localtime_r
    (%Addr(st_atime) :    
    c                                         %Addr(tm_ds))        
    c                   Eval      adate tm_mday +                
    c                                    ((tm_mon 1) * 100) +    
    c                                    ((tm_year 1900) * 10000)
     * 
    Datum der Datenänderung                                     
    c                   CallP     localtime_r
    (%Addr(st_mtime) :    
    c                                         %Addr(tm_ds))        
    c                   Eval      mdate tm_mday +                
    c                                    ((tm_mon 1) * 100) +    
    c                                    ((tm_year 1900) * 10000)
     * 
    Datum der Attributänderung                                  
    c                   CallP     localtime_r
    (%Addr(st_ctime) :    
    c                                         %Addr(tm_ds))        
    c                   Eval      cdate tm_mday +                
    c                                    ((tm_mon 1) * 100) +    
    c                                    ((tm_year 1900) * 10000)
    c                   EndIf                                      
     * 
    Programmende                                                
    c                   
    Eval      *INLR = *On 
    Frank Hildebrandt

Similar Threads

  1. Frage zum Befehl STRPCCMD
    By stoerfang in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 24-01-13, 10:27
  2. Teildatei mit SQL anzeigen
    By Rico in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 06-07-06, 16:25
  3. SQL Befehl?
    By mikex01 in forum IBM i Hauptforum
    Antworten: 9
    Letzter Beitrag: 01-06-06, 11:55
  4. Eingabefelder im Command reverse anzeigen
    By becama in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 12-05-06, 19:46
  5. Fehler im CPY Befehl
    By NEich in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 10-05-06, 08:42

Berechtigungen

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