Ein txt Datei mittels Delphi erstellen

Alibaba258

Grünschnabel
Hallo liebe Community,

ich habe zur Zeit in der Schule das Thema Delphi und muss ein Projekt über die Ferien gestalten. Leider haben wir gerade erst die Grundkenntnisse erlernt und ich habe keine Ahnung wie ich dieses Projekt bewerkstelligen soll.


Ich schildere euch einfach mal das Projekt.

Also Delphi soll mir beim Drücken eines Buttons (soweit komme ich noch :) ) eine neue *.txt Datei erstellen. So das Sternchen soll durch einen Namen ersetzt werden, der vorher in einem "Edit" Feld festgelegt worden ist. Anschließend soll die txt Datei mit einem von mir festgelegten Text gefüllt werden. Und zum Schluss soll noch die Dateinamenendung von .txt auf .plr umgeändert werden.

So das war mein Projekt, hoffe ihr habt alles verstanden und könnt mir helfen

Wie gesagt ich bin wirklich ein kompletter Neuling in Delphi. Also wenn ihr mir helfen könnt und möchtet dann schmeißt mich bitte nicht mit Fachausdrücken zu:)

Dann bedanke ich mich schon mal im voraus für eure Hilfe.

Schöne Grüße
Alibaba258
 

CSANecromancer

Erfahrenes Mitglied
Hallo liebe Community,
...und ich habe keine Ahnung wie ich dieses Projekt bewerkstelligen soll.
Ein übliches Problem bei der Programmierung und bei Textaufgaben. :)
Ich gehe mal deinen weiteren Post durch und markiere die für mich relevanten Schlüsselwörter.

Ich schildere euch einfach mal das Projekt.

Also Delphi soll mir beim Drücken eines Buttons (soweit komme ich noch :) ) eine neue *.txt Datei erstellen. So das Sternchen soll durch einen Namen ersetzt werden, der vorher in einem "Edit" Feld festgelegt worden ist. Anschließend soll die txt Datei mit einem von mir festgelegten Text gefüllt werden. Und zum Schluss soll noch die Dateinamenendung von .txt auf .plr umgeändert werden.

Also sollst du ein Delphiprogramm erstellen. Das ist schon mal gut zu wissen.
Die Schlüsselwörter "Buttons" und "Edit Feld" signalisieren mir, daß es sich um eine Windows- und keine Konsolenanwendung handelt. Das bedeutet in logischer Folge, daß wir von einem Formular in Delphi sprechen.

Nochmal deinen Text durchgelesen komme ich auf folgende, vereinfachte Arbeitsschritte:
- Erstellen eines einfachen Delphiprogramms mit einem einzigen Formular. Evtl. mit "Datei|Projekt|Neu"
- Ablegen eines Buttons und eines Editfeldes auf das Formular.
- Code für das Drücken des Buttons hinterlegen, bzw. einen Prozedurenrumpf dafür anlegen.

Also bisher ist der Zeitaufwand keine 5 Minuten, wenn man sich damit etwas auskennt und du hast ja selbst gesagt, daß du soweit kein Problem hattest.

Jetzt kommt der "knifflige" Teil.
Das Stichwort ".txt-Datei" läßt mich schon mal aufhorchen und grübeln:

Was ist eine .txt-Datei?
Ich behaupte mal, eine Ansammlung von ASCII-Zeichen in beliebiger Reihenfolge in Spalten und Zeilen. Etwas ungenauer aber verständlicher ausgedrückt: Irgendein beliebiger Text.

Wie kann ich Text in Delphi bearbeiten?
Stichworte "String", "Array", etwas fortgeschrittener "TStrings".

Wie kann ich TStrings in Delphi verwenden?
Das läßt sich prima in der Hilfe zu Delphi oder online nachschlagen.

Also sehe ich an umzusetzenden Arbeitsschritten für dein Programm:
1. Reagieren auf das Klicken des Buttons.
2. Übertragen des Wertes aus dem Editfeld in ein TStrings.
3. Speichern des Inhalts des TStrings auf Festplatte als .txt.
4. Umbenennen des .txt direkt auf Festplatte in .plr

Als Tip kann ich dir raten, dir mal die Borlandhilfe zur Klasse TStrings richtig intensiv durchzulesen und wenn möglich im Internet nach Beispielen zu suchen. Da wirst du sicher etwas sehr Interessantes finden. :)
 

Alibaba258

Grünschnabel
Oke ich danke dir schon mal für dien Hilfe, jetzt weiß ich wenigstens womit das geht:)
Werd mich mal schlau lesen und berichten wenn es was neues gibt. ;)

Edit: Oh man wie ich diese Englischen Anleitungen hasse. :(

Schöne Grüße
Alibaba258
 
Zuletzt bearbeitet:

CSANecromancer

Erfahrenes Mitglied
Edit: Oh man wie ich diese Englischen Anleitungen hasse. :(
Immer positiv denken: So kannst du auch gleich nebenbei und gratis dein Englisch aufbessern. :D
Ach ja, auch wenn dir das mit TStrings vielleicht knifflig vorkommt, so hat es schon einen Grund, weswegen ich dich in diese Richtung verweise. "Vertrauen Sie mir, ich weiß, was ich mache." (c) Sledge Hammer
 
Zuletzt bearbeitet:

Alibaba258

Grünschnabel
So hab jetzt einen Lösungsweg gefunden.

Und zwar erstelle ich mir erst ein Memofeld, in welches ich dann meinen Text speichere.
Anschließend gebe ich meinem Button folgenden Befehl:

Code:
Memo1.Lines.SaveToFile('Datei.plr');

So jetzt zu meinem Problem(en)
1) Leider bleibt die Formatierung in dem Memo File nicht erhalten, sodass auch in der späteren Datei.plr die Formatierunf falsch ist. D.h. es sind keine Absatze oder ähnliches vorhanden.

2) Und das is das viel größere Problem soll die Datei in einem Ordner abgespeichert werden. Der Ordner wurde vorher per
Code:
MkDir ('Save\' + Edit1.Text);
erzeugt. Jetzt kommt das Problem. Ich muss der Anweisung
Code:
Memo1.Lines.SaveToFile('Datei.plr');
klar machen das sie die Datei in dem zuvor erstellten Ordner unter dem Namen des Edit Feldes erzeugt werden soll.

Ich hab schon verschiedene Möglichkeiten ausprobiert, aber ich bekomme immer wieder irgendwelche Fehlermeldungen beim Betätigen des Knopfes und das Programm stürzt ab.



Schöne Grüße
Alibaba258
 
Zuletzt bearbeitet:

CSANecromancer

Erfahrenes Mitglied
So hab jetzt einen Lösungsweg gefunden.
Und zwar erstelle ich mir erst ein Memofeld, in welches ich dann meinen Text speichere.
Kern des Memofelds ist TStrings ;).

Anschließend gebe ich meinem Button folgenden Befehl:

Code:
Memo1.Lines.SaveToFile('Datei.plr');
Wobei SaveToFile in TStrings definiert ist. :) Also rein theoretisch braucht es gar kein komplettes Memofeld, aber klar, damit geht's auch und ist für den Anfang wahrscheinlich auch einfacher, da es eine visuelle Komponente ist.

So jetzt zu meinem Problem(en)
1) Leider bleibt die Formatierung in dem Memo File nicht erhalten
Moment mal. In der ursprünglichen Aufgabenstellung war die Rede von von einer .txt-Datei und diese beinhaltet ASCII-Text, welcher standardmäßig immer unformatiert ist. Textformatierungen mit Absätzen, Schriftarten etc. gibt es beim RTF-Format oder bei Word, aber garantiert nicht bei .txt-Dateien.

Aber eine Lösung sollte evtl. relativ einfach sein, Stichwort TRichEdit.


2) Und das is das viel größere Problem soll die Datei in einem Ordner abgespeichert werden. Der Ordner wurde vorher per
Code:
MkDir ('Save\' + Edit1.Text);
erzeugt. Jetzt kommt das Problem. Ich muss der Anweisung
Code:
Memo1.Lines.SaveToFile('Datei.plr');
klar machen das sie die Datei in dem zuvor erstellten Ordner unter dem Namen des Edit Feldes erzeugt werden soll.

Ich hab schon verschiedene Möglichkeiten ausprobiert, aber ich bekomme immer wieder irgendwelche Fehlermeldungen beim Betätigen des Knopfes und das Programm stürzt ab.
Also zunächst einmal würde ich sagen, daß der Code
Code:
Memo1.Lines.SaveToFile('Save\' + Edit1.Text + '\Datei.plr');
zum Ergebnis führen sollte, zum anderen wären natürlich die Fehlermeldungen interessant, die dir der Compiler um die Ohren haut.
 

delbor

Grünschnabel
Hi Alibaba
Ich hab schon verschiedene Möglichkeiten ausprobiert, aber ich bekomme immer wieder irgendwelche Fehlermeldungen beim Betätigen des Knopfes und das Programm stürzt ab.
Deine Datei befindet sich wahrscheinlich im Windows-Verzeichnis - wahrscheinlich darum, weil Delphi eine Datei ohne Pfadangabe immer in Windows ablegt und ich doch davon ausgehe, dass dir dein Programm nicht immer abgestürzt ist. Und selbst, wenn dies der Fall wäre - wenn SavetoFile noch vor dem Absturz ausgeführt wird, ist die Datei da.

Gruss
Delbor