![]() |
Memo speichern
Liste der Anhänge anzeigen (Anzahl: 1)
Hey alle zusammen :)
ich habe ein Delphi Problem (oh Wunder :mrgreen: ) ich programmiere grad ein programm in dem man in eine memo einen text schreiben kann, der dann gespeichert wird wenn man auf einen button drückt, man kann diesen text auch wieder laden und zählen lassen wieviele Zeilen es gibt :P ich hab das ganze mal als datei angehängt wie weit ich schon gekommen bin... :) so jetzt zu meinem eigentlichen problem: es soll noch gefragt werden wo man die textdatei (memo) speichern will, sprich man soll den ordner usw auswählen können und mit dem laden soll das natürlich genauso sein :P mein lehrer meinte das geht mit dem befehl savedialog oder so etwas?! jedoch komme ich momentan nicht weiter.. es wäre super wenn ihr mir helfen könntet :) freundliche grüße... |
Re: Memo speichern
Grundsätzlich sieht das z.B. so aus:
Delphi-Quellcode:
// EDIT:
if SaveDialog1.Execute then
Memo1.Lines.SaveToFile(OpenDialog1.FileName); Das muss natürlich SaveDialog1.FileName heißen. |
Re: Memo speichern
Dann guck doch mal in der Komponentenpalette bei den Dialogen, was du da findest.
|
Re: Memo speichern
Das ist kein Befehl, sondern eine Komponente. Guck mal unter "Dialoge", da gibts TOpenDialog und TSaveDialog. Die kannst du einfach auf deinem Formular platzieren. Benutzen kannst du das dann so:
Delphi-Quellcode:
if OpenDialog1.Execute then
begin Memo1.Lines.Clear; DateiName := (OpenDialog1.Filename); Memo1.LoadFromFile(DateiName); end; |
Re: Memo speichern
ah okay das ist eine komponente, so komm ich der lösung schonmal näher :P trotzdem meckert er noch rum.. was ist denn dieses execute für ne eigenschaft?!
unser lehrer neigt dazu einfach nur sachen aus seinem buch abzuschreiben, schade das man so den unterricht kaputt machen kann :( könnte mir sonst jemand einfach mein programm soweit ergänzen? dann würde ich sehen wie das funktioniert :P danke schonmal für die rückmeldungen :) |
Re: Memo speichern
Meflin und jaenicke haben es doch schon wunderbar ergänzt. Ist sogar der fertige Code, musst nur noch die beiden Komponenten auf dein Formular ziehen und den Code per Copy&Paste einfügen
|
Re: Memo speichern
gut, und wofür steht das dateiname? bzw was muss ich da einsetzen? :P
danke schonmal :) |
Re: Memo speichern
Machs am einfachsten wie ich beim Speichern ganz oben, dann sind das auch nur zwei Zeilen.
|
Re: Memo speichern
Zitat:
Delphi-Quellcode:
Memo1.LoadFromFile(OpenDialog1.Filename);
|
Re: Memo speichern
okay danke, soweit alles gut nur jetzt bekomme ich ne fehler meldung
"undefinierter bezeichner: LoadFromFile" und "verwendete uni1 kann nicht complimiert werden" oder so, weiß jemand von euch wodran das liegt? :P sonst häng ich das ganze nochmal als anhang dran danke :) |
Re: Memo speichern
Zitat:
Delphi-Quellcode:
Memo1.Lines.LoadFromFile(..);
|
Re: Memo speichern
Zitat:
Ich meine, ok, der Quelltext ohne Lines war hier gepostet worden, aber beim Speichern stand Memo1.Lines.SaveToFile. Dass bei Memo1.LoadFromFile das Lines fehlt, könnte man eigentlich auch selbst erkennen. Außerdem gibts die Hilfe zu Delphi, wenn man den Punkt hinter Memo1 schreibt, kommen die möglichen Befehle, usw. ... Da kann man auch selbst schon ein wenig weiterkommen. An der Stelle empfehle ich auch mal den Crashkurs: ![]() ![]() |
Re: Memo speichern
ich probiere so viel eigeninitiative zu zeigen wie ich kann ;)
wir haben ab diesem jahr nur einen neuen informatik lehrer der es halt wie gesagt, so hab ich den eindruck, überhaupt nich drauf hab, ich mein er hat uns jetzt zum beispiel sowas hier aufgegeben und wir wussten noch nicht einmal das es diese dialoge als komponent gibt, wir hatten davor message dialog und da gab es ja keinen komponenten... auf dem thema mit den dialogen und so hab ich halt noch nicht sooviel erfahrung, wir haben bisher sehr viel mit canvas und timern usw gearbeitet... das mit dem lines geb ich zu, da hätt ich auch selber drauf kommen können, :p trotzdem danke an alle :) das einzige was jetzt noch nicht funktioniert ist folgendes: ich speicher das zum beispiel als "Test" ab, nur wenn ich es dann lade seh ich da zwar eine textdatei, aber die hat keinen namen... :p |
Re: Memo speichern
Zitat:
|
Re: Memo speichern
Wie, die hat keinen Namen? Du meinst, keine Endung, oder? Dann speicher sie doch einfach als <Pfad>\Text.txt ab.
|
Re: Memo speichern
Schau dir mal die Hilfe zu DefaultExt als Eigenschaft von TSaveDialog an. ;-)
|
Re: Memo speichern
Liste der Anhänge anzeigen (Anzahl: 1)
nein, ich hab nur nicht dran gedacht dass das eine variable ist weil vorher davon noch nicht die rede war...
warte ich häng dir nen screenshot an. auch werden mir beim speichern keine dateitypen angeboten, muss ich da vielleicht noch was hinzufügen um das zu optimieren? meinst du mit defaultExt zum beispiel sowas hier:
Delphi-Quellcode:
OpenDialog1.DefaultExt := '.txt';
|
Re: Memo speichern
Das stellst Du in der "Filter"-Eigenschaft des Dialogs ein.
|
Re: Memo speichern
Wie geht das denn? Irgendeinen Namen muss die Datei ja haben. Was hast du denn in den Speicherndialog als Name eingegeben und was steht in der Zeile mit SaveToFile drin? Das wie oben? Dann müsste es aber eigentlich klappen.
Und was die Typenanzeige angeht sehe ich schon hat DeddyH schon was geschrieben. |
Re: Memo speichern
das mit dem filter hab ich hinbekommen, danke :)
ich hab das genommen was auf der ersten seite des themas von dir und meflin geschrieben wurde .. |
Re: Memo speichern
Vielleicht postest Du nochmal hier den Code ab
Delphi-Quellcode:
damit wir das prüfen und Dich benoten ähh korrigieren können.
procedure TForm1.BitBtn1Click
|
Re: Memo speichern
Naja, aber dann wird exakt die Eingabe aus dem Dialog als Dateiname verwendet. Egal ob der Filter gesetzt ist, das ist nur nebenbei nett.
Klappt denn auch das Speichern jetzt richtig? |
Re: Memo speichern
klappt alles, und das programm schmiert ab wenn man zeichen wie " / \ * < > usw in der memo benutzt, aber ich denke das ist normal? :P
das einzige ist halt wie gesagt das der name unter dem ich das programm abspeichere nicht übernommen wird und die textdatei gar keinen namen hat wie man auf dem screen sieht :mrgreen:
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin IF SaveDialog1.Execute THEN begin Memo1.Lines.SaveToFile(OpenDialog1.FileName); end; end; procedure TForm1.BitBtn2Click(Sender: TObject); begin IF OpenDialog1.Execute THEN begin Memo1.Lines.Clear; Memo1.Lines.LoadFromFile(OpenDialog1.Filename); end; end; |
Re: Memo speichern
Zitat:
|
Re: Memo speichern
@DeddyH: Und vergleich mal mit dem was ich als allererstes geschrieben hatte... :wall: :wall: :wall:
Das war mein Fehler beim schnellen Schreiben, aber das liegt am einfach blind kopieren, dass du das nicht gemerkt hast. ;-) |
Re: Memo speichern
Nenn es einfach "Easteregg" :lol:
|
Re: Memo speichern
Er antwortet gar nicht mehr, hoffe er war nicht mit der letzten Version zufrieden?
Zudem könnte sein, das er nicht sieht, was offensichtlich ist:
Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
begin IF SaveDialog1.Execute THEN begin Memo1.Lines.SaveToFile({Open}SaveDialog1.FileName); end; |
Re: Memo speichern
nein ich bin nicht zufrieden, jetzt krieg ich fehlermeldungen manchmal beim abspeichern von wegen datei kann nicht erstellt werden..
ich steig da grad nicht mehr durch, weil eben ging so noch alles und jetzt gar nicht mehr oO trotzdem danke |
Re: Memo speichern
Na, dann schreib doch mal, wie die Fehlermeldung lautet.
Wir helfen doch weiter... |
Re: Memo speichern
hab nochmal rumprobiert jetzt geht alles einwandfrei :P
danke :) :) |
Re: Memo speichern
Vllt. noch interessant für dich...
Versuch doch mal deinen Buttons und Dialogen mal vernünftige Namen zu geben. ;) Das macht das ganze übersichtlicher und außerdem sieht es IMHO auch viel besser aus^^ z.B.: mEingabe für Memo1 oder sowas :) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:03 Uhr. |
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