Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Aus .txt nur einzelne Zeilen einlesen?

Aus .txt nur einzelne Zeilen einlesen?
15.06.2013 00:31:12
Prevertex
Hallo zusammen.
Ich hoffe es ist keine zu blöde Frage. Habe nach gesucht, konnte aber nur zum kompletten Einlesen was finden.
Bei mir geht es jedoch um Info aus großen txt Dateien oft mehrere GB. Kann man irgendwie nur einzelne Zeilen einlesen?
Ich bräuchte keine Analyse oder ähnliches, sondern nur z.B die 300. oder 6000. Zeile einlesen?

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aus .txt nur einzelne Zeilen einlesen?
15.06.2013 07:43:41
Oberschlumpf
Hi #Name?
Versuch mal:
Sub sbTxt()
Dim lstrInhalt As String, ldbCount As Double
Open "Pfad\Datei" As Input As #1
Do While Not EOF(1)
Line Input #1, lstrInhalt
ldbCount = ldbCount + 1
If ldbCount = 300 Then
'hier dein Code, was bei Zeile 300 passieren soll
End If
If ldbCount = 6000 Then
'hier dein Code, was bei Zeile 6000 passieren soll
End If
'und so weiter
Loop
Close
End Sub
Hilfts?
Ciao
Thorsten <<-- DAS ist übrigens mein Realname

AW: Aus .txt nur einzelne Zeilen einlesen?
16.06.2013 10:44:03
fcs
Hallo Thorsten,
ja, allerdings mit Korrektur in der Open-Zeile und optimiert mit einer Abbruchbedingung wenn die Zeile mit der höchsten Nummer ausgewertet ist, damit ggf. nicht die gesamte Textdatei durchlaufen wird.
Gruß
Franz
Sub sbTxt()
Dim lstrInhalt As String, ldbCount As Double
Open "Pfad\Datei" For Input As #1
Do While Not EOF(1)
Line Input #1, lstrInhalt
ldbCount = ldbCount + 1
Select Case ldbCount
Case 300
'hier dein Code, was bei Zeile 300 passieren soll
Case 6000
'hier dein Code, was bei Zeile 6000 passieren soll
'und so weiter
Case Is > 6000 'wenn größer höchstem Wert, dann Schleife beenden
Exit Do
End Select
Loop
Close
End Sub

Anzeige
AW: Aus .txt nur einzelne Zeilen einlesen?
16.06.2013 11:01:44
Oberschlumpf
Hi Franz
ups, ja, hast recht - die Open-Zeile würde den Debugger auf'n Plan rufen :-)
(na ja, kommt davon, wenn man denkt, es geht auch ohne zu Testen)
Was den Stoppwert betrifft - hier 6000 - hoff ich, dass der Ersteller dies erkennt und den Wert entsprechend anpasst, wenn 6000 gar nicht die letzt zu prüfende Zeile ist.
Ciao
Thorsten

AW: Aus .txt nur einzelne Zeilen einlesen?
16.06.2013 20:26:33
Prevertex
Danke Euch allen.
Bei den großen Dateien scheitert es leider am Speicher.
Aber wahrscheinlich funioniert Thorsten's Lösung bei kleineren Dateien.
Warte gerade noch auf die erste abgeschlossene Konvertierung ums auszuprobieren.
Ciao
Thomas

Anzeige
AW: Aus .txt nur einzelne Zeilen einlesen?
15.06.2013 07:55:13
Tino
Hallo,
eine bestimmte position direkt auszulesen kenne ich nicht.
Hier ane Variante/Function die bis zu dieser Zeile läuft und diese zurückgibt.
Sub Beispiel()
Dim sPathTxT$, sTextZeile$
Dim lngZeile&
lngZeile = 5 'Zeilennummer
sPathTxT = Application.GetOpenFilename("Alle Text Dateien (*.txt),*.txt")
If sPathTxT = CStr(False) Then Exit Sub
sTextZeile = ZeileLesen(lngZeile, sPathTxT)
End Sub
Public Function ZeileLesen(ZeilenNr As Long, ByVal DateiPfad As String) As String
Dim DateiNr As Integer
Dim Zeile As String
Dim ZeilenNr2 As Long
DateiNr = FreeFile
Open DateiPfad For Input As #DateiNr
Do Until EOF(DateiNr)
Line Input #DateiNr, Zeile
ZeilenNr2 = ZeilenNr2 + 1
If ZeilenNr2 = ZeilenNr Then
ZeileLesen = Zeile
Close #DateiNr
Exit Function
End If
Loop
Close #DateiNr
End Function
Gruß Tino

Anzeige
AW: Aus .txt nur einzelne Zeilen einlesen?
15.06.2013 09:24:38
fcs
Hallo Prevertex,
wenn alle Datenzeilen/Datensätze genau die gleiche Zeichenzahl haben, dann könnte man ggf. entsprechende Abschnitte direkt aus der Sequenz der Zeichen herausschneiden.
Man könnte im gesamten Text die 299. und 300. Zeilenschaltung suchen und den Text dazwischen ausschneiden. Bei mehreren GB Dateigröße dürfte das aber problematisch werden, wegen der Geößen-Grenzen der entsprechenden Variablen.
Wahrscheinlich geht es am schnellsten, wenn das Textfile zeilenweise einzulesen wird und mit Prüfung eines Zeilenzählers die gewünschten Zeilen herausgefischt werden.
Gruß
Franz

Anzeige
du meinst also...
15.06.2013 11:04:19
Oberschlumpf
Hi Franz
...genau das, was mein Code-Bsp ausführt, oder? :-)
Ciao
Thorsten

AW: du meinst also...
17.06.2013 01:42:24
Prevertex
Danke nochmals. Bei den kleineren TXT Dateien läuft der Code nun einwandfrei.
Könnte ich das Gleiche vielleicht auch auf DOCX Dateien mit Passwort anwenden?
Bin leider selber am Umschreiben der Open Zeile gescheitert ;)

AW: du meinst also...
17.06.2013 07:55:51
fcs
Hallo,
Nein, da auch alle Steuerzeichen in der Datei vorhanden sind
Du muss die Worddatei dann vorher als Textdatei speichern.
Gru
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen