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

Txt Datei in mehrere splitten

Txt Datei in mehrere splitten
Andre´
Hallo alle zusammen,
ich möchte aus einer freiwählbaren TXT Datei folgendes realisieren:
Der Name ist z.B. A123_456.txt
Steht an der Stelle zwischen 162 bis 183TEST 1 2 3 4 5 6 7 89 (kann auch kleingeschrieben sein)
dann sollen diese Zeilen aus der TXT Datei gelöscht werden.
Die TXT soll unter dem gleichen Namen im selben Verzeichnis abgespeichert werden.
Die Zeilen, die aus der TXT Datei gelöscht wurden, sollen im selben Verzeichnis
mit dem Namen der ausgewählten TXT und einem Zusatz so:
A123_456_Test_C1AA.txt
gespeichert werden.Aber es könnten mehr Dateien werden:
wenn zwischen der Stelle 14 und 37 mitunter ein unterschiedlicher Text vorhanden ist.
Für die Anzahl der Unterschiede muss jeweils eine separate TXT Datei erzeugt werden im selben Verzeichnis.
Der Text zwischen der Stelle 14 und 37 soll jeweils als Dateiname angehängt werden.
Bsp: aus Zeile 14 Stelle 14 bis 37
C1AD
Dabei soll der Name der Datei nach wie folgt lauten:
A123_456_Test_C1AD.txt
Im angehängten Bsp.: https://www.herber.de/bbs/user/72081.txt
müssten die Zeilen: 5, 8, 12, und 14 gelöscht werden und
drei neue TXT Dateien erstellt werden mit dem Namen:
A123_456_Test_C1AA.txt
A123_456_Test_C1AC.txt
A123_456_Test_C1AD.txt
Der Aufbau der einzelnen TXT Dateien (Format) soll genau so sein wie die ausgewälte Datei.
Ich hoffe mir kann jemand helfen.
Vielen Dank im Voraus!
MFG Andre

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

Betreff
Benutzer
Anzeige
AW: Txt Datei in mehrere splitten
28.10.2010 15:57:52
Christian
Hallo Andre,
im Prinzip so:
- öffne txt-Datei
- lese die Zeilen in ein array (arrQuelle)
- schließe txt-Datei
- Durchlaufe das array und prüfe ob an Stelle 162 ff der gesuchte String steht
- wenn ja, dann extrahiere den Teil an der Stelle 17-37
und erzeuge aus dem Namen der Quelldatei und diesem extrahierten Teilstring den neuen Dateinamen.
Öffne diese Datei und schreibe den Array-Eintrag (hinten anhängen - append)
- wenn nein, dann schreibe den Array-Eintrag in eine andere Datei (z.B. tmp.txt)
zum Schluss kannst du die Quelldatei löschen und der tmp-Datei den Namen der Quelldatei geben.
Gruß
Christian
Anzeige
AW: Txt Datei in mehrere splitten
28.10.2010 16:43:35
Andre´
Hallo Christian,
erstmals Danke für Deine Antwort.
Ich habe gemerkt, als Du richtig erkannt hast Stelle 17-37, dass Stelle 14-37 verkehrt von mir dargestellt wurde.
Ich denke, dass Dein Vorschlag funktionieren könnte.
Hast Du evt. eine Makrolösung?
Das wäre super!
MFG Andre
AW: Txt Datei in mehrere splitten
29.10.2010 10:58:09
Christian
na gut, ein Ansatz zum testen ...
Option Explicit
Sub TestIt()
Dim intFile%, i&
Dim strTxt$, strLine$
Dim strName$, strDstFile$, strTmpFile$
Dim vntTxt
Const strSRCFILE = "D:\72081.txt"
strTmpFile = "D:\TmpTest.txt"
strName = Left(strSRCFILE, Len(strSRCFILE) - 4)
intFile = FreeFile
Open strSRCFILE For Binary Access Read As #intFile
i = LOF(intFile)
strTxt = String(i, 0)
Get #intFile, , strTxt
Close #intFile
vntTxt = Split(strTxt, vbCrLf)
For i = 0 To UBound(vntTxt)
strLine = vntTxt(i)
If Len(strLine) > 182 Then
If LCase(Mid(strLine, 162, 21)) = "test 1 2 3 4 5 6 7 89" Then
strDstFile = strName & "_" & Trim(Mid(strLine, 17, 20)) & ".txt"
intFile = FreeFile
Open strDstFile For Append As #intFile
Print #intFile, strLine
Close #intFile
Else
intFile = FreeFile
Open strTmpFile For Append As #intFile
Print #intFile, strLine
Close #intFile
End If
End If
Next
'    Kill strSRCFILE
'    Name strTmpFile As strSRCFILE
strTxt = ""
Erase vntTxt
End Sub

... löschen der Quell-Datei und umbenennen der Tmp-Datei hab ich hier mal auskommentiert.
Christian
Anzeige
AW: Txt Datei in mehrere splitten
29.10.2010 13:27:56
Andre´
Hallo Christian,
Vielen DANK!!! funktioniert prima :-)))
Ein schönes Wochenende
MFG Andre

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige