[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Mar 2006
    Beiträge
    16

    Lesen IFS: Fehler CPE3525 Objekt für die Verarbeitung zu gross

    Hallo zusammen,
    ich habe folgendes Problem:

    Beim auslesen des IFS mittels readdir() bricht das Programm bei einem bestimmten grossen Eintrag mit CPE3525 ab.

    Schleife für auslesen:
    eval p_dirent = readdir(dir)
    dow p_dirent <> *NULL
    **
    ** verarbeitung daten
    **
    eval p_dirent = readdir(dir)
    enddo

    beim readdir kann doch kein parameter large_objects gesetzt werden?

    Hat hier jemand eine idee?

    vielen dank !

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Da du nur die 32-Bit-Funktionen verwendest, können Objekte größer 2GB nicht bearbeitet werden.

    Du musst dir die 64-Bit-Funktionen raussuchen.
    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
    Mar 2006
    Beiträge
    16
    gibt es für readdir() auch eine 64 bit funktion, die dann die large objects bearbeiten kann?

    open64() kenne ich....

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.695
    Probiers mal damit:
    readdir_r()--Read Directory Entry
    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

  5. #5
    Registriert seit
    Mar 2006
    Beiträge
    16
    Hallo fuerchau,
    danke für deinen tip:
    readdir_r liefert mir momentan immer den Fehler 3408 retour:

    **
    eval rtc = readdir_r(dir : point64 : point64_3)
    **

    wieso muss ich noch suchen, momentan weiss ich nicht wieso....

  6. #6
    Registriert seit
    Mar 2006
    Beiträge
    16
    Hilfe!
    Ich steig nicht dahinter, wahrscheinlich verstehe ich die Logik vom Readdir_r nicht ganz....was wird hier mit Initialisieren gemeint?

    Parm1 ist der Pointer vom Opendir()

    Parm2, parm 3 ?
    sollten eigentlich die Pointer zur dirent-Struktur sein, oder?

  7. #7
    Registriert seit
    Jul 2011
    Beiträge
    31
    Hallo!

    Ich hab dir mal schnell ein kleines Beispiel erstellt. (Testsystem: V5R3)

    Diverse Aktionen (überprüfen auf *NULL bei Pointern/abfangen von "." und ".." bei OpenDir & ähnliches hab ich absichtlich nicht mit kopiert).

    Code:
     **************************************************************************
     * ReadDir_r - Entry/Result DataStructure                                 *
     **************************************************************************
    D DirEnt          DS                  Based(Ptr_Result)                    
    D   Res01                       16A                                        
    D   FileNoGenId                 10U 0                                      
    D   FileNo                      10U 0                                      
    D   RecLen                      10U 0                                      
    D   Res03                       10I 0                                      
    D   Res04                        6A                                        
    D   Res05                        2A                                        
    D   NlsInfo                     12A                                        
    D     CCSID                     10I 0 Overlay(NlsInfo:1)                   
    D     CtryId                     2A   Overlay(NlsInfo:5)                   
    D     LangId                     3A   Overlay(NlsInfo:7)                   
    D     Res06                      3A   Overlay(NlsInfo:10)                  
    D   FileNameLen                 10U 0                                      
    D   FileName                   640A                                        
    
     **************************************************************************
     * ReadDir_r -  Prototyp                                                  *
     **************************************************************************
    D ReadDir         PR            10I 0 ExtProc('readdir_r')                 
    D   Directory                     *   Value Options(*String)               
    D   Entry                         *                                        
    D   Result                        *                                        
                                                                               
    
    /Free                                               
      Ptr_Dir = OpenDir('/home/test');                   
      DoU (Ptr_Result = *NULL);                         
        RtnCode = ReadDir(Ptr_Dir:Ptr_Entry:Ptr_Result);
      EndDo;                                            
      RtnCode = CloseDir(Ptr_Dir);                      
                                                        
      *InLr = *On;                                      
    /End-Free
    Falls sich ein Fehler eingeschlichen hat, bitte ich um Rückmeldung.

    Lg,
    Sam

    Nachtrag bezüglich Error Code 3408:

    EFAULT 3408 The address used for an argument was not correct. In attempting to use an argument in a call, the system detected an address that is not valid.

  8. #8
    Registriert seit
    Mar 2006
    Beiträge
    16
    Hallo Sam, merci f das Beispiel,

    Der Fehler war anscheinend, dass ich Param 2+3 in den D-bestimmungen mit VALUE angegeben habe.

    Jetzt ist der Fehler weg und ich kann mal damit arbeiten u schauen, ob das mit den Dateien > 2GB klappt.

    Vielen Dank.

Similar Threads

  1. Objekt in IFS vorhanden
    By easchbac in forum NEWSboard Programmierung
    Antworten: 15
    Letzter Beitrag: 17-09-10, 10:48
  2. IFS Fehler
    By THH in forum NEWSboard Programmierung
    Antworten: 4
    Letzter Beitrag: 14-12-07, 08:43
  3. Fehler im SQL bzw. Joblog
    By GraueEminenz in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 10-07-06, 11:58
  4. Fehler im CPY Befehl
    By NEich in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 10-05-06, 08:42
  5. Fehler bei Verarbeitung von QSZPAVL
    By Brownie in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 28-07-04, 10:56

Berechtigungen

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