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.586 mal aufgerufen. Voriger Tipp | Zufälliger Tipp | Nächster Tipp
Anzeige
Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv Vol.6 (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. |
vb@rchiv CD Vol.6 Geballtes Wissen aus mehr als 8 Jahren vb@rchiv! Online-Update-Funktion Entwickler-Vollversionen u.v.m. Tipp des Monats Oktober 2024 Heinz Prelle Firewall-Status unter WinXP/Vista prüfen Das Beispiel prüft, ob die Firewall unter Windows XP/Vista eingeschaltet ist oder nicht. Zudem wird eine Abfrage durchgeführt ob es sich bei dem zugrundeliegenden Betriebssystem um Windows XP/Vista handelt oder nicht. Neu! sevDTA 3.0 Pro SEPA mit Kontonummernprüfung Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. |
||||||||||||||||
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. |