Delphi-PRAXiS
Seite 4 von 4   « Erste     234   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Lesen, Schreiben und mehr in Textdateien - TFileStream, ...? (https://www.delphipraxis.net/56870-lesen-schreiben-und-mehr-textdateien-tfilestream.html)

mimi 3. Dez 2005 17:57

Re: Lesen, Schreiben und mehr in Textdateien - TFileStream,
 
@Totti
damit meine ich vor jeder zeiler schreibst du die größer dann kannst du schneller von zeile zu zeile zu springen d.h. wenn ich erst den zeilenumbruch suchen muss dauert es doch länger als wenn ich die länge schon vohrer weiß oder ?
da du die zeieln anzahl nicht veränderst ist dein vorhaben recht schnell mit TFileStream gelöst:
öffnest die datei springt zur geünwschten zeieln index bzw. suchst ihn oder wie auch immer.
ließs die zeile ein vergleichst sie evlt. dann ersetzt du diese zeile mit leerzeichen setzt die position wieder zurück und schreibst denn neuen innhalt wieder in die neue zeile mit zeieln anzahl !!!

Ist aber mit TFileStream ganz einfach mit etwas übung *G*

Totti 4. Dez 2005 10:16

Re: Lesen, Schreiben und mehr in Textdateien - TFileStream,
 
@marabu,
allein die Eigenschaften eines einzelnen Spielers nehmen mehr als 200 Zeilen und damit Eigenschaften ein, hinzukommen halt die Eigenschaften der ganzen Vereine, des Landes, der Trainer, der Nationalmannschaft, der Stadien ... etc


@mimi,
Würdest du also erst die Datei einlesen und in ne tmpDatei neuschrieben, wobei vor jeder Zeile deren Länge steht?
Anschließend diese tmpDatei dann zeilenweise einlesen und wiederum in eine neue Datei schreiben, wobei vor dem letzten Schreibvorgang die evtl. gewünschten Änderungen an der zwischengespeicherten Zeile vorgenommen würden?

mimi 4. Dez 2005 10:25

Re: Lesen, Schreiben und mehr in Textdateien - TFileStream,
 
wenn du die zeilanzahl nicht veränder brauchst du kein temp datei.
du kansnt einfach die aktuelle zeile mit leerzeichen fühllen(du hast ja die alte zeielnlänge)
und schreisbt zuerst die anzahl dann ein trenner z.b. der : und dann den eigetnlichen text.

du braucht wirklich keine datei neu zu erezugen das muss du nur machen wenn du die zeilenanzahl verändern möchtes. da du das nicht machst brauchst du auch keine neue Datei zu erzeugen !
z.b. so

Zitat:

40:Hallo die ist ein Text
30:dier Text soll 30 zeichen haben
4:Hier sind 4 zeichen drin
und soweiter
wenn du jetzt 40+30 rechnest hast du den zeilenanfang der 3 zeile....

ich hoffe das hat dir weiter geholfen wenn nicht. schreibe ich evlt. ein kleines beispiel !

Totti 4. Dez 2005 11:05

Re: Lesen, Schreiben und mehr in Textdateien - TFileStream,
 
Und was mach ich, wenn ich die Zeile verlängern muss?
Statt '203948029438' nen '7 ' rienzusetzen ist ja ohne großes verschieben gemacht, richtig.
Aber aus ner '7' ne '203948029438' machen?!?

danke

p.s.: das mit den zeilenlängennummerierungen habsch geblickt, glaubsch ;)

marabu 4. Dez 2005 11:30

Re: Lesen, Schreiben und mehr in Textdateien - TFileStream,
 
Moin.

Zitat:

Zitat von Totti
allein die Eigenschaften eines einzelnen Spielers nehmen mehr als 200 Zeilen und damit Eigenschaften ein, hinzukommen halt die Eigenschaften der ganzen Vereine, des Landes, der Trainer, der Nationalmannschaft, der Stadien ... etc

Das hat keinen direkten Einfluß auf die Komplexität - die erhöht sich nur durch Abhängigkeiten und Regeln. Aber wenn du glaubst, dass das Massieren der Textdatei ausreichend ist - wer bin ich, dass ich dir da widersprechen könnte.

Sonntagsgrüße vom marabu

tigerman33 4. Dez 2005 11:54

Re: Lesen, Schreiben und mehr in Textdateien - TFileStream,
 
@marabu:
Vielleicht kriegst du deine BNF, wie du nochmal kurz erklärst, wie sie funktioniert (die BNF, meine ich)... :wink:

@Totti:
Schöne Grüße nach Harrislee! Hab bis Juli selbst in Flensburg gewohnt.

mimi 4. Dez 2005 14:07

Re: Lesen, Schreiben und mehr in Textdateien - TFileStream,
 
@Totti
ganz einfach: du fühllst die geünschte zeile mit Leerzeichen und schreibst die neue zeieln länge + den neuen Text rein. mehr ist das in deinen fall garnicht !


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:47 Uhr.
Seite 4 von 4   « Erste     234   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz