Anzeige
Archiv - Navigation
1184to1188
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zeilen aus TextDatei nach dem x. Semikolon

Zeilen aus TextDatei nach dem x. Semikolon
Andre´
Hallo alle zusammen,
ich habe eine Text Datei https://www.herber.de/bbs/user/72316.txt
wo Werte mit Semikolon getrennt enthalten sind.
Ich möchte die ganze Zeile nacheinander angezeigt bekommen (Direktfenster), wo nach dem dritten
Semikolon beginnend ab der 6. bis 8. Stelle eine -2 vorkommt.
In meinem Bsp.wäre es die Zeile 2
1234;Wert11;Signal11;Signal-22;Signal33;Signal44
und die Zeile 3
12345;Wert111;Signal111;Signal-222;Signal333;Signal444
Hat jemand eine Makrolösung für mich.
Vielen Dank Im Voraus!
MFG Andre
AW: Zeilen aus TextDatei nach dem x. Semikolon
16.11.2010 20:25:39
CitizenX
Hallo,
vlt so:
Sub Semis()
Dim semi, i%, n%
For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
semi = Split(Cells(i, 1), ";")
If InStr(semi(3), -2) > 6 And InStr(semi(3), -2) 

Grüße
Steffen
AW: Zeilen aus TextDatei nach dem x. Semikolon
16.11.2010 20:27:57
Uduuh
Hallo,
wieso im Direktfenster?
Gruß aus’m Pott
Udo

AW: Zeilen aus TextDatei nach dem x. Semikolon
16.11.2010 21:09:34
Andre´
Hallo Steffen,
hallo Udo,
erstmals danke für Eure Antwort.
ich möchte eine Text-Datei auswählen, und dann nach meinem Bsp.die komplette Zeilen wenn Bedingung erfüllt, ist in eine weitere Text-Datei in den selben Ordner die Daten schreiben.
Datei Auswählen und in eine separate Text-Datei erzeugen/ schreiben, würde ich hinbekommen, nur wie ich die Abfrage gestalten muss ist für mich fremd. (deshalb Anzeige im Direktfenster)
So sollen die Daten in der neuen TXT Datei stehen, wenn die Bedingung erfüllt ist:
https://www.herber.de/bbs/user/72318.txt
Hoffe Ihr könnt mir weiter helfen!
MFG Andre
Anzeige
AW: Zeilen aus TextDatei nach dem x. Semikolon
16.11.2010 21:19:26
Tino
Hallo,
kannst mal testen
Sub Lese()
Dim sFilename$, sInhalt$
Dim F%
Dim ArrayData
Dim A&
Dim objMatch As Object

'Pfad zu Datei über Dialog 
sFilename = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If sFilename = CStr(False) Then Exit Sub

If Dir$(sFilename, vbNormal) <> "" Then
    'Datei einlesen 
    F = FreeFile
    Open sFilename For Binary As #F
    sInhalt = Space$(LOF(F))
    Get #F, , sInhalt
    Close
    'Text Zeilenweise in ein Array 
    ArrayData = Split(sInhalt, vbCrLf)


    With CreateObject("Vbscript.Regexp")
        .MultiLine = True
        .Global = True
        .IgnoreCase = True
        .Pattern = "[\S äüöß]+;[\S äüöß]+;[\S äüöß]+;[\S äüöß]+-2[\S äüöß]+"
    
        'Array durchlaufen 
        For A = Lbound(ArrayData) To Ubound(ArrayData)
            Set objMatch = .Execute(ArrayData(A))
            If objMatch.Count > 0 Then
                Debug.Print objMatch(0) 'Ausgabe 
            End If
        Next
    End With

End If

