Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Textanschnitt löschen

Forumthread: 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
Anzeige

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
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige