![]() |
Hilfe beim Fragespiel
Hallo meine freundin und ich müssen für die schule ein kleines fragespiel programmieren...leider haben wir ein kleines problem...wir wollen die fragen nicht direkt ins programm schreiben sondern in eine .txt datei und diese dann in delphi abrufen...kann uns einer sagen wie man das macht? lg
|
AW: Hilfe beim Fragespiel
Eine einfache Möglichkeit dürfte TIniFile sein. Diese Datei könnte so z.B. aussehen:
Code:
[1]
Frage=Was ist die Antwort auf die Frage nach dem Leben, dem Universum und einfach allem? Antwort=42 [2] Frage=Wo wurde der Friedensvertrag von 1918 unterzeichnet? Antwort=Unten rechts usw. usf. |
AW: Hilfe beim Fragespiel
Eine weitere einfache Möglichkeit wäre die Fragen+Antworten in Einer .txt File zu speichern und via TStringList zu behandeln.
Die Textdatei könnte wie folgt aussehen:
Code:
Oder aber so:
Q: Hier steht deine Frage
A: Hier steht deine Antwort Q: Hier steht die nächste Frage A: Und hier die Antwort
Code:
Viel Erfolg
Hier steht deine Frage|Hier steht deine Antwort
Hier steht die nächste Frage|Und hier die Antwort |
AW: Hilfe beim Fragespiel
danke aber wie genau muss ich das jetzt anstellen? weil schreib ich es dann nicht doch in mein programm direkt mit rein wenn ich es so mache?
|
AW: Hilfe beim Fragespiel
Variante 1:
Eine Ini Datei sollte nicht manuell angelegt werden wenn man sich da nicht auskennt :) Hierzu könnte man sich ein "Fragen Erstell Hilfsprogramm" schreiben. Über Delphi werden die Fragen dann zur Laufzeit via IniFiles einlesen. Variante 2: Die Textdatei kannst du Manuell anlegen. Du musst dir aber hier auch sicher sein was du machst :) Die Textdatei lädst du dann zur Laufzeit in einer Stringliste. Mit einer Schleife durchläufst du diese und ließt die Fragen + Antworten aus. |
AW: Hilfe beim Fragespiel
sieh dir mal TIniFile an, das ist gaaanz einfach:
Delphi-Quellcode:
ini:=TIniFile.create('C:\Qa.ini');
ini.ReadString(IntTostr(1), 'Frage', ''); ini.ReadString(IntTostr(1), 'Antwort', ''); |
AW: Hilfe beim Fragespiel
Und die Abschnitte, die die Fragen enthalten, bekommt man mit
![]() |
AW: Hilfe beim Fragespiel
Hier vllt. mal der Link auf ein
![]() |
AW: Hilfe beim Fragespiel
Zitat:
2 x Label Komponente auf das Form1 legen (Caption auf Frage: und Antwort: setzen) 2 x TEdit Komponente auf das Form1 legen 1 x Button auf das Form 1 legen. -> Button doppelklicken -> Editor geht auf. Quelltext wie folgt vervollständigen:
Delphi-Quellcode:
IniDatei anlegen.
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Edit1: TEdit; Edit2: TEdit; Label1: TLabel; Label2: TLabel; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation uses IniFiles; {$R *.dfm} const cNoQuestion = 'keine Frage angegeben'; cNoAnswer = 'keine Antwort angegeben'; procedure TForm1.Button1Click(Sender: TObject); var sl: TStringList; s: string; begin sl := TStringList.Create; try // IniDatei hat Dateinamen der Exe nur mit '.ini' statt '.exe' with TIniFile.Create(ChangeFileExt(Application.ExeName, '.ini')) do try ReadSections(sl); // Sektionen auslesen -> [Sektionname] s := sl[random(sl.Count)]; // per "Zufall" eine Sektion auswählen Edit1.Text := ReadString(s, 'Frage', cNoQuestion); // Frage der Sektion in Edit Feld schreiben Edit2.Text := ReadString(s, 'Antwort', cNoAnswer); // Antwort - dito finally Free; // IniDatei wieder freigeben end; finally sl.Free; // StringListe wieder freigeben end; end; initialization Randomize; // Zufall initialisieren ;-) end. Ini Datei ist eine Text-Datei mit dem Namen der Exe-Datei aber mit der Dateiendung ini statt exe z.B. Project1.ini Folgender Inhalt sollte funktionieren:
Code:
Ich hoffe das hilft Dir.
[1]
Frage=Warum? Antwort=Darum! [2] Frage=Weshalb? Antwort=Deshalb! [Allgemeinwissen 1] Frage=Was ist die Antwort auf die Frage nach dem Leben, dem Universum und einfach allem? Antwort=42 [Fangfrage 1] Frage=Wo wurde der Friedensvertrag von 1918 unterzeichnet? Antwort=Unten rechts Viel Spaß MaBuSE |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:14 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