Einzelnen Beitrag anzeigen

Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#15

AW: Selbstprogrammierung eines Vokabeltrainers

  Alt 28. Mai 2014, 15:20
bzw. auf die Aufgabe bezogen
Code:
1714=Kartoffelkrieg
1896=1. olymp. Spiele der Neuzeit
2014=Deutschland wird Fußballweltmeister
usw.
Das wäre aber für die Namens-/Werte-Paare suboptimal, denn jetzt kannst du pro Jahreszahl eine Frage stellen

Um gänzlich unabhängig zu sein empfiehlt es sich auf folgende Struktur zu gehen:
Code:
<Frage>;<Antwort>
Der Fragenkatalog kann dann einfach in eine StringListe geladen werden (ist und bleibt ja eine Textdatei) und das Frage-Antwort-Paar kann dann so ausgelesen werden:
Delphi-Quellcode:
type
  TItem = record
   Question : string;
   Answer : string;
  end;

function StrToItem( const AStr : string ) : TItem;
var
  LRow : TStringList;
begin
  LRow := TStringList.Create;
  try
    LRow.Delimiter := ';';
    // LRow.StrictDelimiter := True; // erst ab Delphi xxx
    LRow.DelimitedText := AStr;

    // Diese Prüfung kann man auch weglassen, es knallt sowieso :)
    if LRow.Count < 2
    then
      raise Exception.CreateFmt( 'Ungültiges Format für Frage-Antwort <%s>', [AStr] );

    Result.Question := LRow[0];
    Result.Answer := LRow[1];
  finally
    LRow.Free;
  end;
end;

function GetItem( ACatalog : TStrings; Index : Integer ) : TItem;
begin
  Result := StrToItem( ACatalog[Index] );
end;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat