Weil er die Tutorials durchgearbeitet und hoffentlich ein wenig geübt hat? Mal ein Minibeispiel: angenommen, eine solche Inidatei für eine Schwierigkeitsstufe sähe so aus
Code:
[1]
Frage=Wieviel ist 2*2?
Richtig=4
Falsch1=42
Falsch2=Rembrandt
Falsch3=Hä?
[2]
Frage=Wer führte Regie beim Film "Die Vögel"?
Richtig=Alfred Hitchcock
Falsch1=Woody Allen
Falsch2=Stephen Spielberg
Falsch3=George Lucas
[3]
Frage=3 Dinge braucht der Mann: Feuer, Pfeife, ...
Richtig=Stanwell
Falsch1=Rauchmelder
Falsch2=Feuerlöscher
Falsch3=Dudelsack
Dann kann man daraus ganz einfach eine zufällig gewählte Frage samt Antworten herausholen (der Code ist ganz bewusst nicht optimal, etwas Arbeit soll ja noch bleiben):
Delphi-Quellcode:
procedure TForm1.ReadQuestion(const IniName: string);
var
Ini: TMemIniFile;
Sections: TStringlist;
Question: string;
begin
Memo1.Lines.Clear;
Ini := TMemIniFile.Create(IniName);
try
Sections := TStringlist.Create;
try
Ini.ReadSections(Sections);
Question := Sections[Random(Sections.Count)];
Label1.Caption := Ini.ReadString(Question, 'Frage', 'Keine Frage vorhanden, nanu?');
Memo1.Lines.Add(Ini.ReadString(Question, 'Richtig', ''));
Memo1.Lines.Add(Ini.ReadString(Question, 'Falsch1', ''));
Memo1.Lines.Add(Ini.ReadString(Question, 'Falsch2', ''));
Memo1.Lines.Add(Ini.ReadString(Question, 'Falsch3', ''));
finally
Sections.Free;
end;
finally
Ini.Free;
end;
end;
Danach sollten die Frage in Label1 und alle Antworten in Memo1 stehen. Man muss sich natürlich noch merken, welche die richtige ist, sie zufällig durcheinandermischen etc., aber mir ging es jetzt nur um das Auslesen. Evtl. auftretende Fehler sollten natürlich auch noch behandelt werden.