Datei teilweise einlesen
lima-city → Forum → Programmiersprachen → Basic
array
art
bearbeiten
beispiel
bestimmten position
code
datei
datum
einlesen
folgende funktion
funktion
gesamten datei
gesuchten informationen
kleines array
not
position
problem
stehen
string
zeichen
-
Hi Leute,
ich will eine Datei einlesen, aber teilweise in ein Array, na gut das ist ja eigentlich nicht wichtig - wie*gg*.
Also mein Problem:
Ich will eine Datei TEILWEISE immer in ein kleines Array einlesen (aber nur TEILWEISE). Mein Problem ist nun, dass ich mit VB.Net z.B. folgende Funktion zur Verfügung stehen habe:
Dim CompleteFileArray As Array = My.Computer.FileSystem.ReadAllBytes(DATEIPFAD)
Nun möchte ich aber nicht alle Bytes auf einmal, sondern nur von einer bestimmten Position bis zu einer best. Position einlesen.
Kennt jemand von euch eine Funktion dafür.
PS: Ich habs so probiert:
Dim FileStream as FileStream = File.OpenRead(DATEIPFAD) Dim PartFileArray as Array FileStream.Read(PartFileArray,52654,94578) \'Die beiden Zahlen sind zufällig gewählt
So funktionierts aber nicht richtig.
Könnt ihr mir evtl. helfen?
Vielen Dank im Voraus -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Hi,
hier ein Beispiel, wie eine Datei Zeichen für Zeichen einzeln gelesen wird.
In diesem Fall wird die Datei solange ausgelesen, bis kein Zeichen mir vorhanden ist.
(While Not sr.Peek < 0)
Public Sub file_read() Dim file_name As String = \"I:\\\\file.txt\" If Not System.IO.File.Exists(file_name) Then MsgBox(file_name & \" does not exist.\") Else Using sr As System.IO.StreamReader = System.IO.File.OpenText(file_name) Dim input As String While Not sr.Peek < 0 input &= Chr(sr.Read) End While sr.Close() MsgBox(\"The end of the stream has been reached.\") MsgBox(input) End Using End If End Sub
Gilt mal wieder nur für VB .Net
cbhp ;)
Beitrag geändert: 28.1.2008 0:42:53 von cbhp
Beitrag geändert: 28.1.2008 0:43:24 von cbhp -
Das ist auch ne gute Variante, thx, aber das dauert bei Dateien >1GB viel zu lange, gibts da noch ne andere Lösung?
-
In dem Beispiel wurden die Daten zeichenweise eingelesen. Man kann die Daten aber auch byteweise einlesen, das funktioniert so ähnlich, wird aber auch so lange dauern.
Was sind denn das für Dateien, die so groß sind? Vielleicht gibt es dann eine Alternative. -
Egal welche...
-
Weißt du, an welcher Position in der Datei deine gesuchten Informationen stehen (Byte-Position),
stehen die Daten eher am Ende oder am Anfang? Brauchst du nur wissen, ob eine bestimmte Zeichenfolge vorkommt und reicht somit eine Antwort mit True oder False? Musst du die Datei auch bearbeiten? -
Nun ja, ich möchte die Bytes der gesamten Datei einlesen...beispielsweise für eine Art Kompressionsverfahren...
-
Wie wär\'s mit einem StreamReader?
Dim sr As New IO.StreamReader(\"C:\\Test.txt\" )
MsgBox(sr.ReadToEnd)
sr.Close()
Hier stehen dir auch weitere Funktionen zur Verfügung:
sr.Read
sr.ReadBlock
sr.ReadLine
sr.ReadToEnd
Mit .ToCharArray() kannst du jede String-Zeichenfolge in ein Char-Array umwandeln.
Beitrag geändert: 29.1.2008 17:39:36 von cbhp -
OK, ich habe mein Problem gelöst...trotzdem thx für eure mithilfe
Beitrag geändert: 11.2.2008 0:24:31 von lccserver -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage