Autor Beitrag
jaykey
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 26.02.04 10:51 
Hi,

ich habe versucht ein Quiz zu programmieren! Dazu brauche ich jedoch eine Datenbank für die fragen und die antworten! Die Datenbank muss folgendes erfüllen: sechs Kategorien beinhalten
Fragen
und jeweils drei Antworten!

Welchen Datenbanktyp muss ich benutzen? Achso das ganze sollte als Editor funktionieren! :?: :?: :?:

Gruß Jaykey

PS: Helft mir bitte ist dringend :!: :!: :!:
Martin77
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 282

XP Prof
D6 Prof, D7 Personal, D7 Enterprise, D8 personal
BeitragVerfasst: Do 26.02.04 12:12 
Titel: hmmm
Wieso Datenbank? Sowas kannste auch mit Textdateien realisieren, nimm doch eine INI Datei oder eine XML Datei. Der Aufwand mit der DB ist meienr Meinung nach zu groß für so eine "kleine" Aufgabe. ich gehe mal davo naus das Du noch keine "große" Delphi Version besitzt, die Datenbankunterstützung mitbringt. Oder hast du mal kurz 400 Euro ausgegeben um mit Delphi nen Quiz zu machen? Mein Favorit für sowas ist immer Flashfiler von TurboPower, kannst die Serverengine direkt in deine exe miteinkompilieren, dann würde es gehen.


Gruß Martin
jaykey Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 26.02.04 12:55 
nee wir machen das in der schule! daher haben wir delhpi3!!! Also danke, aso wie geif ich auf die *.íni datei zu!!! Wir haben da noch net so viel mit gemacht!

gruß jaykey
Pascal
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 155

Win 98, Win XP
Delphi 2005, Delphi 5
BeitragVerfasst: Do 26.02.04 13:19 
Ich würde das ganze mit einer Stringgrid realisieren. Als Editor kannst du ja dann einfach die Stringgrid nehmen, und das Apspeichern, Laden und den Zugriff auf die Zellen kannste unter home.arcor.de/hardco...nload/stringgrid.pdf ganz schnell lernen.
Martin77
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 282

XP Prof
D6 Prof, D7 Personal, D7 Enterprise, D8 personal
BeitragVerfasst: Do 26.02.04 13:27 
Hier ein kleiner Auszug aus nem Tool das ich kürzlich brauchte:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
procedure TForm1.LadeKontakte;
var
  i: Integer;
  KontaktDatei: TIniFile;
  NamensListe: TStringList;
  Kontakt: TFKontakt;
begin

  if FileExists(ExtractFilePath(Application.ExeName)+'Kontakte.ini') then
  begin
    KontaktDatei:= TIniFile.Create(ExtractFilePath(Application.ExeName)+'Kontakte.ini');
    NamensListe:= TStringList.Create;
    KontaktDatei.ReadSections(NamensListe);
    for i:= 0 to NamensListe.Count - 1 do
    begin
      Kontakt:= TFKontakt.Create;
      Kontakt.KontaktName:= NamensListe.Strings[i];
      Kontakt.KontaktNummer:= KontaktDatei.ReadString(NamensListe.Strings[i],'Nummer','KEINE NUMMER');
      ComboBox1.AddItem(Kontakt.KontaktName,Kontakt);
    end;
    kontaktdatei.Free;
    Namensliste.free;
  end;
end;


ausblenden Delphi-Quelltext
1:
    KontaktDatei:= TIniFile.Create(ExtractFilePath(Application.ExeName)+'Kontakte.ini');					

Damit öffnest du die Ini Datei zum lesen und schreiben

mit
ausblenden Delphi-Quelltext
1:
2:
    NamensListe:= TStringList.Create;
    KontaktDatei.ReadSections(NamensListe);

Kannst du alle Sktionen aus der Ini Datei auslesen


ausblenden Delphi-Quelltext
1:
      Kontakt.KontaktNummer:= KontaktDatei.ReadString(NamensListe.Strings[i],'Nummer','KEINE NUMMER');					

Damit liest du aus der Datei aus der Sktion x den Wert Nummer aus.


Also für dich wäre sowas ja ok:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
[Frage1]
Frage=Von wann bis wann war Kohl Bundeskanzler
Antwort1=xxxx
Antwort2=xxxx
Antwort3=xxxx
RichtigeAntwort=2


Musst dann nur mein Beispiel oben anpassen. Du kannst natürlich auch noch kategorien anlegen.


Hoffe du kommst damit weiter, wenn nicht ,frag nochmal nach ist aber ganz leicht

Gruß Martin

p:s: Das Stringgrid zum eintragen würde ich auch nehmen ;)
jaykey Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 04.03.04 11:00 
:?:

Also ich hab jetzt noch folgendes Problem, ich habe ein button, wenn ich auf denn klicke soll er zufällig aus der datenbank oder tabelle eine frage mit den antworten heraussuchen und auf verschieden labels ausgeben! Wie macht man sowas?

mfg

jaykey
Martin77
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 282

XP Prof
D6 Prof, D7 Personal, D7 Enterprise, D8 personal
BeitragVerfasst: Do 04.03.04 20:22 
such mal nach Suche in: Delphi-Forum, Delphi-Library RANDOMIZE
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: Do 11.03.04 18:49 
Da du das Thema nochmal in nem anderen Forum angefangen hast hier ne Lösung...

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TForm1.bu_frageClick(Sender: TObject);
var Datenbank : TInifile;
    AlleFragen : TStringlist;
    Frage : string;
begin
  AlleFragen := TStringlist.create;
  Datenbank:=TInifile.create('C:\Windows\Desktop\Datenbank.ini');
  Datenbank.ReadSections(AlleFragen);
  Randomize;
  Frage:=AlleFragen[random(AlleFragen.Count)];

  label_frage.caption:=Datenbank.ReadString(Frage,'Frage','');
  label_a1.caption:=Datenbank.ReadString(Frage,'Antwort1','');
  label_a2.caption:=Datenbank.ReadString(Frage,'Antwort2','');
  label_a3.caption:=Datenbank.ReadString(Frage,'Antwort3','');
  label_a4.caption:=Datenbank.ReadString(Frage,'Antwort4','');

  Datenbank.Free;
  AlleFragen.free;
end;


Dazu die Datenbank als ini:
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
[Frage1]
Frage=Wie heisse ich?
Antwort1=Ich
Antwort2=Du
Antwort3=Er
Antwort4=Kallar Hari

[Frage2]
Frage=Was war das?
Antwort1=Was war was?
Antwort2=Das? Das war nix
Antwort3=Kalle wars!
Antwort4=Nein

[Sinnlose Frage]
Frage=Gehts noch?
Antwort1=Ja
Antwort2=Nein
Antwort3=42
Antwort4=wwaaahh

_________________
Delphi: XE - OS: Windows 7 Professional x64
MartinPb
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 698



BeitragVerfasst: Fr 12.03.04 18:37 
Hallo Jaykey,

wenn du nicht reagierst, dann kann dir keiner helfen.

_________________
Gruß
Martin
jaykey Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: So 14.03.04 14:49 
Dankeschön! Das ist was ich gebraucht habe! Nun kann ich den Pascaleditor, den ich programmiert habe zwar nicht verwenden, aber das ist nicht so schlimm! Oder kennt sich dabei jemand aus, mein editor hat alles in eine zeile geschreiben und deswegn konnten die Fragen nicht abgerufen werden! DANKESCHÖN!
Hat eventuell jemand eine Idee wie labels sich verschiebn lassen? Es wäre ja blöd wenn die richtige antwort ganz oben stehen würde! Weil mit dem beispiel müsste man ja für jede Frage das ganze individuell programmieren!

Danke nochmals :lol:

Jaykey
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: So 14.03.04 15:12 
geht auch einfach:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
procedure TForm1.bu_frageClick(Sender: TObject); 
var Datenbank : TInifile; 
    AlleFragen : TStringlist; 
    Frage : string; 
