Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

TXT Dateien Bearbeiten

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Xolios
aka Ray


Anmeldungsdatum: 07.12.2004
Beiträge: 589
Wohnort: Wildeshausen

BeitragVerfasst am: 11.03.2005, 12:24    Titel: TXT Dateien Bearbeiten Antworten mit Zitat

Hallo.
Mensch bin ich heute wieder schreibsüchtig. grinsen
Aber gut vor dem Start ins Wochenende lächeln
Dann habt ihr erst mal 2 Tage ruhe zwinkern
Und montag gehts dann weiter happy

Nehmen wir mal an wir haben eine txt mit folgendem inhalt:

"Hallo"
"du"
"wurst"
"wie"
"heißt"
"du?"
lachen

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen Yahoo Messenger MSN Messenger
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 11.03.2005, 12:53    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
stef



Anmeldungsdatum: 13.01.2005
Beiträge: 102

BeitragVerfasst am: 11.03.2005, 13:40    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Xolios
aka Ray


Anmeldungsdatum: 07.12.2004
Beiträge: 589
Wohnort: Wildeshausen

BeitragVerfasst am: 11.03.2005, 13:42    Titel: ... Antworten mit Zitat

Hallo.

Dann schönen dank!

Gruß
Ray
_________________
www.ray-earth.de
Anm.: Neue ICQ
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen Yahoo Messenger MSN Messenger
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu QBasic. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
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.

 Impressum :: Datenschutz