Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi E/A beim Textspeichern (https://www.delphipraxis.net/90161-e-beim-textspeichern.html)

moperswings 13. Apr 2007 12:16

Re: E/A beim Textspeichern
 
Wie es aussieht, fange ich mit dieser Lösung - bis jetzt - jeden Fall auf:

Delphi-Quellcode:
Memo1.Lines.Add('</p>');
Writeln(f, Memo1.Text);
closefile(f);

Memo1.Lines.LoadFromFile('d:\editor2\daten.html');
Memo1.Text := StringReplace(Memo1.Text, '

' + #13#10 + '</p>', '', [rfreplaceall]);
Memo1.Text := StringReplace(Memo1.Text, #13#10, '', [rfreplaceall]);
Memo1.Text := StringReplace(Memo1.Text, '

</p>', '', [rfreplaceall]);
umbruch := '</p>' + #13#10 + '

';
Memo1.Text := AnsiReplaceText(Memo1.Text, '</p>

', umbruch);
Memo1.Lines.SaveToFile('d:\editor2\daten.html');
Tschüss, moperswings

shmia 13. Apr 2007 12:36

Re: E/A beim Textspeichern
 
Zitat:

Zitat von moperswings
Ok, ich beschreibe das Problem! Vielleicht gibt es ja eine ganz andere Lösung!
Ich hab nen Memo mit einem

.

Ich verstehe dein Problem nicht so richtig.
Fangen wir mal so an:
Du hast ein TMemo völlig ohne HTML-Tags.
Der Benutzer gibt 3 Zeilen ein:
Zitat:

Zeile 1
Zeile 2 mit etwas mehr Text
Zeile 3
Dann drückt er auf "speichern".
Dein Programm schreibt nun folgendes:
Zitat:


Zeile 1</p>

Zeile 2 mit etwas mehr Text</p>

Zeile 3</p>
Nun möchte der Benutzer die Datei nochmals laden um noch etwas zu editieren.
Das Programm muss dann die Daten als String einlesen und alle Tags entfernen
und die ursprünglichen Zeilenumbrüche wiederherstellen.

Ist es das, was du erreichen möchtest?
Vorteil wäre, dass der Benutzer überhaupt nicht mit den HTML-Tags in Berührung kommt.
Das ganze Gedöns mit OnKeyDown kann man sich sparen.

Muetze1 13. Apr 2007 12:43

Re: E/A beim Textspeichern
 
@moperswings: Du hast dir die Fehlermeldungen schon durchgelesen und es liegt nicht daran? Dann mal kurz Schritt für Schritt:

1. Du öffnest zu Schreiben, schreibst was rein, schliesst die Datei wieder.
2. Du öffnest zum Lesen, liest was aus und danach schreibst in der Schleife in den selben Stream?

Du wunderst dich warum der Fehler 105 bei einem WriteLn() kommt? Und die Beschreibung zum Fehler 105 hilft dir nicht weiter?
Zitat:

Zitat von 105 Hilfe
Datei nicht für Ausgabe geöffnet

Ich wüsste nicht, wie deutlich man es noch hinschreiben sollte. Es steht alles da, es ist alles zusehen - du wurdest darauf hingewiesen und dir selber auch noch Hinweise auf das gegeben was du nicht siehst...

moperswings 13. Apr 2007 12:59

Re: E/A beim Textspeichern
 
@shima, ja so könnte es mal aussehen. Ich taste mich da halt langsam vor, damit ich mit dem Umgang mit Strings mehr Übung erlange.

@muetze: Ich habe - zugegeben - nach dem guten alten Trail and Error-Prinzip mit mehreren Filemodes
und Ein/Ausgaberoutinen gearbeitet, bin aber nicht weiter gekommen. Sonst hätte ich ja nicht gepostet!

Aber letztendlich habe ich es selber so hinbekommen, wie ich es im Moment brauche!
Bestimmt gibt es bessere Lösungen - ich bin für alles offen und dankbar!

Muetze1 14. Apr 2007 00:03

Re: E/A beim Textspeichern
 
Zitat:

Zitat von moperswings
Ich habe - zugegeben - nach dem guten alten Trail and Error-Prinzip mit mehreren Filemodes und Ein/Ausgaberoutinen gearbeitet, bin aber nicht weiter gekommen. Sonst hätte ich ja nicht gepostet!

Das Prinzip kenne ich nicht. Ich hatte früher öfters mal das try and error Prinzip...

FileMode ist nicht der Auslöser sondern die Wahl der Funktion zum Lesen bzw. Schreiben. Also die richtige Auswahl bei Reset, Append und Rewrite.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:21 Uhr.
Seite 2 von 2     12   

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