Seite 1 von 2
Bestimmte Zeilen aus mehreren Dateien in eine Date schreiben
Verfasst: 17.10.2006 23:09
von Nafets
Hallo,
ich möchte aus den Dateien eines Verzeichnisses alle Zeilen, die mit 'string1' beginnen in eine einzige neue Datei schreiben.
Ich sag schon mal danke für eure Hilfe.
Verfasst: 17.10.2006 23:13
von Frogger
Aha und wo genau brauchst du Hilfe?
Beim durchsuchen eines Ordners, Einlesen einer Datei, Speichern in eine andere oder ganz wo anders?
Wenn du wissen willst welche Zeile mit "string1" beginnt:
Re: Bestimmte Zeilen aus mehreren Dateien in eine Date schre
Verfasst: 17.10.2006 23:15
von Kiffi
> ich möchte aus den Dateien eines Verzeichnisses alle Zeilen, die mit
> 'string1' beginnen in eine einzige neue Datei schreiben.
Dateien kannst Du mit ReadFile() auslesen. Die darin enthaltenen Zeilen
kannst Du mit ReadString() ermitteln. Innerhalb eines Strings kann man mit
FindString() eine Zeichenkette suchen. Eine neue Datei kannst Du mit
CreateFile() erstellen. Dort hinein kann man mit WriteString() schreiben.
Grüße ... Kiffi
Verfasst: 18.10.2006 00:15
von stbi
da brauchts kein PB für, eine Zeile in der Shell genügt:

Verfasst: 18.10.2006 07:54
von Nafets
Danke für die prompten Antworten.
Ideal wäre, wenn das Programm alle Dateien in bestimmten Verzeichnissen (ohne Unterverzeichnis) nach Zeilen, die mit 'string1' beginnen durchsucht und diese in eine neue Datei schreibt.
Irgendwie klappt´s mit der Schleife bei mir nicht.
In PB will ich es schon machen, um ein bißchen Erfahrung zu sammeln.
Verfasst: 18.10.2006 08:47
von #NULL
ordner auswählen, zieldatei auswählen. dann werden alle zeilen in den dateien im ordner, welche mit "string1" beginnen, in der zieldatei gesammelt.
Code: Alles auswählen
Procedure gatherLines( path.s, file.s, search.s )
Protected line.s
If CreateFile(0, file)
If ExamineDirectory(1, path, "*.*")
While NextDirectoryEntry(1)
If ReadFile(2, path+DirectoryEntryName(1) )
While Not Eof(2)
line=ReadString(2)
If Left(line, Len(search)) = search
WriteStringN(0, line)
EndIf
Wend
CloseFile(2)
EndIf
Wend
FinishDirectory(1)
EndIf
CloseFile(0)
EndIf
EndProcedure
ordner.s=PathRequester("","")
zieldatei.s=SaveFileRequester("","sammelbox01.txt", "*.txt|*.*", 0)
suchen.s="string1"
gatherLines( ordner, zieldatei, suchen )
Verfasst: 18.10.2006 08:57
von Nafets
kurz und knackig...
Ich werd das mal für meine Bedürfnisse umsetzen.
Vielen Dank erst mal.
Re: Bestimmte Zeilen aus mehreren Dateien in eine Date schre
Verfasst: 18.10.2006 09:35
von Alves
Kiffi hat geschrieben:> ich möchte aus den Dateien eines Verzeichnisses alle Zeilen, die mit
> 'string1' beginnen in eine einzige neue Datei schreiben.
Dateien kannst Du mit ReadFile() auslesen. Die darin enthaltenen Zeilen
kannst Du mit ReadString() ermitteln. Innerhalb eines Strings kann man mit
FindString() eine Zeichenkette suchen. Eine neue Datei kannst Du mit
CreateFile() erstellen. Dort hinein kann man mit WriteString() schreiben.
Grüße ... Kiffi
Statt CreateFile() lieber mit OpenFile() testen, ob schon vorhanden.
Re: Bestimmte Zeilen aus mehreren Dateien in eine Date schre
Verfasst: 18.10.2006 09:43
von Kiffi
Alves hat geschrieben:Statt CreateFile() lieber mit OpenFile() testen, ob schon vorhanden.
Mit OpenFile kann man nicht testen, ob eine Datei bereits besteht. Das macht
man bevorzugterweise mit FileSize().
Grüße ... Kiffi
Verfasst: 18.10.2006 09:47
von Alves
Stimmt, verdammt. Hast Recht. Da will ich auch mal was Sinvolles schreiben, und dann schreibe ich wieder was Falsches.
