Entwickler-Ecke
Dateizugriff - Einzelne Zeilen in Textdatei bearbeiten?
der_zaehe - Sa 11.06.05 15:50
Titel: Einzelne Zeilen in Textdatei bearbeiten?
jaa, hallo erstmal ...
gibt es eigentlich eine möglichkeit, mit einem textfile ganz bestimmte zeilen in einer datei zu suchen und diese zu überschreiben, zu ändern, zu löschen, ohne die ganz datei neu schreiben zu müssen?
danke schonmal im voraus.
mfg der_zaehe
Narses - Sa 11.06.05 15:55
Moin!
Wenn du die Anzahl der Zeichen nicht verändern willst, kannste doch einfach die Bytes austauschen.
Ansonsten führt kein Weg am Neuschreiben vorbei.
cu
Narses
retnyg - Sa 11.06.05 16:45
guck dir mal den befehl seek an
der_zaehe - Sa 11.06.05 18:25
seek war auch mein erster gedanke, hab dann aber leider feststellen müssen, das der nur bei untypisierten dateien funktioniert, nicht bei textdateien.
alias5000 - Sa 11.06.05 18:36
Also wenn du die Textfile per AssignFile und ReadLn in eine TStringList einließt kannst du damit machen was du willst :!:
retnyg - Sa 11.06.05 18:50
alias5000 hat folgendes geschrieben: |
| Also wenn du die Textfile per AssignFile und ReadLn in eine TStringList einließt kannst du damit machen was du willst :!: |
das ginge auch einfacher mit stringlist.loadfromfile - nur was soll das bringen ?
@der_zaehe: du kannst ja nen file of char verwenden, musst dann halt immer ein zeichen lesen bis zum #13#10
-> neue zeile
Heiko - Sa 11.06.05 18:54
Warum besteht eigentlich überhaupt der Zeilenumbruch aus 2 Bytes (also #13 und #10)? Würde nicht einer reichen?
alias5000 - Sa 11.06.05 18:59
@retnyg: Das ist so ein Problem bei manchen Textfiles, dass kein Zeilenabschlusszeichen (#13) gesetzt wird. Kommt zwar selten vor, war aber nur die sicherste Variante. Ist dieses Zeichen nicht vorhanden, klappts mit LoadfromFile halt net.
retnyg - Sa 11.06.05 19:00
#13 ist das CR - carriage return
#10 das LF - line feed
ist halt seit DOS-zeiten so üblich
retnyg - Sa 11.06.05 19:03
alias5000 hat folgendes geschrieben: |
| @retnyg: Das ist so ein Problem bei manchen Textfiles, dass kein Zeilenabschlusszeichen (#13) gesetzt wird. Kommt zwar selten vor, war aber nur die sicherste Variante. Ist dieses Zeichen nicht vorhanden, klappts mit LoadfromFile halt net. |
also afaik liest readln auch immer bis zum #13#10, bzw zum eof bei der letzten zeile
dass textdateien kein #13 zum zeilenabschluss verwenden, habe ich bislang noch nie gesehen ^^
der_zaehe - Sa 11.06.05 19:06
alias5000 hat folgendes geschrieben: |
| Also wenn du die Textfile per AssignFile und ReadLn in eine TStringList einließt kannst du damit machen was du willst :!: |
schon klar, ne? jedoch wollte ich gerade das vermeiden. der hintergrund bei der ganzen sache ist, das ich einen server für ein chat schreibe, der eine mischung aus icq und irc ist, d.h. jeder angemeldete benutzer hat eine benutzerliste. ich probiere das ganze so zu optimieren, das mehrere drölftausend benutzer gelichzeitig an einem server hängen können, ohne das der verreckt.
ist zwar utopisch, das sich da wirklich so viele anmelden, mir geht es jedoch mehr um die theorie als um den praktischen nutzen.
die datei erst mal in den arbeitsspeicher zu laden, bedeutet unnötig verbrauchte kapazitäten. deshalb will ich das nach möglichkeit vermeiden.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!