-
READFILE der kernel32.dll funktioniert nicht
So guten Tag erst mal,
habe ein Problem in VARPG.
Und zwar will ich aus einer txt Datei, die auf meiner Festplatte liegt den Inhalt auslesen und dann in ein Mehrzeiliges Eingabefeld laden.
Dazu benutze ich APIs aus der kernel32.dll.
Das Problem ist nun, daß das "CreateFile" und das "CloseFile" funktioniert, nur das "ReadFile" funktioniert nicht.
Im Debugger sieht das folgerndermaßen aus:
Nach "CreateFile" - "BRC" = 272
Nach "GetLastError" - "Error" = 0
Nach "ReadFile" - "RET2" = 0 ---> wenns funzt müsste es 1 sein
Nach "GetLastError" - "Error" = 6 ---> heisst das der Handle falsch ist
und "OVERLAP" ist 259 ---> warum auch immer
Nach "CloseFile" - "RET3" = 1 ---> hat also funktioniert
Was ich jetzt nicht verstehe ist, das er den Handle beim "ReadFile" nicht annehmen will, direkt danach den gleichen Handle beim "CloseFile" aber akzeptiert.
Das gleiche Problem habe ich wenn ich einen Com-Port öffne, da funzt auch alles, sogar ein "WriteFile", nur das "ReadFile" nicht.
Das komische ist auch, das beides schon mal so funktioniert hat. Aber als ich dann mein Programm erweitert habe, mit Sachen die eigentlich nichts damit zu tun haben, hat es auf einmal nicht mehr funktioniert.
Kann es was geben, was dem ins Gehege kommt, obwohl es eigentlich nichts damit zu tun hat?!?
Hier noch Quellcode-Auszüge (wollte nicht allen reinpacken, da das Programm knappe 4000 Zeilen hat):
PHP-Code:
D CRTFILE PR 10U 0 ExtProc('CreateFileA') D DLL('Kernel32.dll') D Linkage(*StdCall) D * VALUE OPTIONS(*STRING) D 10I 0 Value D 10I 0 Value D $SEC LIKE(secattr) D 10I 0 Value D 10I 0 Value D 10I 0 Value D GETLASTERROR PR 10U 0 EXTProc('GetLastError') D DLL('Kernel32.dll') D Linkage(*StdCall) D READFILE PR 10U 0 ExtProc('ReadFile') D DLL('Kernel32.dll') D Linkage(*StdCall) D 10I 0 Value D * VALUE OPTIONS(*STRING) D 10I 0 Value D $WRITE LIKE(WRITE) D $OVER LIKE(OVERLAP) D CLOSEFILE PR 10U 0 ExtProc('CloseHandle') D DLL('Kernel32.dll') D Linkage(*StdCall) D 10I 0 Value D secattr DS D LENGTH 10I 0 INZ(80) D SECDESC 10I 0 INZ(0) D BOOL 10I 0 INZ(0) D name S 10A D access S 10U 0 INZ(3221225472) D share S 10U 0 INZ(0) D create S 10I 0 INZ(3) D attr S 10U 0 INZ(128) D template S 10I 0 INZ(0) DBRC S 10U 0 DRET S 10U 0 DRET2 S 10U 0 DRET3 S 10U 0 DRET4 S 10U 0 DWRITE S 10U 0 DOVERLAP S 10U 0 DENT1 S 10A DENT2 S 18A DENT3 S 350A DENT4 S 18A DENT5 S 2000A DENTERR S 80A DaENT1 S * inz(%addr(ENT1)) DaENT2 S * inz(%addr(ENT2)) DaENT3 S * inz(%addr(ENT3)) DaENT4 S * inz(%addr(ENT4)) DaENT5 S * inz(%addr(ENT5)) DaENTERR S * inz(%addr(ENTERR)
PHP-Code:
EVAL ENT4 = 'c:\rdc\hilfe_1.txt' + X'00' C* C EVAL BRC = CRTFILE(aENT4:ACCESS:share: C secattr:create:attr:template) C* C EVAL error = getlasterror C* C EVAL length = 2000 C EVAL RET2 = READFILE(BRC:aENT5:Length:WRITE C :OVERLAP) C EVAL error = getlasterror C* C EVAL RET3 = Closefile(brc)
Ich hoffe ihr könnt mir weiterhelfen, weil es das letzte ist, was der Vollendung des Programms im Wege steht.
Schon mal vielen Dank für eure Mühen und allen ein schönes WE!
Mfg KAMPI
Similar Threads
-
By remo2010 in forum IBM i Hauptforum
Antworten: 2
Letzter Beitrag: 23-11-06, 13:31
-
By andy w in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 06-11-06, 10:02
-
By hteufl in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 21-08-06, 13:12
-
By ratinger in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 30-06-06, 10:39
-
By steven_r in forum NEWSboard Programmierung
Antworten: 2
Letzter Beitrag: 16-05-06, 07:59
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks