Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
680to684
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
680to684
680to684
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Textfolgen Suchen in einer Textdatei

Textfolgen Suchen in einer Textdatei
11.10.2005 17:21:53
wickie22
Hallo
ich möchte Zeichenfolgen (z.B. import e.ws, import abcdef.ws ...) in einer Textdatei suchen um sie später als string-Variable zu verwenden. Diese fangen immer mit "import" an und hören mit ".ws" auf.
ich habe schon einiges versucht, aber bin noch nicht auf das richtige gekommen:
Weg 1:
Workbooks.OpenText Filename:= _
"C:\test.txt", Origin:=1254, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=True, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
Cells.Find(What:="import *.ws", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Cells.FindNext(After:=ActiveCell).Activate
MsgBox Cells.FindNext(After:=ActiveCell).Value
...
dieser Weg benötigt ein worksheet, was relativ ungünstig ist. außerdem kommen als Ergebnis ganze Zellen raus, was ich ja auch nicht will, da diese noch weitere Zeichen enthalten könnten
weg 2:
With Application.FileSearch
.NewSearch
.LookIn = "C:\"
.SearchSubFolders = True
.Filename = "test.txt"
.TextOrProperty = "import *.ws"
.MatchTextExactly = True
.FileType = msoFileTypeAllFiles
End With
MsgBox Application.FileSearch.Execute
dieser weg zeigt mir an, dass ein string enthalten ist, aber nicht wie dieser genau ausschaut.
weg 3:
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile("C:\test.txt")
Set ts = f.OpenAsTextStream(1, -2)
s = ts.Read(f.Size)
d = Split(s, Chr(10))
ts.Close
For i = LBound(d) To UBound(d)
If InStr(1, d(i), "import *.ws") Then MsgBox InStr(1, d(i), "ws")
Next i
dieser weg klappt nicht, da Instr den platzhalter * nicht annimmt.
kennt jemand eine einfache praktikable lösung?

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textfolgen Suchen in einer Textdatei
11.10.2005 18:10:25
Oberschlumpf
Hi
Versuch mal Weg 3 etwas geändert von mir aber nicht getestet, einfach nur so geschrieben):

weg 3:
Set fs = CreateObject("Scripting.FileSystemObject")
Set f = fs.GetFile("C:\test.txt")
Set ts = f.OpenAsTextStream(1, -2)
s = ts.Read(f.Size)
d = Split(s, Chr(10))
ts.Close
For i = LBound(d) To UBound(d)
If InStr(1, d(i), "import") And InStr(1, d(i), ".ws") Then MsgBox InStr(1, d(i), "ws")
Next i

Eine andere Möglichkeit wäre vielleicht diese (auch nicht getestet):

Sub TextAuslesen()
Dim lstrZeile As String, liZeile As Integer
Open "DeinPfad\DeineTXTdatei.txt" For Input As #1
Do While Not Eof(1)
Line Input #1, lstrZeile
liZeile = liZeile + 1
If Instr(1,lstrZeile,LCase("import")) > 0 And Instr(1,lstrZeile,LCase(".ws")) > 0 then
MsgBox liZeile & " " & lstrZeile
End If
Loop
Close
End Sub

Dieser Code öffnet deine txt-Datei, dessen richtigen Pfad und Dateiname du anpassen musst.
Mit Line Iput wird die Datei Zeile für Zeile eingelesen.
Und wenn auch hier beide Suchtexte in einer Zeile vorkommen, wird die Zeilennummer (liZeile) und der Text der gefunden Zeile angezeigt.
Konnte ich helfen?
Ciao
Thorsten
Anzeige
AW: Textfolgen Suchen in einer Textdatei
11.10.2005 20:40:51
wickie22
auf die von dir beschriebene 1.Art habe ich nun gelöst.
Vielen vielen Dank für deine Schnelle Hilfe!
VG Eric

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige