Teile aus TXT File kopieren ==> kleine Frage noch!
Teile aus TXT File kopieren ==> kleine Frage noch!
Hallo Zusammen
Leider bin ich noch nicht ein erfahrener User im Umgang mit Pure Basic, habe daher eine kleine Frage und hoffe das Ihr mir helfen könnt.
Ich würde gerne eine Kommandozeilenerweiterung schreiben, mit der es möglich ist gewisse Inhalte eines TXT Files zu kopieren und in ein weiteres TXT einzufügen. Soll heissen, ein TXT File beinhaltet in mehreren Zeilen das Wort "xyz", mein Programm sollte nun alle Zeilen erkennen in denen "xyz" steht, und diese Zeite in ein weiteres TXT File kopieren. Ist dies schwer machbar? Dank und Gruss Phil
Leider bin ich noch nicht ein erfahrener User im Umgang mit Pure Basic, habe daher eine kleine Frage und hoffe das Ihr mir helfen könnt.
Ich würde gerne eine Kommandozeilenerweiterung schreiben, mit der es möglich ist gewisse Inhalte eines TXT Files zu kopieren und in ein weiteres TXT einzufügen. Soll heissen, ein TXT File beinhaltet in mehreren Zeilen das Wort "xyz", mein Programm sollte nun alle Zeilen erkennen in denen "xyz" steht, und diese Zeite in ein weiteres TXT File kopieren. Ist dies schwer machbar? Dank und Gruss Phil
Zuletzt geändert von Zero_Cool am 22.12.2005 00:21, insgesamt 2-mal geändert.
Re: Kommandozeilen - Automatisch Teile aus TXT File kopieren
> Ist dies schwer machbar?
nöh, ist relativ einfach. Nachfolgender Code sollte das bewerkstelligen
können (ungeprüft):
Grüße ... Kiffi
nöh, ist relativ einfach. Nachfolgender Code sollte das bewerkstelligen
können (ungeprüft):
Code: Alles auswählen
QuellDatei$ = "c:\blabla.txt"
ZielDatei$ = "c:\blublu.txt"
GesuchteZeichenfolge$ = "xyz"
FF_Quelle = ReadFile(#PB_Any,QuellDatei$)
If FF_Quelle
FF_Ziel = CreateFile(#PB_Any,ZielDatei$)
If FF_Ziel
While Eof(FF_Quelle) = 0
GeleseneZeile$=ReadString()
If FindString(GeleseneZeile$, GesuchteZeichenfolge$, 1)
UseFile(FF_Ziel)
WriteStringN(GeleseneZeile$)
UseFile(FF_Quelle)
EndIf
Wend
CloseFile(FF_Ziel)
Else
; Ausgabe: Zieldatei konnte nicht erstellt werden
EndIf
CloseFile(FF_Quelle)
Else
; Ausgabe: Quelldatei konnte nicht geöffnet werden
EndIf
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Peter Du bist zu schnell
geprüft, fast dasselbe

geprüft, fast dasselbe

Code: Alles auswählen
File1 = ReadFile(#PB_Any, "xyz.txt")
If File1
File2 = CreateFile(#PB_Any, "abc.txt")
If File2
While Eof(File1) = #False
UseFile(File1)
Text$ = ReadString()
If FindString(Text$, "xyz", 1)
UseFile(File2)
WriteStringN(Text$)
EndIf
Wend
CloseFile(File1)
CloseFile(File2)
EndIf
EndIf
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Danke für die schnelle Hilfe. Habe das Programm kopiert, die txt Dateien erstellt, und eine exe kompiliert. In der Blabla.txt habe ich mehrere Zeilen mit "xyz" eingefügt, wenn ich jedoch das Programm laufen lasse, passiert in der zweiten Datei nicht's. Das Programm beendet sich auch nicht. Was ich was vergessen zu beachten?
EDIT: Habe nix gesagt, war ein kleiner Fehler meinerseits! Wow, das ging sehr schnell! Vielen Dank für die Hilfe! Funktioniert wunderbar?
Eine kleine Frage noch, kann ich irgendwie definieren das er nur gewisse Teile der Zeile Kopiert. Zum Beispiel, soll er alle Zeilen mit xyz kopieren, die Zeichen xyz im zweiten Dokument jedoch weg lassen?
EDIT: Habe nix gesagt, war ein kleiner Fehler meinerseits! Wow, das ging sehr schnell! Vielen Dank für die Hilfe! Funktioniert wunderbar?
Eine kleine Frage noch, kann ich irgendwie definieren das er nur gewisse Teile der Zeile Kopiert. Zum Beispiel, soll er alle Zeilen mit xyz kopieren, die Zeichen xyz im zweiten Dokument jedoch weg lassen?
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
>> Was ich was vergessen zu beachten?
Glaskugel kaputt
Hab den Source getestet, und xyz wurde in Zeile 9 gefunden
Glaskugel kaputt

Hab den Source getestet, und xyz wurde in Zeile 9 gefunden

PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

> Zum Beispiel, soll er alle Zeilen mit xyz kopieren, die Zeichen xyz im
> zweiten Dokument jedoch weg lassen?
ja, dafür gibt's ReplaceString() oder aber Mid().
oder
alles weitere zu diesen Befehlen in der Hilfe.
Grüße ... Kiffi
> zweiten Dokument jedoch weg lassen?
ja, dafür gibt's ReplaceString() oder aber Mid().
Code: Alles auswählen
myString$="abcdef"
myString$=ReplaceString(myString$, "abc", "")
Debug myString$
Code: Alles auswählen
myString$="abcdef"
myString$= Mid(myString$, 4, Len(myString$)-3)
Debug myString$
Grüße ... Kiffi
Code: Alles auswählen
type blabla.txt |find "xyz" > xyz.txt
PB 4.02 XP Pro SP2 "Der Code ist willig, aber der Prozessor ist schwach."
Es gibt keine Vista-Witze. Es ist alles wahr!
Es gibt keine Vista-Witze. Es ist alles wahr!
danke für den Hinweis. Wusste ich noch nicht, dass das auch so funktioniert.stbi hat geschrieben:Code: Alles auswählen
type blabla.txt |find "xyz" > xyz.txt
Aber ich denke, dass diese Funktionalität nur ein Teil dessen ist, was
Zero_Cool letztendlich machen möchte.
Grüße ... Kiffi
Ich versuche Seit 2 Stunden folgenden Code abzuändern.
Könnte mir jemand einen kleinen Tipp geben?
Wie kann ich den Code so abändern, das genau das umgekehrte passiert? Alle Zeilen die das Wort "XYZ" NICHT beinhalten werden in die neue Datei geschrieben?File1 = ReadFile(#PB_Any, "xyz.txt")
If File1
File2 = CreateFile(#PB_Any, "abc.txt")
If File2
While Eof(File1) = #False
UseFile(File1)
Text$ = ReadString()
If FindString(Text$, "xyz", 1)
UseFile(File2)
WriteStringN(Text$)
EndIf
Wend
CloseFile(File1)
CloseFile(File2)
EndIf
EndIf
Könnte mir jemand einen kleinen Tipp geben?
Zuletzt geändert von Zero_Cool am 22.12.2005 00:33, insgesamt 3-mal geändert.