Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1768to1772
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

Bestimmten Inhalt auslesen?

Bestimmten Inhalt auslesen?
26.06.2020 22:09:18
Sergej
Hallo Leute,
wie kann ich bitte per VBA in der Datei „D:\Vorlagen\Data.txt“ nach ersten "@[L_VER]" suchen und dann den Text bis zu nächstem @-Zeichen auslesen? Falls danach doch kein @-Zeichen (s. Bsp. 1) vorkommt, dann endet die Zeile. Dann denn Text bis zur Ende auslesen.
Bsp 1. möglicher Inhalt der Datei "Data.txt"
15 @[ATTR1]0.63@[L_VER]2.2
20 @[DDN]10.63@[L_VER]2.2
25 @[ANN]1@[OZSN]15.6@[TSN]0.63@[L_VER]2.2
Bsp 2. möglicher Inhalt der Datei "Data.txt"
25 @[SER]34.8@[L_VER]2.2@[ATTR1]0.63
80 @[L_VER]2.2@[DDN]10.63
125 @[ANN]1@[OZSN]15.6@[TSN]0.63@[L_VER]2.2
Im Beispiel wäre es: 2.2
Besten Dank im Voraus.
Gruß,
Sergej

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
nachgefragt
26.06.2020 22:48:36
Rudi
Hallo,
also soll der Code nach Fund des ersten @[L_VER] stoppen?
Nach Zeile 15 bzw. 25
Gruß
Rudi
evtl. so
26.06.2020 22:57:56
Rudi

Sub aaa()
Dim strTxt As String, arrTmp, i As Integer
Open "D:\Vorlagen\Data.txt" For Input As #1
Do While Not EOF(1)
Line Input #1, strTxt
arrTmp = Split(strTxt, "@")
For i = LBound(arrTmp) To UBound(arrTmp)
If arrTmp(i) Like "[L_VER]*" Then
MsgBox Mid(arrTmp(i), 8)
Close #1
Exit Sub
End If
Next i
Loop
Close #1
End Sub

Gruß
Rudi
AW: evtl. so
26.06.2020 23:19:45
Sergej
Hallo Rudi,
nach ersten Fund soll gestoppt werden. Ich habe dein Code getestet. Ich bekomme nichts ausgelesen.
Gruß,
Sergej
Anzeige
AW: Bestimmten Inhalt auslesen?
26.06.2020 22:59:59
Christian
Hallo Sergej,
du kannst z.Bsp. die Einträge der Textdatei per Regular Expression auf bestimmte Teilstrings prüfen.
Bsp:
Option Explicit
Sub TestIt()
Dim objRgx As Object, objMtch As Object
Dim i As Long
Dim intFile As Integer
Dim strSrc As String
Dim vntSrc
Const SOURCEFILE As String = "D:\TestFile.txt"
Set objRgx = CreateObject("VbScript.Regexp")
With objRgx
.Global = False
.MultiLine = False
.Pattern = "@\[L_VER\]([^@]+)"
End With
intFile = FreeFile
Open SOURCEFILE For Input As #intFile
strSrc = Input(LOF(intFile), 1)
Close #intFile
vntSrc = Split(strSrc, vbCrLf)
For i = 0 To UBound(vntSrc)
If objRgx.Test(vntSrc(i)) Then
Set objMtch = objRgx.Execute(vntSrc(i))
' Bsp: im Direktfenster ausgeben
Debug.Print i; objMtch(0).SubMatches(0)
' Bsp: als MsgBox pro Zeile
MsgBox "Zeile: " & i + 1 & ": " & objMtch(0).SubMatches(0)
End If
Next
Set objMtch = Nothing
Set objRgx = Nothing
End Sub
Gruß
Christian
Anzeige
AW: Bestimmten Inhalt auslesen?
26.06.2020 23:20:38
Sergej
Hallo Christian,
es funktioniert. Vielen herzlichen Dank!
Gruß,
Sergej
oT: nachgefragt ...
26.06.2020 23:22:06
neopa
Hallo Christian,
... ich nehme mal an, dass Du der Christian bist, der auch schon einige mit PQ Lösungen eingestellt hat. Kannst Du Dir mal diesen thread hier: https://www.herber.de/forum/archiv/1768to1772/t1768097.htm anschauen? Ich hatte gedacht, das da eine PQ-Lösung möglich sein sollte/könnte. Hab eine Weile gesucht, fand aber keinen richtigen Lösungsansatz. Kannst Du einen solchen aufzeigen? Ich brauch es nicht wirklich, würde mich halt nur interessieren. Allerdings geh ich für heute erst einmal offline.
Gruß Werner
.. , - ...
Anzeige
AW: oT: nachgefragt ...
27.06.2020 09:18:01
Christian
Hi Werner,
da muss ich dich enttäuschen, der Christian bin ich nicht und kann dir da adhoc auch nicht weiter helfen.
Grüße
Christian
AW: kein Problem, danke für Deine Info owT
27.06.2020 14:15:43
neopa
Gruß Werner
.. , - ...

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige