AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte BrainyTrainy - Vokabeltrainer
Thema durchsuchen
Ansicht
Themen-Optionen

BrainyTrainy - Vokabeltrainer

Ein Thema von Timelesk · begonnen am 18. Feb 2005 · letzter Beitrag vom 9. Jan 2007
Antwort Antwort
Benutzerbild von Speedmaster
Speedmaster

Registriert seit: 4. Mär 2005
Ort: Karlsruhe
535 Beiträge
 
Delphi 2005 Personal
 
#1

Re: BrainyTrainy - Vokabeltrainer

  Alt 23. Mär 2005, 23:12
Habe sowas auch mal geschrieben, Code ist leider verlorengegangen habe nur eine alte Version ist auch ein bischen her wo ich die geschrieben hatte:

Delphi-Quellcode:
unit Vok;
 
interface
 
uses
  StdCtrls, IniFiles, SysUtils, Dialogs;
 
const
  E_LOADVOK = ' Error in FUNCTION LoadVok ';
  E_WRITEVOK = ' Error in FUNCTION WriteVok ';
  E_READVOK = ' Error in FUNCTION ReadVok ';
  E_COMPVOK = ' Error in FUNCTION CompVok ';
 
 
type
  TVok = class
    public
      Vokabel: array of array of String; // Dynamischer Array in dem die Vokabeln abgelegt werden
      VokRiZ: array of array[0..1] of byte; // Hier wird gezählt wie oft eine Vokabel richtig war
      VokFaZ: array of array[0..1] of byte; // Hier wird gezählt wie oft eine Vokabel falsch war
      Vokakt: integer; // Aktuelle Vokabel
      IniFile: TIniFile; // Name der Aktuellen Vokabel Datei
      VokAbf: smallint; // Enthält die Nummer der abgefragten bedeutung
      (* Allgemein:
        Sollte ein Fehler beim laden auftreten gibt die funktion den
         Wert False zurück *)
 
      function LoadVok(FileN: String): Boolean; // Laden der Vokabeln
      function WriteVok(FileN: String): Boolean; // Speichert Vokabeln
      function ReadVok(InpField: TEdit; OutField: TLabel): Boolean; // Liest nexte Vokabel ein
      function CompVok(VString: ShortString; var IX: Smallint): Boolean; // vergleicht die Vokabeln
    end;
 
 
 
implementation
 
var Voktype: TVok;
 
 
function TVok.LoadVok(FileN: String): Boolean;
var
  VNum: integer;
  VBed: smallint;
begin
  try
    (*BEGIN*) 
    Voktype.IniFile := TiniFile.Create(FileN);
    for VNum:=0 to 2147483647   do begin // Max Anzahl an Vokabeln werden hochgezählt
        for VBed:=0 to 32767 do begin // Max Anzahl an Bedeutungen pro Vokabel werden hochgezählt
          Voktype.Vokabel[VNum,VBed] := IniFile.ReadString(inttoStr(VNum),inttoStr(VBed),''); // Läd Vokabeln
          if Voktype.Vokabel[VNum,VBed] = 'then Break; // Wenn Alle Bedeutungen geladen wurden Unterbrechen
        end;
      if Voktype.Vokabel[VNum -1,0] = 'then Break; // Wenn Max Anzahl an Vokabeln geladen wurden Unterbreche
    end;
    (*END*) 
    Result := True;
  except
    Result := False;
  end;
end;
 
 
function TVok.WriteVok(FileN: String): Boolean;
var
  VNum: integer;
  VBed: smallint;
begin
  try
    (*BEGIN*) 
    Voktype.IniFile := TiniFile.Create(FileN);
    for VNum:=0 to 2147483647   do begin // Max Anzahl an Vokabeln werden hochgezählt
        for VBed:=0 to 32767 do begin // Max Anzahl an Bedeutungen pro Vokabel werden hochgezählt
          IniFile.WriteString(inttoStr(VNum),inttoStr(VBed),Voktype.Vokabel[VNum,VBed]); // Schreibt Vokabeln
          if Voktype.Vokabel[VNum,VBed +1] = 'then Break; // Wenn Alle Bedeutungen geladen wurden Unterbrechen
        end;
      if Voktype.Vokabel[VNum +1,0] = 'then Break; // Wenn Max Anzahl an Vokabeln geladen wurden Unterbreche
    end;
    (*END*) 
    Result := True;
  except
    Result := False;
  end;
end;
 
 
function TVok.ReadVok(InpField: TEdit; OutField: TLabel): Boolean;
var
  VOKNUM: smallint;
begin
  try
    (*BEGIN*) 
    if Voktype.CompVok(InpField.Text,VOKNUM) = False then
      MessageDlg(E_COMPVOK, mtWarning, [mbOk], 0); // Sollte ein Fehler bei CompVok auftreten gibt es eine Fehlermessage
 
 
    (*END*) 
    Result := True;
  except
    Result := False;
  end;
end;
 
 
function TVok.CompVok(VString: ShortString; var IX: Smallint): Boolean;
var
  i: Smallint;
  Ahigh: Smallint;
begin
  try
    (*BEGIN*) 
    Ahigh := high(Voktype.Vokabel[Voktype.VokAkt]); // Ermittle die größe des Arrays
    IX := -1;
    for i:=0 to Ahigh do begin
      if VString = Voktype.Vokabel[Voktype.VokAkt,i] then begin // Vergleiche den String mit dem Array
        IX := i; // Ergebniss wird ausgeliefert
        Break;
      end;
    end;
    (*END*) 
    Result := True;
  except
    Result := False;
  end;
end;
 
 
end.
Felix K.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:55 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