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

Textanschnitt löschen

Textanschnitt löschen
17.06.2022 13:08:45
Theo
Hallo liebes Forum,
könnt ihr mir bitte bei meinem Problem helfen: Ich habe einen Ordner mit mehreren Text-Dateien, die alle etwa so heißen "Reihe1.txt" (Nummern fortlaufend) usw.. Kann mir jemand ein Makro schreiben, dass alle Dateien des Ordners nacheinander öffnet, zwei Abschnitte (der erste Abschnitt startet mit "BEGIN TEST1" und endet mit "END TEST1" und der zweite Abschnitt beginnt dementsprechend mit "BEGIN TEST2" und endet mit "END TEST2") im Text löscht und die komplette Datei mit dem Zusatz "_neu" (im Beispiel "Reihe1_neu.txt") erneut speichert?
Viele Grüße Theo

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Textanschnitt löschen
17.06.2022 17:39:59
onur
Maßgeschneiderte Fix- und Fertigmakros bekommst du beim Auftragsprogrammierer, hier kannst du gerne Hilfe zu DEINEM Makro bekommen.
AW: Textanschnitt löschen
20.06.2022 09:14:38
MCO
Hallo Theo!
Grundsätzlich kannst du Textdateien öffnen und einlesen
https://docs.microsoft.com/de-de/office/vba/language/reference/user-interface-help/line-inputstatement
wenn du dann mit 2 Dateien arbeitest

Sub text_Dateien()
Dim text1, text1_neu, i
ReDim Satz(10000)
Dim Dat_voll As Long
log_dat = ThisWorkbook.Path & "\text1.txt"
log_dat_neu = ThisWorkbook.Path & "\text1_neu.txt"
Open text1 For Input As #1
Open text1_neu For Output As #2
i = 0
Do While Not EOF(1)
Line Input #1, Satz(i)
'hier gehst du alle Zeilen deines textes durch, wird alles in Variable SATZ geschrieben.
'Dein Text ist mir ungekannt, daher kann ich keine Bedingung formulieren.
Beispiele:
If Len(Satz(i)) > 2 Then 'Zeilenlänge Größer 2 Zeichen
'if instr(Satz(i),chr(10))>0 then 'Zeilenumbruch enthalten
'if left(Satz(i),4)="Rose" then 'Beginnt mit "Rose"
Dat_voll = i ' letzten vollst. Datensatz merken
i = i + 1 'Datensatz ist gültig, nächster SATZ wird vorgemerkt
Else
'Datenzeile ungültig, SATZ wird überschrieben
Satz(Dat_voll) = Satz(Dat_voll) & " " & Satz(i)
End If
Loop
ReDim Preserve Satz(i - 1) 'Reduzieren der Datensätze auf beschriebene
'erneutes durchgehen von SATZ
For i = 0 To UBound(Satz())
Satz(i) = Replace(Satz(i), chr(10), "") 'modifizieren des Satzes
If Bedingung_nach_Muster_wie_oben Then Print #2, Satz(i) 'rückschreiben in 2te Datei mit Bedingung
Next i
Close #1
Close #2
End Sub
Das Ganze muss dann in eine For each-Schleife über alle Dateien über deinen Ordner.
Wenn du so weit bist, dann such nochmal im Forum, es gibt reichlich Beispiele,
https://www.herber.de/forum/archiv/1676to1680/1678559_Letzten_200_Zeilen_einer_Textdatei_einlesen.html
Gruß, MCO
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige