kostenloser Webspace werbefrei: lima-city


Datei teilweise einlesen

lima-cityForumProgrammiersprachenBasic

  1. Autor dieses Themas

    lccserver

    Kostenloser Webspace von lccserver

    lccserver hat kostenlosen Webspace.

    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
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    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
  4. Autor dieses Themas

    lccserver

    Kostenloser Webspace von lccserver

    lccserver hat kostenlosen Webspace.

    Das ist auch ne gute Variante, thx, aber das dauert bei Dateien >1GB viel zu lange, gibts da noch ne andere Lösung?
  5. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    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.
  6. Autor dieses Themas

    lccserver

    Kostenloser Webspace von lccserver

    lccserver hat kostenlosen Webspace.

    Egal welche...
  7. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    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?
  8. Autor dieses Themas

    lccserver

    Kostenloser Webspace von lccserver

    lccserver hat kostenlosen Webspace.

    Nun ja, ich möchte die Bytes der gesamten Datei einlesen...beispielsweise für eine Art Kompressionsverfahren...
  9. cbhp

    Co-Admin Kostenloser Webspace von cbhp

    cbhp hat kostenlosen Webspace.

    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
  10. Autor dieses Themas

    lccserver

    Kostenloser Webspace von lccserver

    lccserver hat kostenlosen Webspace.

    OK, ich habe mein Problem gelöst...trotzdem thx für eure mithilfe

    Beitrag geändert: 11.2.2008 0:24:31 von lccserver
  11. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!