vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
OVERLAPPED Stuktur 
Autor: quickmic
Datum: 17.02.06 16:30

Hi

Ich suche schon stunden nach einer guten Erklärung, wie man mit der Overlapped-Struktur unzugehen hat.
Mein Testprogramm sieht wie folgt aus:

Private Sub Command6_Click()
 Dim datum As String, zeit As String, akttimedate As Date, filesize As Long, _
   ReadBuffer1() As Byte, ReadBuffer2() As Byte, lBytesRead1 As Long, _
   lBytesRead2 As Long, fReadHandle As Long, fWriteHandle As Long, fSuccess As _
   Long, lBytesWritten As Long, EndPosition As Long, filename As String
    Dim position As Long, tt As OVERLAPPED
 
    position = 5
 
 
    tt.Internal = 0
    tt.InternalHigh = 0
    tt.offset = 0
    tt.OffsetHigh = 0
    tt.hEvent = 0
 
    'Lese 1.Datenteil aus Tempsong
    filesize = FileLen("c:\1.txt")
    ReDim ReadBuffer1(position)
    fReadHandle = CreateFile("c:\1.txt", GENERIC_WRITE Or GENERIC_READ, _
      FILE_SHARE_WRITE, 0, OPEN_ALWAYS, &H80, 0)  'Öffne Tempsong
    fSuccess = ReadFile(fReadHandle, ReadBuffer1(0), position, lBytesRead1, 0)
 
    'Lese 2.Datenteil aus Tempsong
    EndPosition = filesize - position
    ReDim ReadBuffer2(EndPosition)
    fSuccess = ReadFile(fReadHandle, ReadBuffer2(0), EndPosition, lBytesRead2, _
      0)
 
    'Schreibe neuen Tempsong
 
    'fSuccess = SetFilePointer(fReadHandle, 0&, ByVal 0&, FILE_END)
    fSuccess = WriteFile(fReadHandle, ReadBuffer2(0), lBytesRead2, _
      lBytesWritten, tt)
    Call SetEndOfFile(fReadHandle) 'Schneidet File an Position
    Call CloseHandle(fReadHandle) 'Schliesse Tempsong
    'FileMoveBusy(SN) = False
    DoEvents
End Sub
Als Testfile verwende ich ein Text-file mit "123456789" als Inhalt

Nun soll mit der Zeile:
fSuccess = WriteFile(fReadHandle, ReadBuffer2(0), lBytesRead2, lBytesWritten, tt)
das Byte-Array aber nicht an Position 1 auf das Testfile rausgeschrieben werden, sondern an z.b. 5 beginnend.

Wie muss ich nun die OVERLAPPED Stuktur setzen?
Diese Werte sollten noch stimmen:
tt.Internal = 0
tt.InternalHigh = 0

Aber:
tt.offset = 0
tt.OffsetHigh = 0
tt.hEvent = 0
sind mir unklar.

Die beiden Offset sind doch HiWord & LoWord oder? Aber von was?
Kann mich da bitte jemand aufklären, oder bin ich komplett auf dem Holzweg?

mfg
quickmic
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
OVERLAPPED Stuktur811quickmic17.02.06 16:30
Re: OVERLAPPED Stuktur604quickmic17.02.06 16:47
Re: OVERLAPPED Stuktur603quickmic20.02.06 08:28

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel