Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi datei wird nach öffnen farbig makiert - Frage (https://www.delphipraxis.net/124511-datei-wird-nach-oeffnen-farbig-makiert-frage.html)

Zioone 20. Nov 2008 10:06


datei wird nach öffnen farbig makiert - Frage
 
HI^^, gleich am Anfang, das Problem hab ich gelöst, in dem Sinne gibt es also keins, würde nur gerne wissen warum das so ist, weil ich das nicht versteh.
Folges Problem HATTE ich:
- Opendialog öffet, datei auswählen
- schreibe in Stringlist zb "dateianfang" rein
- füge text von Opendialog und Stringlist zusammen
- speicher das ganze in eine Tempdatei
- lade dann direkt die Temp in mein Richedit
- danach wird überprüft ob ein vorher definiertes Schlüsselwort in der Stringlist vorkommt
- kommt es vor wird das ganze in der vorgegeben farbe makiert
- das ganze Funktionierte auch
- Prob war nur, wenn ich jetzt, egal welche und egal ob Schlüsselwort drin vorkommt oder nicht, immer Text KOMPLETT farbig makiert wurde
nach längerem (einer woche^^) probieren und verzweifeln, hab ich das Problem gefunden gehabt
und zwar ist die Tempdatei wohl schuld:
Delphi-Quellcode:
    ss := CreateTempFileName;
    FOriginal.SaveToFile(ss);
    rtfLines.Clear; //<-- fehlte
    rtfLines.Lines.LoadFromFile(ss);
    DeleteFile(ss);
Da einfach das reinladen der Stringliste sehhhhhhhhhhhhhhhhhhhhr langsam bei großen Dateien ist (warum auch immer), deswegen
speicher ich das ganze erst über eine Tempdatei und lade die in mein Richedit (rtfLines) rein.
Foriginal ist übrigens meine Stringliste.
Delphi-Quellcode:
rtfLines.Lines.LoadFromFile(ss);
in der Zeile hat er dann schon im Style bold drinne stehen gehabt und im Color die vorgegebene Farbe. Richedit steht aber auf Plaintext.
Nachdem ich das Clear reingemacht hatte funtkionierte alles Erwartungsgemäß.
Aber was ich einfach nicht versteh, warum braucht er das Clear und hat in der Zeile einfach das Style und Color übernommen obwohl ich es zu testzwecken vorher noch zurück gesetzt habe? Kann mir das vielleicht jemand sagen?
:gruebel:

Zioone 21. Nov 2008 10:01

Re: datei wird nach öffnen farbig makiert - Frage
 
Weißt das wirklich keiner oder hab ich mich wieder so unklar ausgedrückt das das Problem gar keiner versteht um die Frage zubeantworten?^^

oder vllt Bug von Delphi :shock: ?

SirThornberry 21. Nov 2008 10:15

Re: datei wird nach öffnen farbig makiert - Frage
 
Ich denk das Problem ist das du das ganze nicht eingegrenzt hast und alle Informationen (selbst die welche nicht mit dem Problem zu tun haben) mit postest. So ist es schwer zu verstehen wo nun eigentlich dein Problem lag (beim OpenDialog, bei der Stringlist, beim Speichern der Tempdatei etc.).

Wenn man das ganze noch einige mal liest und dann die unwichtigen Dingen raus lässt blickt man schneller durch:
Zitat:

- kommt es vor, wird das ganze in der vorgegeben farbe makiert
Da wäre interessant wie du das machst. Denn dort legst du wohl letztendlich die Farbe fest welche dich später stört?! Oder ist das eine andere Farbe die dich später stört?
Du siehst durch das ganze drumherum mit dem OpenDialog, der Stringlist etc. hast du vergessen das eigentilche Problem detailiert zu schildern :-)

[Edit]
Zitat:

- Prob war nur, wenn ich jetzt, egal welche und egal ob Schlüsselwort drin vorkommt oder nicht, immer Text KOMPLETT farbig makiert wurde
:wiejetzt:

Wenn das Laden einer Datei schneller ist als das einer Stringliste Stringliste machst du irgendwas falsch. Denn die Stringliste würdest du ja dann auch erst speichern und dann werden die Zeischen wieder aus einer Datei gelesen die auf der Festplatte liegt. Sprich, bei dir dauert das lesen aus dem Speicher länger als das lesen von der Festplatte in den Speicher und laden in das Richedit - da passt irgendwas nicht.

DeddyH 21. Nov 2008 10:17

Re: datei wird nach öffnen farbig makiert - Frage
 
Zitat:

Richedit steht aber auf Plaintext.
Das hat aber IIRC nichts mit der Darstellung zu tun, sondern nur mit der Speicherung (rtf <-> text).


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:47 Uhr.

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