TXT Datei an bestimmten Stellen umbrechen und einen von bis bereich makieren und in ein neues TXT File mit bestimmter Bezeichnung speichern
Hallo, habe ein Problem wo ich nicht weiter komme. Muss dazu sagen, dass ich keine Ahnung von Programierung habe, aber vielleicht kann mir hier jemand weiterhelfen.
Habe eine TXT Datei mit folgendem Aufbau
IM2146564|Test1 gregt gergerg gerge|Test2|Test3 vfewgw gwgw weggweg
Test4
IM5464645|TestA jk jkljhjkl jkljkhhklh gfhg ghdfhfg |TestB vsdgsd gagaga fgsasgasgsag gassggsa IM654321 beher egwqgwe
TestC
TestD
IM5464664|TEST1|TEST2|TEST3
Die Datei soll nun wie folgt per Script aufgelöst werden
IM2146564|
Test1 gregt gergerg gerge|
Test2|
Test3 vfewgw gwgw weggweg
Test4
IM5464645|
TestA jk jkljhjkl jkljkhhklh gfhg ghdfhfg |
TestB vsdgsd gagaga fgsasgasgsag gassggsa IM654321 beher egwqgwe
TestC
TestD
IM5464664|
TEST1|
TEST2|
TEST3
Nun folgt aber der weitere Punk, dass ich hier gut 90000 Zeilen habe ( 2680 Datensätze)
wo aus jedem von IMXXXXXX bis zum Anfang des nächsten IMXXXXXX (IMXXXXXX kann aber auch mittem im Text vorkommen, darf aber nicht verwendet werden) der jeweilige Inhalt in eine neue TXT Datei kopiert werden soll und unter dem Dateinamen (wie aus Beispiel)
IM2146564 Test2.txt
IM5464645 TestB.txt
IM5464664 TEST2.txt
zeugt werden, und am Schluß 2680 TXT Dateien habe.
Oder wenn technisch so nicht machbar, dann ggf umgekehrt
1.
von IMXXXXXX bis zum Anfang des nächsten IMXXXXXX (IMXXXXXX kann aber auch mittem im Text vorkommen) der jeweilige Inhalt in eine neue TXT Datei kopiert werden soll und unter dem Dateinamen (wie aus Beispiel)
IM2146564 Test2.txt
IM5464645 TestB.txt
IM5464664 TEST2.txt
2. in den jeweiligen neuen TXT Files den Umbruch erzeugen
Sollte das Problem nicht ausführlich genug beschrieben wurde kann hier eine org. Datei mit 6 Datensätzen zur Verfügung stellen..
Ich hoffe es kann mir hier jemand weiter helfen.
Habe eine TXT Datei mit folgendem Aufbau
IM2146564|Test1 gregt gergerg gerge|Test2|Test3 vfewgw gwgw weggweg
Test4
IM5464645|TestA jk jkljhjkl jkljkhhklh gfhg ghdfhfg |TestB vsdgsd gagaga fgsasgasgsag gassggsa IM654321 beher egwqgwe
TestC
TestD
IM5464664|TEST1|TEST2|TEST3
Die Datei soll nun wie folgt per Script aufgelöst werden
IM2146564|
Test1 gregt gergerg gerge|
Test2|
Test3 vfewgw gwgw weggweg
Test4
IM5464645|
TestA jk jkljhjkl jkljkhhklh gfhg ghdfhfg |
TestB vsdgsd gagaga fgsasgasgsag gassggsa IM654321 beher egwqgwe
TestC
TestD
IM5464664|
TEST1|
TEST2|
TEST3
Nun folgt aber der weitere Punk, dass ich hier gut 90000 Zeilen habe ( 2680 Datensätze)
wo aus jedem von IMXXXXXX bis zum Anfang des nächsten IMXXXXXX (IMXXXXXX kann aber auch mittem im Text vorkommen, darf aber nicht verwendet werden) der jeweilige Inhalt in eine neue TXT Datei kopiert werden soll und unter dem Dateinamen (wie aus Beispiel)
IM2146564 Test2.txt
IM5464645 TestB.txt
IM5464664 TEST2.txt
zeugt werden, und am Schluß 2680 TXT Dateien habe.
Oder wenn technisch so nicht machbar, dann ggf umgekehrt
1.
von IMXXXXXX bis zum Anfang des nächsten IMXXXXXX (IMXXXXXX kann aber auch mittem im Text vorkommen) der jeweilige Inhalt in eine neue TXT Datei kopiert werden soll und unter dem Dateinamen (wie aus Beispiel)
IM2146564 Test2.txt
IM5464645 TestB.txt
IM5464664 TEST2.txt
2. in den jeweiligen neuen TXT Files den Umbruch erzeugen
Sollte das Problem nicht ausführlich genug beschrieben wurde kann hier eine org. Datei mit 6 Datensätzen zur Verfügung stellen..
Ich hoffe es kann mir hier jemand weiter helfen.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 146778
Url: https://administrator.de/contentid/146778
Ausgedruckt am: 25.11.2024 um 11:11 Uhr
39 Kommentare
Neuester Kommentar
Mal kurz angerissen wie es funktioniert:
Manuel
- Datei per Script zeilenweise einlesen
- In jeder eingelesenen Zeile prüfen ob die ersten beiden Zeichen IM lauten
- Wenn ja, dann Zeile anhand Trennzeichen | in ein Array splitten
- Aus den einzelnen Werten des Arrays den Dateinamen und die Dateiinhalte generieren
- Neue Datei schreiben
- nächste Zeile einlesen bis EOF
- Fertig
Manuel
Hi Intermde,
wie Du zwar bei der 2. Datei auf IM5464645 TestB.txt kommst kann ich nicht nachmachen
zur Zeit ist das Auswahlkriterium des Hinteren Namenteiles, dass es in der selben Zeile, welche mit IM beginnen, ist und dahinter noch ein | zu finden ist.
das ganze könnte in etwa so gehen:
Bitte erst mit Testdaten ausprobieren!
Gruß Phil
wie Du zwar bei der 2. Datei auf IM5464645 TestB.txt kommst kann ich nicht nachmachen
zur Zeit ist das Auswahlkriterium des Hinteren Namenteiles, dass es in der selben Zeile, welche mit IM beginnen, ist und dahinter noch ein | zu finden ist.
das ganze könnte in etwa so gehen:
Bitte erst mit Testdaten ausprobieren!
@echo off& setlocal
set "InPut=testfile.txt"
set "Pfad=D:\AdminHelp"
PushD "%Pfad%"
type nul>"%temp%\tmp"
for /f "usebackq tokens=*" %%i in ("%InPut%") do (set "Line=%%i"
call :Line
)
move "%temp%\tmp" "%Pfad%\%File% %Post%.txt" 2>nul
pause
goto :eof
:Line
if "IM%Line:*IM=%" == "%Line%" set "x=1"
:Split
if "%Line:*|=%" == "%Line%" (set "y=1"&goto :Write)
set "y="
set "Linepost=%Line:*|=%"
call set "Line=%%Line:%Linepost%=%%"
set "Line=%Line:|=%"
for /f %%i in ("%Line%") do set "Test=%%i"
if /i "Test%Test:*Test=%" == "%Test%" set "Post=%Test%"
:write
for /f "tokens=*" %%i in ("%Line%") do (
if defined x (set "File=%%i"
set "x="
move "%temp%\tmp" "%Pfad%\%File% %Post%.txt" 2>nul
)
echo %%i>>"%temp%\tmp"
)
set "Line=%LinePost%"
if not defined y goto :Split
Gruß Phil
Moin Intermde,
das liegt dann daran, dass in Zeile 13; 15 und 21 nur Variablen mit Umgebenden % Prozentzeichen im IF sofort beim auslesen der Zeile Aufgelöst werden.
wenn in diesen Variablen dann " Anführungszeichen enthalten sind - beeinflussen diese auch den IF - Vergleich -> und die Zeile wird zum Syntaktischen Fehler für die CMD.
das Ganze Umgehst Du, wenn die Variable entweder
(Zeile 05 angepasst)
Passt es denn mit der NachnamensErstellung?
Gruß Phil
das liegt dann daran, dass in Zeile 13; 15 und 21 nur Variablen mit Umgebenden % Prozentzeichen im IF sofort beim auslesen der Zeile Aufgelöst werden.
wenn in diesen Variablen dann " Anführungszeichen enthalten sind - beeinflussen diese auch den IF - Vergleich -> und die Zeile wird zum Syntaktischen Fehler für die CMD.
das Ganze Umgehst Du, wenn die Variable entweder
- mit Setlocal EnableDelayedExpansion und dem Umgebenden ! Ausrufezeichen im IF Vergleich Aufgelöst werden - oder
- Die Anzuzeigenden Variablen in jeweils eine ForSchleife packst und die Dynamischen (oder auch LaufVariablen genannt) in den IF - Vergleich packst.
(Zeile 05 angepasst)
@echo off& setlocal
set "InPut=testfile.txt"
set "Pfad=D:\AdminHelp"
PushD "%Pfad%"
del /q "%temp%\tmp" 2>nul
for /f "usebackq tokens=*" %%i in ("%InPut%") do (set "Line=%%i"
call :Line
)
move "%temp%\tmp" "%Pfad%\%File% %Post%.txt" 2>nul
pause
goto :eof
:Line
for /f "tokens=*" %%i in ("IM%Line:*IM=%") do for /f "tokens=*" %%j in ("%Line%") do if "%%i" == "%%j" set "x=1"
:Split
for /f "tokens=*" %%i in ("%Line:*|=%") do for /f "tokens=*" %%j in ("%Line%") do if "%%i" == "%%j" (set "y=1"&goto :Write)
set "y="
set "Linepost=%Line:*|=%"
call set "Line=%%Line:%Linepost%=%%"
set "Line=%Line:|=%"
for /f %%i in ("%Line:"=%") do set "Test=%%i"
for /f "tokens=*" %%i in ("Test%Test:*Test=%") do for /f "tokens=*" %%j in ("%Test%") do if /i "%%i" == "%%j" set "Post=%Test%"
:write
for /f "tokens=*" %%i in ("%Line%") do (
if defined x (set "File=%Line:"=%"
set "x="
move "%temp%\tmp" "%Pfad%\%File% %Post%.txt" 2>nul
)
echo %%i>>"%temp%\tmp"
)
set "Line=%LinePost%"
if not defined y goto :Split
Passt es denn mit der NachnamensErstellung?
Gruß Phil
na sowas FM's
sind sicher Klammern oder AnführungsZeichen schuld.
dann breiten wir dies mal ein bisschen auseinander.
wenn jetzt noch eine Datei nicht erzeugt wird und der Inhalt in einer anderen stehen sollte, dann sind die Zeichen / \ : * ? | > <, welche nicht in den Namen einer Datei oder eines Ordners gehören, im neuen Dateinamen vorhanden.
Gruß Phil
sind sicher Klammern oder AnführungsZeichen schuld.
dann breiten wir dies mal ein bisschen auseinander.
@echo off& setlocal
set "InPut=testfile.txt"
set "Pfad=D:\Adminhelp"
PushD "%Pfad%"
del /q "%temp%\tmp" 2>nul
for /f "usebackq tokens=*" %%i in ("%InPut%") do (
set "Line=%%i"
call :Line
)
move "%temp%\tmp" "%Pfad%\%File% %Post%.txt" 2>nul
pause
goto :eof
:Line
for /f "tokens=*" %%i in (
"IM%Line:*IM=%"
) do for /f "tokens=*" %%j in (
"%Line%"
) do if "%%i" == "%%j" set "x=1"
:Split
for /f "tokens=*" %%i in (
"%Line:*|=%"
) do for /f "tokens=*" %%j in (
"%Line%"
) do if "%%i" == "%%j" (set "y=1"&goto :Write)
set "y="
set "Linepost=%Line:*|=%"
call set "Line=%%Line:%Linepost%=%%"
set "Line=%Line:|=%"
for /f %%i in (
"%Line:"=%"
) do set "Test=%%i"
for /f "tokens=*" %%i in (
"Test%Test:*Test=%"
) do for /f "tokens=*" %%j in (
"%Test%"
) do if /i "%%i" == "%%j" set "Post=%Test%"
:write
for /f "tokens=*" %%i in (
"%Line%"
) do (
if defined x (
set "File=%Line:"=%"
set "x="
move "%temp%\tmp" "%Pfad%\%File% %Post%.txt" 2>nul
)
echo %%i>>"%temp%\tmp"
)
set "Line=%LinePost%"
if not defined y goto :Split
wenn jetzt noch eine Datei nicht erzeugt wird und der Inhalt in einer anderen stehen sollte, dann sind die Zeichen / \ : * ? | > <, welche nicht in den Namen einer Datei oder eines Ordners gehören, im neuen Dateinamen vorhanden.
Gruß Phil
PS VBS hab ich selber noch nicht auf dem Rechner installiert
muss nicht installiert werden. Ist ein "Boardmittel" von MS.Du trägst das Schnipsel einfach in ein "txt"-file ein und benennst es "hinten" in "vbs" um.
Dann nur noch doppelklicken.
Aber ich denke, ihr seid in Batch schon so weit, dass eine Überlegung in VBS (VisualBasicScript)
nur (eventuell) unnötig wäre. Aber meine Idee war nur die, dass eventuell jemand anderes, der diesen Thread liest, eventuell mit VBS etwas ähnliches lösen möchte.
Gruss
Tsuki
eventuell hätte ich einen Vorschlag in VBS:
Deine Datei ist ungefähr so aufgebaut: (habe unter "C:\" Eine Datei mit dem Namen "Stop.txt" angelegt und folgende Einträge eingefügt)
Dann kopiere dir mal zum Testen folgenden Code in VBS:
Ist es so in etwa, was du meinst?
Gruss
Tsuki
Deine Datei ist ungefähr so aufgebaut: (habe unter "C:\" Eine Datei mit dem Namen "Stop.txt" angelegt und folgende Einträge eingefügt)
IM12345678
1
2
3
STOP
IM87654321
Ä
Ö
Ü
STOP
IM12345678
a
s
d
f
g
h
Stop
usw.1
2
3
STOP
IM87654321
Ä
Ö
Ü
STOP
IM12345678
a
s
d
f
g
h
Stop
Dann kopiere dir mal zum Testen folgenden Code in VBS:
MeineDatei = "C:\Stop.txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
MyText = Split(FSO.OpenTextFile(MeineDatei, 1).ReadAll,vbCrLF & "IM")
msgbox Mytext(0)
for i = 1 to Ubound(MyText)
msgbox "IM" & Mytext(i)
Next
Ist es so in etwa, was du meinst?
Gruss
Tsuki
na eventuell so:
Wäre dir das recht?
Gruss
Tsuki
MeineDatei = "C:\Stop.txt"
Set FSO = CreateObject("Scripting.FileSystemObject")
MyText = Split(FSO.OpenTextFile(MeineDatei, 1).ReadAll,vbCrLF & "IM")
Set MyFile = FSO.CreateTextFile("c:\" & Left(Mytext(0),10) & ".txt" , true)
MyFile.WriteLine (Mytext(0))
MyFile.Close
for i = 1 to Ubound(MyText)
on error resume next
Set MyFile = FSO.CreateTextFile("c:\IM" & Left(Mytext(i),8) & ".txt" , true)
MyFile.WriteLine (Mytext(i))
MyFile.Close
Next
Wäre dir das recht?
Gruss
Tsuki
Hallo Tsuki!
Auf ganz speziellen Wunsch :
"
Das zweite "
Falls übrigens am Ende der einzelnen Dateien eine Zeilenschaltung gewünscht wäre, "
Grüße
bastla
... und übrigens : ein leicht verspätetes "Willkommen im Forum, intermde"!
Auf ganz speziellen Wunsch :
"
Split()
" wäre auch meine Wahl, allerdings würde ich die eigens eingefügte Markierung "STOP*" zum Aufteilen verwenden:MeineDatei = "C:\Stop.txt"
Marke = "STOP*" 'Blockende-Markierung
Ziel = "C:\" 'Zielordner für die zu erstellenden Einzeldateien
If Right(Ziel, 1) <> "\" Then Ziel = Ziel & "\" 'Sicher stellen, dass Zielpfad mit "\" endet
Set FSO = CreateObject("Scripting.FileSystemObject")
MyText = Split(FSO.OpenTextFile(MeineDatei, 1).ReadAll, Marke)
For i = 0 To Ubound(MyText)
If Left(MyText(i) = vbCrLf Then MyText(i) = Mid(MyText(i), 3) 'keine Zeilenschaltung am Anfang des Blocks zulassen
If Len(MyText(i)) > 10 Then FSO.CreateTextFile(Ziel & Left(Mytext(i),10) & ".txt").Write MyText(i) 'Block nur verarbeiten, wenn mehr als 10 Zeichen lang
Next
If
" soll sicherstellen, dass keine zu kurzen Blöcke (vor allem nach der letzen Marke) berücksichtigt werden - scheint mir vorteilhafter als "On Error Resume Next
" ...Falls übrigens am Ende der einzelnen Dateien eine Zeilenschaltung gewünscht wäre, "
WriteLine
" anstelle von "Write
" verwenden.Grüße
bastla
... und übrigens : ein leicht verspätetes "Willkommen im Forum, intermde"!
Hallo intermde
in Zeile 10 fehlt eine Klammer. Erstze sie wie folgt:
für deine 2te Anforderung ginge eventuell nach Zeile 9 (bastlas Script!)
und dann die Zeile 11 eventuell so barbeiten:
Bitte mal testen und bastla wird uns eh sagen, was ich falsch gemacht habe
Gruss
Tsuki
in Zeile 10 fehlt eine Klammer. Erstze sie wie folgt:
If Left(MyText(i)) = vbCrLf Then MyText(i) = Mid(MyText(i), 3) 'keine Zeilenschaltung am Anfang des Blocks zulassen
für deine 2te Anforderung ginge eventuell nach Zeile 9 (bastlas Script!)
temp = Split(MyText(i), vbCrlf)
und dann die Zeile 11 eventuell so barbeiten:
If Len(MyText(i)) > 10 Then FSO.CreateTextFile(Ziel & Left(Mytext(i),10) & temp(2) & ".txt").Write MyText(i) 'Block nur verarbeiten, wenn mehr als 10 Zeichen lang
Bitte mal testen und bastla wird uns eh sagen, was ich falsch gemacht habe
Gruss
Tsuki
Hi bastla
Ehr als Tastaturproblem.
Viele Grüße
Tsuki
Eigentlich habe bisher nur ich etwas falsch gemacht - danke für die Korrektur.
Na, na, na! Ich habe jede Menge von dir hier gelernt. Und als Fehler würde ich die fehlende Klammer nicht ansehen.Ehr als Tastaturproblem.
Deine Ergänzung sollte so funktionieren - Du könntest vielleicht mit einer Überprüfung von "UBound(temp)" noch
sicherstellen, dass es auch tatsächlich eine Zeile 3 gibt ...
Das ist ein sehr guter Hinweis.sicherstellen, dass es auch tatsächlich eine Zeile 3 gibt ...
Viele Grüße
Tsuki
na ich würd's dann eventuell so mal probieren:
nochmals drüber schauen, bitte!
Gruss
Tsuki
MeineDatei = "C:\Stop.txt"
Marke = "STOP*" 'Blockende-Markierung
Ziel = "C:\" 'Zielordner für die zu erstellenden Einzeldateien
If Right(Ziel, 1) <> "\" Then Ziel = Ziel & "\" 'Sicher stellen, dass Zielpfad mit "\" endet
Set FSO = CreateObject("Scripting.FileSystemObject")
MyText = Split(FSO.OpenTextFile(MeineDatei, 1).ReadAll, Marke)
For i = 0 To Ubound(MyText)
temp = Split(MyText(i), vbCrlf)
If Left(MyText(i)) = vbCrLf Then MyText(i) = Mid(MyText(i), 3) 'keine Zeilenschaltung am Anfang des Blocks zulassen
If Len(MyText(i)) > 10 Then
If UBound(temp) > 2 then
FSO.CreateTextFile(Ziel & Left(Mytext(i),10) & temp(2) & ".txt").Write MyText(i)
Else
FSO.CreateTextFile(Ziel & Left(Mytext(i),10) & ".txt").Write MyText(i)
End If
End If
Next
nochmals drüber schauen, bitte!
Gruss
Tsuki
Hallo intermde!
Das wäre vor allem dann der Fall, wenn in den anderen Blöcken keine Zeile 3 existiert oder diese leer ist ...
Könntest Du ein (bei Bedarf anonymisiertes) Beispiel des aktuellen Standes der Ausgangsdatei bzw der ersten zB 5 Blöcke davon (unter Verwendung von "<code>"- und "</code>"-Tags) posten?
Grüße
bastla
Das wäre vor allem dann der Fall, wenn in den anderen Blöcken keine Zeile 3 existiert oder diese leer ist ...
Könntest Du ein (bei Bedarf anonymisiertes) Beispiel des aktuellen Standes der Ausgangsdatei bzw der ersten zB 5 Blöcke davon (unter Verwendung von "<code>"- und "</code>"-Tags) posten?
Grüße
bastla
Hallo intermde!
Durch Vertauschen der Zeilen 10 und 11 sieht das Script jetzt so aus:
und sollte auch funktionieren - allerdings nicht mit Deinen Beispieldaten, da in der Zeile 3 des zweiten Blocks ein ":" und damit ein für Dateinamen nicht erlaubtes Zeichen (weitere wären:
Wie realistisch ist diese Möglichkeit bei "Echtdaten", und was soll ggf in diesem Fall passieren?
Grüße
bastla
Durch Vertauschen der Zeilen 10 und 11 sieht das Script jetzt so aus:
MeineDatei = "C:\Stop.txt"
Marke = "STOP*" 'Blockende-Markierung
Ziel = "C:\" 'Zielordner für die zu erstellenden Einzeldateien
If Right(Ziel, 1) <> "\" Then Ziel = Ziel & "\" 'Sicher stellen, dass Zielpfad mit "\" endet
Set FSO = CreateObject("Scripting.FileSystemObject")
MyText = Split(FSO.OpenTextFile(MeineDatei, 1).ReadAll, Marke)
For i = 0 To Ubound(MyText)
If Left(MyText(i), 2) = vbCrLf Then MyText(i) = Mid(MyText(i), 3) 'keine Zeilenschaltung am Anfang des Blocks zulassen
temp = Split(MyText(i), vbCrlf)
If Len(MyText(i)) > 10 Then
If UBound(temp) > 2 Then
FSO.CreateTextFile(Ziel & Left(Mytext(i),10) & temp(2) & ".txt").Write MyText(i)
Else
FSO.CreateTextFile(Ziel & Left(Mytext(i),10) & ".txt").Write MyText(i)
End If
End If
Next
"*?\/<|>
) enthalten ist ...Wie realistisch ist diese Möglichkeit bei "Echtdaten", und was soll ggf in diesem Fall passieren?
Grüße
bastla
Hallo intermde!
Grüße
bastla
... aus der dritten Zeile alle Sonderzeichen heraus zu nehmen. z.b. durch ein " " ersetzen ...
... wäre auch mein Vorschlag, allerdings Ersetzung nur für den Dateinamen, nicht im Dateiinhalt:MeineDatei = "C:\Stop.txt"
Marke = "STOP*" 'Blockende-Markierung
Ziel = "C:\" 'Zielordner für die zu erstellenden Einzeldateien
DieNicht = ":*?\/<|>""" 'in Dateinamen nicht zulässige Zeichen
If Right(Ziel, 1) <> "\" Then Ziel = Ziel & "\" 'Sicher stellen, dass Zielpfad mit "\" endet
Set FSO = CreateObject("Scripting.FileSystemObject")
MyText = Split(FSO.OpenTextFile(MeineDatei, 1).ReadAll, Marke)
For i = 0 To Ubound(MyText)
If Left(MyText(i), 2) = vbCrLf Then MyText(i) = Mid(MyText(i), 3) 'keine Zeilenschaltung am Anfang des Blocks zulassen
If Len(MyText(i)) > 10 Then
temp = Split(MyText(i), vbCrlf) 'Block in Zeilen-Array "temp" zerlegen
If UBound(temp) >= 2 Then 'mindestens 3 Zeilen vorhanden?
N = temp(2) 'Dateinamen um Inhalt der Zeile 3 erweitern, ...
For a = 1 To Len(DieNicht)
N = Replace(N, Mid(DieNicht, a, 1), " ") '... vorweg aber unzulässige Zeichen durch Blank ersetzen
Next
FSO.CreateTextFile(Ziel & Left(Mytext(i),10) & N & ".txt").Write MyText(i) 'Block mit erweitertem Dateinamen schreiben
Else
FSO.CreateTextFile(Ziel & Left(Mytext(i),10) & ".txt").Write MyText(i) 'Block nur mit "IM########" als Dateinamen schreiben
End If
End If
Next
bastla