 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Xolios aka Ray

Anmeldungsdatum: 07.12.2004 Beiträge: 589 Wohnort: Wildeshausen
|
Verfasst am: 11.03.2005, 12:24 Titel: TXT Dateien Bearbeiten |
|
|
Hallo.
Mensch bin ich heute wieder schreibsüchtig.
Aber gut vor dem Start ins Wochenende
Dann habt ihr erst mal 2 Tage ruhe
Und montag gehts dann weiter
Nehmen wir mal an wir haben eine txt mit folgendem inhalt:
"Hallo"
"du"
"wurst"
"wie"
"heißt"
"du?"
Naja jetzt möchte ich per QB z.B. das
"wurst" entfernen und das das "wie" ein aufsteígt.
"Hallo"
"du"
"wie"
"heißt"
"du?"
Wie mache ich das?
Gruß
Ray _________________ www.ray-earth.de
Anm.: Neue ICQ |
|
Nach oben |
|
 |
Dusky_Joe

Anmeldungsdatum: 07.01.2005 Beiträge: 1007 Wohnort: Regensburg/Oberpfalz
|
Verfasst am: 11.03.2005, 12:53 Titel: |
|
|
Das geht leider sooo direkt nicht.
Am besten erstellst du einfach eine Temp-Datei, und kopierst sie dann zurück, aber eben ohne "wurst":
Code: |
'Temp-Pfad ermitteln
TempPath$ = ENVIRON$("TEMP")
OrigFileNum = FREEFILE
TempFileNum = FREEFILE
OPEN "Deine.TXT" FOR INPUT AS #OrigFileNum
OPEN "Temp.TXT" FOR OUTPUT AS #TempFileNum
DO
LINE INPUT #OrigFileNum, tmp$
PRINT #TempFileNum, tmp$
LOOP UNTIL EOF(OrigFileNum)
CLOSE #OrigFileNum, #TempFileNum
|
Kleiner Einschub:
Damit du einen Eintrag löschen kannst, musst du entweder die Nummer des Datensatzes (hier: die Zeile) wissen, oder genau den String.
Für die Datensatz-Alternative:
Code: |
...
OPEN "Deine.TXT" FOR OUTPUT AS #OrigFileNum
OPEN "Temp.TXT" FOR INPUT AS #TempFileNum
loeschen = 4
aktSatz = 1
DO
LINE INPUT #TempFileNum, tmp$
IF NOT(aktSatz = loeschen) THEN PRINT #OrigFileNum, tmp$
aktSatz = aktSatz + 1
LOOP UNTIL EOF(TempFileNum)
|
Und wenn du nur den String kennst, nicht aber seine Nummer:
Code: |
...
OPEN "Deine.TXT" FOR INPUT AS #OrigFileNum
OPEN "Temp.TXT" FOR OUTPUT AS #TempFileNum
loeschen$ = "wurst"
DO
LINE INPUT #TempFileNum, tmp$
IF NOT(tmp$ = loeschen$) THEN PRINT #OrigFileNum, tmp$
aktSatz = aktSatz + 1
LOOP UNTIL EOF(TempFileNum)
|
funktionieren Beide, sind bei solchen Dateien auch schnell genug. wenn du aber mal ne größere Datenbank hast, dann nimmst du besser so was her wie ISAM (ab QBX verfügbar), oder du versuchst es mit RANDOM/BINARY-Daten.
Viel Spaß damit!
Ciao _________________ fully biological degradable
Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet. |
|
Nach oben |
|
 |
stef
Anmeldungsdatum: 13.01.2005 Beiträge: 102
|
Verfasst am: 11.03.2005, 13:40 Titel: |
|
|
Solange die Datei nicht gerade riesig ist, würde ich einfach alle Datensetze in ein String-Array laden, die Datei mit KILL löschen und dann neu schreiben ohne "wurst" |
|
Nach oben |
|
 |
Xolios aka Ray

Anmeldungsdatum: 07.12.2004 Beiträge: 589 Wohnort: Wildeshausen
|
Verfasst am: 11.03.2005, 13:42 Titel: ... |
|
|
Hallo.
Dann schönen dank!
Gruß
Ray _________________ www.ray-earth.de
Anm.: Neue ICQ |
|
Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|