begin 
  AlleFragen := TStringlist.create; 
  Datenbank:=TInifile.create('C:\Windows\Desktop\Datenbank.ini'); 
  Datenbank.ReadSections(AlleFragen); 
  Randomize; 
  Frage:=AlleFragen[random(AlleFragen.Count)]; 

  label_frage.caption:=Datenbank.ReadString(Frage,'Frage',''); 
  label_a1.caption:=Datenbank.ReadString(Frage,'Antwort1',''); 
  label_a2.caption:=Datenbank.ReadString(Frage,'Antwort2',''); 
  label_a3.caption:=Datenbank.ReadString(Frage,'Antwort3',''); 
  label_a4.caption:=Datenbank.ReadString(Frage,'Antwort4',''); 

  Loesung:=Datenbandk.ReadInteger(Frage,'Lösung',0);  
                                 // Loesung ist eine globale Integer variable


  Datenbank.Free; 
  AlleFragen.free; 
end;


ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
[Geschichtliche Frage]
Frage=Wann wurde Bonn Russische Hauptstadt?
Antwort1=Heute
Antwort2=Morgen
Antwort3=Gestern
Antwort4=42
Lösung=4


ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure tform1.label1click(sender : TObject);
begin
  checken(1);
end;

procedure tform1.label2click(sender : TObject);
begin
  checken(2);
end;

...

procedure tform1.checken(i : integer);
begin
  if loesung=i then richtig else falsch;
  nextefrage;
end;

_________________
Delphi: XE - OS: Windows 7 Professional x64
jaykey Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Mo 15.03.04 18:52 
danke, ich werd es mal ausprobieren! Werde am Donnerstag bescheid sagen ob es funktioniert!

danke nochmal

Jaykey
Alexander F
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 149

Win XP, Win 2000
D6 PE, D7 Prof, D8 Prof
BeitragVerfasst: Di 16.03.04 14:30 
So da habe ich auch noch mal eine kleine Frage:
Welche Datenbank würdet ihr für einen kleines Vokabelverzeichnis mit ein paar anderen Formen empfehlen?
neojones
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 1206
Erhaltene Danke: 1



BeitragVerfasst: Di 16.03.04 15:21 
TurboDB von DataWeb. Ist allerdings ziemlich teuer.

_________________
Ha! Es compiliert! Wir können ausliefern!
Alexander F
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 149

Win XP, Win 2000
D6 PE, D7 Prof, D8 Prof
BeitragVerfasst: Di 16.03.04 16:31 
Kannst du mir auch eine kostenlose Empfehlen?
JoelH
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 806
Erhaltene Danke: 17

Win10
Delphi Alexandria 11.2 Patch 1
BeitragVerfasst: Di 16.03.04 16:50 

_________________
mfg. Joel
CenBells
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1547

Win 7
Delphi XE5 Pro
BeitragVerfasst: Di 16.03.04 17:22 
embedded server von firebird. Unterstützt mehr sql als mysql und musst nur 2 dlls mitliefern.
www.ibphoenix.com

gruß
Ken

_________________
Eine Klasse beschreibt die Struktur und das Verhalten einer Menge gleichartiger Objekte.
Alexander F
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 149

Win XP, Win 2000
D6 PE, D7 Prof, D8 Prof
BeitragVerfasst: Di 16.03.04 19:59 
MySQL wäre vielleicht gar ncith so schlecht, die andere muss ich mir aber auch noch mal anschauen..
jaykey Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 18.03.04 18:12 
HI
Wollte nur danke sagen funktioniert einwandfrei!
Danke!
Hab noch ein Problem, wie mache ich einen Button farbig?
Gruß jaykey
Alexander F
ontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic starofftopic star
Beiträge: 149

Win XP, Win 2000
D6 PE, D7 Prof, D8 Prof
BeitragVerfasst: Do 18.03.04 19:51 
Am besten du eröffnst einen neuen Thread, sonst geht das hier noch alles durcheinander ;-)