End Sub
Gruß Tino
Anzeige
AW: Zeilen aus TextDatei nach dem x. Semikolon
16.11.2010 21:37:09
Andre´
Hallo Tino,
danke für den Tipp, scheint zu funktionieren :-))
Ich versuche gerade zu verstehen, was Du mit der Codezeile:
.Pattern = "[\S äüöß]+;[\S äüöß]+;[\S äüöß]+;[\S äüöß]+-2[\S äüöß]+"
bewirkst.
Melde mich nochmals.
MFG Andre
AW: Zeilen aus TextDatei nach dem x. Semikolon
16.11.2010 21:58:16
Andre´
Hallo Tino,
Meine Wunsch:
Ich möchte die ganze Zeile nacheinander angezeigt bekommen (Direktfenster), wo nach dem dritten  _
Semikolon beginnend ab der 6. bis 8. Stelle eine -2 vorkommt.
ist nicht ganz erfüllt, denn es wird nicht nach der 6. bis 8. Stelle nach der -2 gesucht.
Ich habe ein Zeichen mehr angehängt, https://www.herber.de/bbs/user/72320.txt
wo dann die -2 an der 7. Stelle beginnt, auch hier zeigt Dein Code die Zeile im Direktfenster, obwohl eigentlich nichts angezeigt werden dürfte.
Hast Du noch eine Idee.
MFG Andre
Anzeige
AW: Zeilen aus TextDatei nach dem x. Semikolon
16.11.2010 22:21:18
Tino
Hallo,
machen wir es einfach mit dem Like- Operator,
der ist auch einfacher zu verstehen, dafür aber ein klein wenig langsamer.
Sub Lese()
Dim sFilename$, sInhalt$
Dim F%
Dim ArrayData
Dim A&

'Pfad zu Datei über Dialog 
sFilename = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If sFilename = CStr(False) Then Exit Sub

If Dir$(sFilename, vbNormal) <> "" Then
    'Datei einlesen 
    F = FreeFile
    Open sFilename For Binary As #F
    sInhalt = Space$(LOF(F))
    Get #F, , sInhalt
    Close
    'Text Zeilenweise in ein Array 
    ArrayData = Split(sInhalt, vbCrLf)

        'Array durchlaufen 
        For A = Lbound(ArrayData) To Ubound(ArrayData)
            If ArrayData(A) Like "*;*;*;?-2*" Then
                Debug.Print ArrayData(A) 'Ausgabe 
            End If
        Next
End If

End Sub
Gruß Tino
Anzeige
AW: Zeilen aus TextDatei nach dem x. Semikolon
16.11.2010 22:40:58
Andre´
Hallo Tino,
Vielen DANK, funktioniert prima :-)))
MFG Andre
Ich habe noch eine Frage..
17.11.2010 19:22:58
Andre´
Hallo Tino und alle anderen
kann mir bitte noch jemand sagen, wie ich bei Übereinstimmung nur den Wert zwischen dem 2. und 3. Semikolon ausgeben kann und nicht die ganze Zeile.
Vielen Dank im Voraus!
MFG Andre
Habe es so gelöst....
17.11.2010 19:57:20
Andre´
Sub Lese()
Dim sFilename$, sInhalt$
Dim F%
Dim ArrayData
Dim A&
Dim semi
'Pfad zu Datei über Dialog
sFilename = Application.GetOpenFilename("Text Files (*.txt), *.txt")
If sFilename = CStr(False) Then Exit Sub
If Dir$(sFilename, vbNormal)  "" Then
'Datei einlesen
F = FreeFile
Open sFilename For Binary As #F
sInhalt = Space$(LOF(F))
Get #F, , sInhalt
Close
'Text Zeilenweise in ein Array
ArrayData = Split(sInhalt, vbCrLf)
'Array durchlaufen
For A = LBound(ArrayData) To UBound(ArrayData)
semi = Split(ArrayData(A), ";")
If ArrayData(A) Like "*;*;*;?-2*" Then
Debug.Print semi(3) 'Ausgabe
End If
Next
End If
End Sub

Anzeige
geht mit dieser Codezeile
17.11.2010 19:58:56
Tino
Hallo,
Debug.Print Split(ArrayData(A), ";")(2)
müsste funktionieren.
Gruß Tino
AW: geht mit dieser Codezeile
17.11.2010 20:09:37
Andre´
Hallo Tino,
danke nochmals für Deine Hilfe, so funktioniert es auch.
In meinem vorletzten Beitrag habe ich den Wert nach dem 3. Semikolon nicht nach dem 2. so wie ich
es eigentlich wollte ausgegeben, aber durch testen zu schnell eingefügt......
MFG Andre

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige