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

3 letzten Eintrag aus TXT File

3 letzten Eintrag aus TXT File
Andre´
Hallo alle zusammen,
ich habe folgenden Aufbau einer TXT Datei https://www.herber.de/bbs/user/67977.txt
Ich möchte über VBA den 3 letzten Eintrag der zwischen den Zeichen enthalten ist auslesen.
In dem Bsp. wäre es 1 11 1zzz aus der Zeile 2
Ich hoffe mir kann jemand helfen.
Vielen Dank im Voraus!
MFG Andre
AW: 3 letzten Eintrag aus TXT File
13.02.2010 00:58:15
fcs
Hallo Andre,
etwa so. Deine Textdatei enthält jedoch nur 1 Zeile Daten!
Gruß
Franz
'##############################################################
'# Windows Vista-Excel 2007 (12.0.6514.5000 SP2) VBA 6.5.1040 #
'# fcs                                             2010-02-13 #
'# Makro sollten auch unter Excel 2003 lauffähig sein         #
Option Explicit
Sub Test()
Dim vAuswahl, intI As Long, bFound As Boolean
Dim FF As Long, sSep As String, sText As String, vFields
vAuswahl = Application.GetOpenFilename(FileFilter:="Text (*.txt),*.txt", _
Title:="Bitte Textdatei(en) auswählen, Mehrfachauswahl ist möglich", _
Buttontext:="Datei auswählen", _
MultiSelect:=True)
If IsArray(vAuswahl) Then
sSep = Chr(3)
FF = FreeFile()
For intI = LBound(vAuswahl) To UBound(vAuswahl)
Open vAuswahl(intI) For Input As #FF
bFound = False
Do Until EOF(FF)
Line Input #FF, sText
vFields = VBA.Split(VBA.Replace(sText, sSep & sSep, vbTab), vbTab)
If UBound(vFields) - LBound(vFields) + 1 >= 3 Then
sText = vFields(UBound(vFields) - 2)
bFound = True
End If
Loop
If bFound = True Then
MsgBox "3.-letzter Feldinhalt in Textdatei """ & vAuswahl(intI) & """" _
& vbLf & vbLf _
& sText, vbOKOnly + vbInformation, "Textfile auswerten"
Else
MsgBox "Textdatei """ & vAuswahl(intI) & """enthält nicht die entsprechenden Daten", _
vbOKOnly + vbInformation, "Textfile auswerten"
End If
Close FF
Next
End If
End Sub

Anzeige
AW: 3 letzten Eintrag aus TXT File
13.02.2010 11:25:23
Andre´
Hallo Franz,
erstmals vielen Dank für Deine Antwort, funktioniert für mein erstes Bsp.
Ich habe einige Zeichen entfernt siehe diese TXT Datei... https://www.herber.de/bbs/user/67980.txt
da funktioniert es nicht. Es sollte aaa angezeigt werden.
Auch wenn nur 3 Inhalte zwischen stehen siehe https://www.herber.de/bbs/user/67981.txt
funktioniert es nicht. Hier sollte FEHLER1 angezeigt werden.
Hast Du eine Idee woran das liegen kann?
MFG Andre
Anzeige
AW: 3 letzten Eintrag aus TXT File
13.02.2010 11:45:40
Reinhard
Hallo Andre,
mein Code funktioniert.
Gruß
Reinhard
AW: 3 letzten Eintrag aus TXT File
13.02.2010 18:06:22
fcs
Hallo Andre,
wenn du X-verschiedene Varianten von Textdateien mit unterschiedlichem Aufbau der Trennzeichen zwischen den "sinnvollen" Textteilen auswerten willst, dann solltest du dich nicht wundern, dass nicht jede Lösung funktioniert.
Hier muss man dann den Mischmasch von Trennzeichen wohl wie von meinen Mitstreitern vorgeschlagen ersetzen, bevor man daran geht den gewünschten Textteil zu isolieren.
Übrigens? Welches Programm gibt denn Daten mit diesen Steuerzeichen aus?
Gruß
Franz
AW: 3 letzten Eintrag aus TXT File
13.02.2010 18:13:26
Andre´
Hallo Franz,
das Programm:
RS232 Data Logger by Eltima Software
den Mischmasch von Trennzeichen
wird wohl beim kopieren/ einfügen entstanden sein.
MFG Andre
Anzeige
AW: 3 letzten Eintrag aus TXT File
13.02.2010 10:28:43
Reinhard
Hallo Andre,
dein Text hat ein seltsamen Aufbau, anfangs sieht vieles so aus
XTextYXTextYXTextYXTextYXTextYXTextYXTextY...
(X = Chr(2), Y = Chr(3)
Bei den letzten Einträgen sieht das aber so aus:
YTextYYTextYYTextYYTextY
Deshalb habe ich dieses eingebaut:
Satz = Replace(Satz, Chr(3) & Chr(3), Chr(2) & Chr(3))
Und auch ich kann da keine zweite Zeile feststellen.

Sub finden()
Dim Satz, S
Columns(1).ClearContents
Close
Open "c:\test\kwfinden.txt" For Input As #1
While Not EOF(1)
Input #1, Satz
Wend
Close
Satz = Replace(Satz, Chr(3) & Chr(3), Chr(2) & Chr(3))
S = Split(Satz, Chr(3))
MsgBox Replace(S(UBound(S) - 3), Chr(2), "")
End Sub

Gruß
Reinhard
Anzeige
AW: 3 letzten Eintrag aus TXT File
13.02.2010 10:38:21
Beverly
Hi Andre,
noch eine Möglichkeit:
Sub TextEinlesen()
Dim arrText
Dim strText As String
Dim loZeile As Long
Dim byZaehler As Byte
Open "C:\Test\67977.txt" For Input As #1
Line Input #1, strText
arrText = Split(Application.Substitute(strText, Chr(3), ";"), ";")
Close #1
For loZeile = UBound(arrText) To LBound(arrText) Step -1
If arrText(loZeile)  "" Then
byZaehler = byZaehler + 1
If byZaehler = 3 Then Exit For
End If
Next loZeile
MsgBox arrText(loZeile)
End Sub



Anzeige
AW: 3 letzten Eintrag aus TXT File
13.02.2010 11:49:29
Andre´
Hallo Reinhard, Hallo Beverly
@ Reinhard
Vielen Dank für Dein Bsp. es funktioniert zu 100%.
Ich habe einige Möglichkeiten getestet mit erwünschtem Ergebnis.
Mit Zeile 2 meinte ich wie sie im Text-Editor angezeigt wird.
Damit wäre mein Problem gelöst. :-)))
@ Beverly
Auch Dir danke für Dein Bsp. Beim testen konnte ich auch keine 100% Zufriedenheit feststellen.
MFG Andre
AW: 3 letzten Eintrag aus TXT File
13.02.2010 15:31:16
Beverly
Hi Andre,
und worin besteht der Mangel?


AW: 3 letzten Eintrag aus TXT File
13.02.2010 17:24:05
Andre´
Hallo Karin,
der Mangel bei folgenden Bsp. https://www.herber.de/bbs/user/67994.txt
da kommt diese Meldung
Userbild
MFG Andre
Anzeige
AW: 3 letzten Eintrag aus TXT File
13.02.2010 17:33:43
Beverly
Hi Andre,
ändere diese Zeile:

arrText = Split(Application.Substitute(Application.Substitute(strText, Chr(3), ";"), Chr(2), ";"), ";")



AW: 3 letzten Eintrag aus TXT File
13.02.2010 18:00:58
Andre´
Hallo Karin,
danke nochmals für Deine Rückmeldung.
Jetzt funzt auch Deine Variante zu 100%.
MFG Andre

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige