Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Vokabeltrainer (https://www.delphipraxis.net/57591-vokabeltrainer.html)

ELNeo 23. Nov 2005 20:14

Datenbank: kp • Version: 7 • Zugriff über: kp

Vokabeltrainer
 
Hallo!
Ich bin gerade dabei einen (simplen) Vokabeltrainer zu schreiben. Ich würde das gerne so handhaben: Die englische und deutsche Vokabel jeweils aus einem Edit-Feld zwischenspeichern und die gesammelten Vokabeln danach in einer Textdatei o.Ä. abspeichern. Jedoch habe ich leider keine Ahnung wie man so etwas bewerkstelligt. :wall:

PS: Tschuldigung wenn ich in der falschen Forumssparte bin, aber ich konnte mein Problem nicht eindeutig zuordnen. :angel2:

Schonmal DANKE im vorraus!

3_of_8 23. Nov 2005 20:28

Re: Vokabeltrainer
 
Sonstige Fragen zu Delphi wäre ganz gut gewesen. Das machst übrigens am besten mit Records:

Delphi-Quellcode:
type
TVocabulary=record
Englisch, German: String[20]
end;
...
Delphi-Quellcode:
var vocabularies: array of TVocabulary;

procedure StoreVocabulary(Vocabulary: TVocabulary);
begin
setlength(vocabularies,length(vocabularies+1));
vocabularies[high(vocabularies)]:=Vocabulary;
end;

procedure SaveVocabulariesToFile(Filename: String);
var f: file of TVocabulary;
    I: Cardinal;
    current: TVocabulary;
begin
assignfile(f,filename);
rewrite(f);
for I:=0 to high(vocabularies) do
begin
current:=vocabularies[i];
write(f,current);
end;
closefile(f);
end;
[edit=Sharky]Delphi-Tags für den zweiten Codeblock gesetzt. Mfg, Sharky[/edit]

TheAn00bis 23. Nov 2005 20:55

Re: Vokabeltrainer
 
Laut deinen Aussagen bist du zwar noch nicht so weit in Delphi, aber das Thema ist gut, um in die OOP einzusteigen.

Dabei würde ich eine Klasse TVokabelkasten und eine Klasse TVokabel erstellen. TVokabel hätte die Attribute "DeutscheBedetung" und "EnglischeBedetung".

TVokabelkasten würde die ganzen TVokabeln in einer ObjectList verwalten und hätte Methoden wie z.B. "FügeVokabelHinzu"(mit den Parametern für Deutsche und Englische Bedeutung) und "LöscheVokabel" (vielleicht über eine Nummer?) und "GibVokabel" (über Nummer, oder zufällig, oder nach irgendeinem System?). Diese wären allesamt leicht zu realisieren.

Ein kleines bischen Schwieriger wäre dann die Methode "SpeichereKasten" und "LadeKasten" von TVokabelkasten.
Hierbei würde ich Records nutzen.

Von deinem Formular aus würdest du dann nur noch das create des Kastens aufrufen und dann die Methoden wie "Lade", dann zum Ausgeben vll "GibVokabel", das könntest du dann z.B. in ein Edit schreiben.


Denk über die OOP-Variante nach, wird dir vieles einfacher machen! (auch wenn es am Anfang komplizierter wirken mag)

ELNeo 24. Nov 2005 20:51

Re: Vokabeltrainer
 
@ TheAn00bis: Hört sich für den Moment wirklich ZU kompliziert an :) Trotzdem DANKE!

@ 3_of_8: Es tauchen noch einige Fehler auf, die ich nicht beheben kann:

Delphi-Quellcode:
var vok:array of Tvokx;

procedure TForm1.Button1Click(Sender: TObject);
var vokx:Tvokx;
begin
 setlength(vok,length(vok+1)); //[Fehler] VokabeltrainerUnit.pas(61): Operator ist auf diesen Operandentyp nicht anwendbar
 vok[high(vok)]:=vokx;
end;

procedure TForm1.Speichern1Click(Sender: TObject);
var f:file of Tvokx
    i:cardinal; //[Fehler] VokabeltrainerUnit.pas(67): Ungültige Compileranweisung: 'i'
    current:Tvokx;
begin
 assignfile(f,'vokabeln');
 rewrite(f);
 for i:=0 to high(vok) do
 begin
  current:=vok[i];
  write(f,current);
 end;
 closefile(f);
end;
Wäre nett, wenn du dich nochmal kurz damit beschäftigen könntest :cry:

arbu man 24. Nov 2005 20:55

Re: Vokabeltrainer
 
Zu:
Delphi-Quellcode:
procedure TForm1.Speichern1Click(Sender: TObject);
var f:file of Tvokx
    i:cardinal; //[Fehler] VokabeltrainerUnit.pas(67): Ungültige Compileranweisung: 'i'
    current:Tvokx;
begin
Das
Delphi-Quellcode:
procedure TForm1.Speichern1Click(Sender: TObject);
var f:file of Tvokx;
    i:cardinal; //[Fehler] VokabeltrainerUnit.pas(67): Ungültige Compileranweisung: 'i'
    current:Tvokx;
begin
zu
Delphi-Quellcode:
setlength(vok,length(vok+1)); //[Fehler] VokabeltrainerUnit.pas(61): Operator ist auf diesen Operandentyp nicht anwendbar
das
Delphi-Quellcode:
setlength(vok,length(vok)+1); //[Fehler] VokabeltrainerUnit.pas(61): Operator ist auf diesen Operandentyp nicht anwendbar


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:01 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 by Thomas Breitkreuz