Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
708to712
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
708to712
708to712
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Daten aus .txt Datei importieren

Daten aus .txt Datei importieren
15.12.2005 08:29:51
Thias
Hallo Forumgemeinde,
ich möchte aus einer .txt Datei Daten importieren. Die Recherche hat mir dazu leider nichts lehrreiches angezeigt.
Die Daten in der .txt Datei haben immer den folgenden Aufbau:
String0 -Tab- String1 -Tab- : -Tab- String2 (evtl. -Tab- String3)
-Tab- String1 -Tab- : -Tab- String2
-Tab- String1 -Tab- : -Tab- String2
-Tab- String1 -Tab- : -Tab- String2
Die .txt Datei habe ich zum besseren Verständins mal auf den Server hochgeladen:
https://www.herber.de/bbs/user/29285.txt
Ich möchte nun die Informationen nach dem Doppelpunkt importieren (also String 2 bzw. bis zum Ende der Zeile), z.B. in Zelle B2.
Allerdings nicht aus jeder Zeile, sondern nur bestimmten, z.B. die Infos nach dem Doppelpunkt aus Zeile 29.
Oder etwas kürzer ausgedrückt: Wie kann ich aus Zeile 29 der .txt Datei die Informationen nach dem Doppelpunkt beispielsweise in Zelle B2 importieren?
Oder wäre ein anderer Ansatz sinnvoller? Z.B. nach einem String suchen, und die danach folgenden Infos importieren?
Den Rest, also der Import aus anderen Zeilen, werde ich dann hoffentlich daraus abstrahieren können.
Wenn mir jemand einen Ansatz in VBA zeigen könnte, würde mir das sehr weiterhelfen.
Gruß Thias

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten aus .txt Datei importieren
15.12.2005 09:40:39
Heiko
Hallo Thias,
du hast ja immer komische Textdateien ;-)

Sub EinheitUndBearbeiterEinlesen()
Dim strPfad As String, strhelp As String
Dim arrInput() As String, arrOutput() As String
Dim lngPos As Long, lngHelp As Long
' Pfad anpassen
strPfad = "H:\EXCEL\Muell\Messdaten.txt"
Open strPfad For Binary As #1
strhelp = Space(LOF(1))
Get #1, , strhelp
arrInput = Split(strhelp, vbCrLf)
Close #1
For lngPos = LBound(arrInput) To UBound(arrInput)
If InStr(1, arrInput(lngPos), "Einheit") > 0 Then
arrOutput = Split(arrInput(lngPos), ":")
ActiveSheet.Range("B2") = Trim(Replace(arrOutput(1), Chr(9), ""))
Erase arrOutput
End If
If InStr(1, arrInput(lngPos), "Bearbeiter") > 0 Then
arrOutput = Split(arrInput(lngPos), ":")
ActiveSheet.Range("B3") = Trim(Replace(arrOutput(1), Chr(9), ""))
Erase arrOutput
End If
Next lngPos
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Daten aus .txt Datei importieren
15.12.2005 11:35:50
Thias
Hallo Heiko,
funktioniert 1A - vielen Dank!
Allerdings wahr ich nicht ehrlich zu Dir...
Die .txt Datei, die ich hochgeladen habe, war nur ein Ausschnitt der vollständigen Datei.
Die vollständige Datei findest nun hier: https://www.herber.de/bbs/user/29313.txt
Und daraus ergibt sich nämlich ein Problem, an das ich vorher leider nicht gedacht hatte. Manche Strings, wie z.B. "Einheit", nach dem Du erfolgreich gesucht hast, können öfters in der Datei, unter verschiedenen Abschnitten, auftauchen. In der neu hochgeladenen Datei z.B. unter dem Abschnitt GEGENSTAND, EINRICHTUNG und AUFNEHMER.
Wenn ich Deinen Code nun auf die gesamte Datei anwende, dann werden die Daten nach dem letzten gefunden String importiert. Wenn ich nun aber die Daten nach dem String "Einheit" aus dem Abschnitt GEGENSTAND haben möchte, bekomme ich ja leider die falschen, da die Daten nach dem letzten String "Einheit" importiert werden.
Daher meine Frage: Kann man die Suche noch auf den Begriff der Abschnitte reduzieren? Also nach dem Motto: Suche den ersten String "Einheit" nach dem String "GEGENSTAND".
Die .txt Datei bastelt leider das vorhandene Messsystem so zusammen. Das hat irgendwann mal jemand so in C++ programmiert, und ich muss mich jetzt damit rumärgern, weil für die weitere Programmierung kein Geld ausgegeben werden soll/kann/darf...
Leider bin ich kein Informatiker sondern nur Elektroniker mit beschränkten Programmierkenntnissen. Einiges kann ich zwar abstrahieren, aber viele Befehle und Möglichkeiten kenne ich schlicht einfach nicht.
Der Gedanke der Objektorientierung ist mir zwar von JAVA her vertraut, aber das war's auch schon. :-(
Gruß Thias
Anzeige
AW: Daten aus .txt Datei importieren
15.12.2005 11:56:49
Heiko
Hallo Thias,
mal schnell aus der Hüfte:

Sub Abschnitt_Suchbegriff()
Dim strPfad As String, strhelp As String
Dim arrInput() As String, arrOutput() As String
Dim lngPos As Long, lngHelp As Long
' Pfad anpassen
strPfad = "H:\EXCEL\Muell\Messdaten.txt"
Open strPfad For Binary As #1
strhelp = Space(LOF(1))
Get #1, , strhelp
arrInput = Split(strhelp, vbCrLf)
Close #1
ActiveSheet.Range("B2") = FcnSuchen(arrInput, "GEGENSTAND", "Einheit")
ActiveSheet.Range("B3") = FcnSuchen(arrInput, "EINRICHTUNG", "Einheit")
End Sub


Function FcnSuchen(arrDaten() As String, strAbschnitt As String, strBegriff As String) As String
Dim lngI As Long
Dim arrHelp() As String
Dim bolRA As Boolean
If IsArray(arrDaten) = False Then
MsgBox "Es wurde keine Array (Datenfeld) übergeben !", vbCritical
FcnSuchen = "Fehler"
Exit Function
End If
For lngI = LBound(arrDaten) To UBound(arrDaten)
If InStr(1, arrDaten(lngI), strAbschnitt) > 0 Then bolRA = True
If InStr(1, arrDaten(lngI), strBegriff) > 0 And bolRA Then
arrHelp = Split(arrDaten(lngI), ":")
FcnSuchen = Trim(Replace(arrHelp(1), Chr(9), ""))
Erase arrHelp
Exit Function
End If
Next lngI
FcnSuchen = "Nichts gefunden"
End Function

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: Daten aus .txt Datei importieren
15.12.2005 15:59:46
Thias
Hey Heiko,
mal schnell aus der Hüfte? Du hast mich schwer beeindruckt! Funktioniert tadellos! Unglaublich! Wieviel Zeit muss ich denn noch investieren, damit ich sowas überhaupt mal hinbekomme, und nicht wie Du, in 10 Minuten?! Hut ab! Chapeau!
Ich bedanke mich vielmals und wünsche Dir einen schönen Feierabend!
Gruß Thias

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige