.txt aufteilen

  • VBScript

Es gibt 12 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    .txt aufteilen

    Hallo Zusammen,

    ich habe Folgendes Problem, ich habe Textdateien mit mehreren datensätzen wie z.b.

    511blablabla
    512blablabla
    513blablabla
    514blablabla
    515blablabla
    511blablabla1
    512blablabla1
    513blablabla1
    514blablabla1
    515blablabla1

    Ein Datensatz besteht immer aus dem Textbereich von 511 bis 515 und diese sollen per VBScript auf mehrere Textdateien aufgeteilt werden( Jeder Datensatz eine neue Textdatei)

    Ich hoffe auf schnelle Hilfe :D

    Mfg Pascal :)
    Willkommen im Forum.
    Wie weit bist Du mit Deinen Programmierkenntnissen? Nicht, dass Du bei Null anfängst und von uns nur ne Lösung haben willst. Da ich nicht davon ausgehe, brauchst Du also nur folgende Fragen zu beantworten:
    Weißt Du, wie man per VBS Daten aus einer Datei liest und in eine Datei schreibt?
    Kommst Du mit den String-Befehlen Left, Right, Len klar?
    Wenn Du alles mit ja beantworten kannst, sag, wo Du dann nicht weiterkommst?
    Falls nein: Was ist Dir von den genannten Sachen ein (vermeintlich) unlösbares Rätsel?
    Dieser Beitrag wurde bereits 5 mal editiert, zuletzt von „VaporiZed“, mal wieder aus Grammatikgründen.

    Aufgrund spontaner Selbsteintrübung sind all meine Glaskugeln beim Hersteller. Lasst mich daher bitte nicht den Spekulatiusbackmodus wechseln.
    Hallo,

    Meine VBS kenntnisse sind nicht die Besten allerdings kenne ich das meiste Grundlegende,
    Datei auslesen und beschreiben ist kein Problem das krieg ich selber hin.
    mit String-Befehlen habe ich mich allerdings noch nicht wirklich auseinandergesetzt.
    mein Problem ist das erkennen der einzelnen Datensätze und diese seperieren
    Wie lang ist denn ein einzelner Datensatz? Er beginnt mit 51*- und hört wann auf?
    Mfg: Gather
    Private Nachrichten bezüglich VB-Fragen werden Ignoriert!


    sind die Datensätze Komma - /Semikolon - /Umbruch - Separiert?
    Wenn das Leben wirklich nur aus Nullen und Einsen besteht, dann laufen sicherlich genügen Nullen frei herum. :D
    Signature-Move 8o
    kein Problem mit privaten Konversationen zu Thema XY :thumbup:
    Mein Ansatz war mit Dem Folgenden Code zumindest erstmal einen der Datensätze zu separieren

    if a <=515 then
    Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\Users\PKadm\Desktop\test\20180115 131338 LAMBO_491320180115.txt",1)
    for a = strFileText = objFileToRead.Read(3) to a
    strFileText = objFileToRead.Readline()

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFileToWrite = objFSO.OpenTextFile("C:\Users\PKadm\Desktop\test\testfile.txt", 2)
    objFileToWrite.Write strFileText
    objFileToWrite.Close
    next
    End if

    Visual Basic-Quellcode

    1. if a <=715 then
    2. Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\Users\PKadm\Desktop\test\20180115 131338 LAMBO_491320180115.txt",1)
    3. for a = strFileText = objFileToRead.Read(3) to a
    4. strFileText = objFileToRead.Readline()
    5. Set objFSO = CreateObject("Scripting.FileSystemObject")
    6. Set objFileToWrite = objFSO.OpenTextFile("C:\Users\PKadm\Desktop\test\testfile.txt", 2)
    7. objFileToWrite.Write strFileText
    8. objFileToWrite.Close
    9. next
    10. End if

    pascal1212 schrieb:

    if a <=715 then
    Set objFileToRead = CreateObject("Scripting.FileSystemObject").OpenTextFile("C:\Users\PKadm\Desktop\test\20180115 131338 LAMBO_491320180115.txt",1)
    for a = strFileText = objFileToRead.Read(3) to a

    Macht gar keinen Sinn.
    Abgesehen von der Tatsache, dass der Schleifenkopf blödsinnig initialisiert wird, kannst du nicht erst a abfragen und dann erst initialisieren.
    Ungefähr so könnte es aussehen:

    Visual Basic-Quellcode

    1. Set FS = CreateObject("Scripting.FileSystemObject")
    2. Set InFile = FS.OpenTextFile("C:\Users\PKadm\Desktop\test\20180115 131338 LAMBO_491320180115.txt",1)
    3. Do While Not InFile.AtEndOfStream
    4. Line = InFile.ReadLine
    5. Nr = Left(Line,3)
    6. If IsNumeric(Nr) Then
    7. Set OutFile = FS.OpenTextFile("c:\x\" & Nr & ".txt",8)
    8. OutFile.WriteLine Mid(Line,4)
    9. OutFile.Close
    10. End If
    11. Next
    12. InFile.Close
    Nagle mich nicht auf Fehler fest.
    Das ist aus dem Kopf geschrieben.
    Debuggen musst du selbst.

    Ein gutes DebuggingTool für VBScript ist VbsEdit.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --