Mit Hilfe nachfolgender Funktion können Sie ab sofort eine bestimmte Anzahl Zeichen ab einer frei festlegbaren Position innerhalb einer Datei auslesen. ' bestimmte Anzahl Bytes einer Datei auslesen Public Function FileRead(ByVal sFile As String, _ Optional ByVal nStartPos As Long = 1, _ Optional ByVal nBytesToRead As Long = 0) As String Dim F As Integer Dim nFileLen As Long Dim sBuffer As String ' Datei im Binary-Mode öffnen F = FreeFile Open sFile For Binary As #F ' Dateigröße in Bytes nFileLen = LOF(F) ' Falls "BytesToRead" nicht angegeben oder 0, ' gesamten Inhalt ab "StartPos" auslesen If nBytesToRead = 0 Then nBytesToRead = nFileLen ' Falls StartPos < 1, Bytes rückwärts vom ' Dateiende auslesen If nStartPos < 1 Then nStartPos = nFileLen nBytesToRead = -Abs(nBytesToRead) End If ' Falls "StartPos" > Dateigröße und ' "BytesToRead" < 0, Funktion beenden If nStartPos > nFileLen And nBytesToRead < 0 Then Close #F Exit Function End If ' Leseposition ermitteln If nBytesToRead < 1 Then nBytesToRead = Abs(nBytesToRead) nStartPos = nStartPos - nBytesToRead + 1 If nStartPos < 1 Then nBytesToRead = nBytesToRead - Abs(nStartPos) - 1 nStartPos = 1 End If End If If nStartPos + nBytesToRead - 1 > nFileLen Then nBytesToRead = nFileLen - nStartPos + 1 End If ' Inhalt auslesen sBuffer = Space$(nBytesToRead) Seek #F, nStartPos Get #F, , sBuffer ' Datei schließen Close #F FileRead = sBuffer End Function Ein paar Anwendungsbeispiele: 1. Gesamten Inhalt einer Datei auslesen sBuffer = FileRead("d:\test.txt") 2. Nur die ersten 10 Bytes auslesen sBuffer = FileRead("d:\test.txt", 1, 10) 3. 10 Bytes ab Position 120 auslesen sBuffer = FileRead("d:\test.txt", 120, 10) 4. 15 Bytes ab Position 500 rückwärts auslesen (entspricht Bytes 486 bis 500) sBuffer = FileRead("d:\test.txt", 500, -15) 5. Die letzen 20 Bytes einer Datei auslesen sBuffer = FileRead("d:\test.txt", 0, 20) Dieser Tipp wurde bereits 23.827 mal aufgerufen.
Anzeige
![]() ![]() ![]() (einschl. Beispielprojekt!) Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! - nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten - Symbol-Galerie mit mehr als 3.200 Icons im modernen Look Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m. |
sevZIP40 Pro DLL ![]() Zippen und Unzippen wie die Profis! Mit nur wenigen Zeilen Code statten Sie Ihre Anwendungen ab sofort mit schnellen Zip- und Unzip-Funktionen aus. Hierbei lassen sich entweder einzelnen Dateien oder auch gesamte Ordner zippen bzw. entpacken. Tipp des Monats ![]() Manfred Bohn IndexOf für mehrdimensionale Arrays Die generische Funktion "IndexOf" ermittelt das erste Auftreten eines bestimmten Wertes in einem n-dimensionalen Array Access-Tools Vol.1 ![]() Über 400 MByte Inhalt Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB |
||||||||||||||||
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. |