Datei Splitter

  • VB.NET

Es gibt 7 Antworten in diesem Thema. Der letzte Beitrag () ist von daniel303.

    Datei Splitter

    Guten Tag,
    ich möchte eine Datei in Visual Basic Splitten und brauche dazu ein wenig Hilfe.
    Ich bin bereits soweit das ich einen FileDialog habe und eine Textbox in die der Pfad kommt
    so nun habe ich noch eine Box in die Byte Zahl rein soll, damit ist gemeint, dass eine (z.B. eine 3 Mb große Mp3) in
    1000 Bytes, also 3 Dateien (mp3.001...) geteilt werden soll. Außerdem habe ich eine Progress bar, die den aktuellen Fortschritt anzeigen soll.
    Nur weiß ich eben nicht, wie ich das umsetzen soll :pinch:

    Danke für evtl. hilfe :)
    Also hast du dir die Benutzeroberfläche schonmal schön zusammengeklickt, hast aber keine Ahnung, wie es jetzt weiter gehen soll?

    Dazu siehst du dir am besten die Klassen System.IO.BinaryWriter und System.IO.BinaryReader an.
    Damit kannst du die Dateien einfach auslesen, splitten und wieder schreiben.

    Nein, kompletten Code gibt's keinen.
    Entschuldige aber ich glaube das ist dann doch etwas zu hoch für mich.
    Gibt es nicht eine möglich, einfach zu sagen na ja z.B.:

    My.Computer.Split ("C:\Slittemich.exe") /1000 'also in 1000 Bytes

    Das ist etwas kurz, klar aber ich meine so etwas in die Richtung.

    Daniel303
    Ok danke erstmal dafür!
    Ich habe jetzt vor, um das ganze noch etwas besser zu verstehen, einen Zwischenschritt einzubauen.
    Ich will also, das die Bytes einer Textdatei in einen String umgewandelt werden und in eine Textbox angezeigt werden.
    Das ist mein Code:

    Quellcode

    1. Dim fi As New FileInfo(TextBox1.Text)
    2. Dim fs As FileStream = fi.OpenRead()
    3. 'Read 100 bytes into an array from the specified file.
    4. Dim nBytes As Integer = 100
    5. Dim ByteArray(nBytes) As Byte
    6. Dim nBytesRead As Integer = fs.Read(ByteArray, 0, nBytes)
    7. Dim nByte As Byte() = New Byte(9) {}
    8. For i As Integer = 0 To ByteArray.Count - 1
    9. Next
    10. TextBox3.Text = "{0} bytes have been read from the specified file."(nBytesRead.ToString())


    Fehler: Der Index war außerhalb des Arraybereichs

    Edit:
    Gut habe es jetzt geschafft, die eine Textdatei einzulesen und wieder abzuspeichern.
    Jetzt brauche ich nur etwas womit ich bestimmen kann, wie viele Bytes eine Datei haben soll. Gibt es dazu einen FileStream Parameter?
    Meine Datei wird so erstellt:

    VB.NET-Quellcode

    1. Using fsNew As FileStream = New FileStream(TextBox1.Text + "kopie", FileMode.Create, FileAccess.Write)
    2. fsNew.Write(bytes, 0, numBytesToRead)

    Daniel303

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „daniel303“ ()

    Gut das oben genannte Problem ist denke ich noch nicht ganz gelöst.
    Zu einem anderen Problem:
    Habe jetzt ein 2 Zeiler, der bestimmt, dass hinter der Datei, entsprechend .001 .002 ....etz. rangehängt wird. Nun brauche ich aber praktisch die
    Source Datei, die ich Splitten möchte (für den namen der .001 ...). Muss ich diese von dem vorher angegeben Pfad (textbox) rausfiltern oder kann ich die auch irgendwie "auslesen" z.B. mit dem FileStream in dem sich die Datei dann ja noch befindet?!
    Daniel303