Announcement

Collapse
No announcement yet.

Datei zerlegen und neue daraus erstellen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Datei zerlegen und neue daraus erstellen

    Hallo Leute, ich habe folgendes Problem:
    Ich möchte den Inhalt einer Datei nach einem Delimiter zerlegen und aus den Teilstrings neue Dateien erstellen. Dabei darf kein Zeichen der Ursprungsdatei verloren gehen. Der Delimiter entspricht einem regulärem ausdrucksmuster. Die Methode 'RegExp.Split()' hilft nicht da die Matches Kollektion abwechselnd das Pattern und dann den nächsten Teilstring enthält. Der Delimiter soll aber Anfangsbestandteil des Substrings sein. Da ich mit VB.Net nicht viel Erfahrung habe ist mir sicher eine einfache Zielführung entgangen. CR/LF sollen keine Rolle spielen, das Muster enthält Leerzeichen. Also TESTDAT:
    122AzzzzzzTestinhalt noch mehr Inhalt 122B12zzzzTestinhalt2 noch mehr Inhalt2

    soll z.B. in die Dateien TESTDAT1:
    122AzzzzzzTestinhalt noch mehr Inhalt
    und TESTDAT2:
    122B12zzzzTestinhalt2 noch mehr Inhalt2
    zerlegt werden. Danke für jede Hilfe !

  • #2
    und wo ist in deinem Beispiel der Reguläre Ausdruck der mir sagt dass hier getrennt werden soll?

    Alternativ kannst du deinen Regulären Ausdruck so gestalten dass der erste und der zweite Teil jeweils eine Gruppe ergeben. Diese Gruppen kannst du direkt im ERgebnis des regulären Ausdrucks verwenden und dann jeweils in die Dateien schreiben.
    Unsere Jugend ist unerträglich, unverantwortlich und entsetzlich anzusehen! - Aristoteles

    Comment


    • #3
      Hallo, erstmal danke für die Antwort. Der reguläre Ausdruck wäre z.B. '122[a-z].{4}.
      Das mit den Gruppen habe ich nicht ganz verstanden. Eine Gruppe besteht aus Pattern + Zeichen bis zum Beginn des nächsten Pattern ?

      Comment


      • #4
        http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck

        Siehe gruppieren.

        Sehe kein + in deinem Muster....
        Christian

        Comment


        • #5
          Hallo, das + Zeichen ist m.E. doch der Kardinalinalitätsoperator 1 - n, den brauch ich ja gar nicht.
          Die Klammerung mit (122[a-z].{4}) brachte leider auch keine Aufteilung in n Strings aus Muster + Zeichenkette bis zum Auftreten des nächsten Musters Der Quellcode :

          Sub Main()
          Dim treffer As String
          Dim zaehler As Integer
          Dim StrZiel As String
          Dim za As String
          Dim zb As String = ""
          Dim dateiinhalt As String

          Dim StrPfad As String
          Dim StrStream As String
          StrPfad = "C:\testpfad"
          Dim inhalt As String = My.Computer.FileSystem.ReadAllText(StrPfad)

          Dim Arr = Regex.Split(inhalt, " (122[a-z].{4})")
          For Each treffer In Arr
          MsgBox(treffer)
          Next

          Comment


          • #6
            Dein jetziger Ausdruck trennt wenn ein Leerzeichen kommt, dann die Ziffern 122, dann ein Kleinbuchstabe . dann 4 x irgendein Zeichen
            Christian

            Comment


            • #7
              Okay , das Leerzeichen war STRG + C, ;-)
              "(122[a-z].{4})")

              Comment

              Working...
              X