Einzelnen Beitrag anzeigen

thejacensolo

Registriert seit: 11. Jun 2013
Ort: Frankfurt am Main
13 Beiträge
 
FreePascal / Lazarus
 
#15

AW: Eine lineare Liste an Strings als Datei speichern

  Alt 14. Nov 2013, 14:17
Hier die Unit mtvokabel:
Delphi-Quellcode:
UNIT mTVokabel;

interface

//-------------------- ggf Uses-Liste anpassen ! --------------------
uses Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ExtCtrls, ComCtrls, Menus;

type
  TVokabel = class

  public //Attribute
    Deutsch : string;
    Englisch : String;
    naechste : TVokabel;
    speicher : array of string;

     //Objektbeziehungen:

  public //Methoden
    constructor initVok (D: String; E: string); virtual;
    procedure SetzeEnglisch (pEnglisch: String); virtual;
    function GibEnglisch : String; virtual;

   end;

implementation

//+---------------------------------------------------------------------
//| TVokabel: Methodendefinition
//+---------------------------------------------------------------------

//-------- initVok (public) --------------------------------------------
constructor TVokabel.initVok (D: String; E: string);
begin
  Englisch := E;
  Naechste := nil; // Nil ist der Nullwert, dh ist noch nicht belegt.
  Deutsch := D;
end;

//-------- SetzeEnglisch (public) --------------------------------------
procedure TVokabel.SetzeEnglisch (pEnglisch: String);
begin
  Englisch := pEnglisch
end;

//-------- GibEnglisch (public) ----------------------------------------
function TVokabel.GibEnglisch : String;
begin
  result := Englisch
end;

end.

und meine HAuptunit
Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls,
  ExtCtrls, ComCtrls, Menus, mtListe, mTvokabel;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Button10: TButton;
    Button11: TButton;
    Button12: TButton;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    Button6: TButton;
    Button7: TButton;
    Button8: TButton;
    Button9: TButton;
    Edenglisch: TEdit;
    EDeutsch: TEdit;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    procedure Button10Click(Sender: TObject);
    procedure Button11Click(Sender: TObject);
    procedure Button12Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure Button6Click(Sender: TObject);
    procedure Button7Click(Sender: TObject);
    procedure Button8Click(Sender: TObject);
    procedure Button9Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
t:integer; Liste:TListe; vokabel:TVokabel; Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button3Click(Sender: TObject);
begin
  Liste.hinzufuegen(Edeutsch.text, Edenglisch.text);
  showmessage('Vokabel gespeichert');
  Edeutsch.Text := '';
  Edenglisch.Text := '';
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
liste.loeschen(strtoint(Edit1.text));
showmessage('vokabel gelöscht');
end;
procedure TForm1.Button1Click(Sender: TObject);
begin

end;

procedure TForm1.Button10Click(Sender: TObject);
var n,t : integer;
begin
  n := liste.laenge;
  t := random(n);
  Edenglisch.text := Liste.zufallfragenE(t);
end;

procedure TForm1.Button11Click(Sender: TObject);
var n,t : integer;
begin
  n := liste.laenge;
  t := random(n);
  Edeutsch.text := Liste.zufallfragenD(t);
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
  //liste.SaveToFile(Edit2.text + Edit3.text + '.txt');
end;

procedure TForm1.Button5Click(Sender: TObject);
var n: string;
begin
 n := inttostr(liste.laenge);
 if Edit1.Text = ''  then
  begin
    showmessage('Keine Eingabe');
  end else;
  if Edit1.Text > n then
   begin
   showmessage('zu hohe zahl');
   end
 else begin;
    Edenglisch.Text := Liste.abfragen(strtoint(Edit1.Text));
  end;
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
 if Edeutsch.text = 'then
  begin
  showmessage('Machen sie erst eine Eingabe');
  end
 else
  begin
  if EDeutsch.text = vokabel.Deutsch then
  begin
    showmessage('Die Vokabel war Richtig');
    Edenglisch.text := '';
    EDeutsch.Text := '';
  end else
  begin
    showmessage('Das war leider Falsch :-( versuche es nochmal');
    end;
  end;
end;

procedure TForm1.Button7Click(Sender: TObject);
begin
  //Erstes speichern
  liste := Tliste.initlist(Edenglisch.Text,EDeutsch.Text);
  //vokabel := TVokabel.initvok(Edenglisch.Text, EDeutsch.text);
  showmessage('Die Vokabel wurde gespeichert');

end;

procedure TForm1.Button8Click(Sender: TObject);
begin
 if Edeutsch.text = 'then
  begin
  showmessage('Machen sie erst eine Eingabe');
  end
 else
  begin
  if EDenglisch.text = vokabel.Englisch then
  begin
    showmessage('Die Vokabel war Richtig');
    Edenglisch.text := '';
    EDeutsch.Text := '';
  end else
  begin
    showmessage('Das war leider Falsch :-( versuche es nochmal');
    end;
  end;
end;

procedure TForm1.Button9Click(Sender: TObject);
var n: string;
begin
  n := inttostr(liste.laenge);
  if Edit1.Text > n then
   begin
   showmessage('zu hohe zahl');
   end
 else
    Edeutsch.Text := Liste.dabfragen(strtoint(Edit1.Text));
  end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  //t := 0;
  //liste := Tliste.initlist(Edenglisch.Text,EDeutsch.Text);
  Randomize;
end;

end.
Ich speichere alles in der Unit Tliste ab
(initlist, hinzufuegen)
  Mit Zitat antworten Zitat