Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Infoprojekt - Quiz (https://www.delphipraxis.net/90001-infoprojekt-quiz.html)

Goku42 10. Apr 2007 11:34


Infoprojekt - Quiz
 
Hi @ all,
wir müssen ein Infoprojekt machen und ich habe mich für ein Quiz entschieden. Das Grundgerüst hab ich schon, der nächste Schritt ist die Verknüpfung mit der Fragen-Datenbank. Ich habe ca. 50 Fragen in einer Excell-Tabelle und wüsste mal gerne wie man die auslesen und auch neue Fragen einfügen kann.
Die nächsten Fragen wären dann wie man dem PC zeigt was die richtige Antwort ist und wie man die Joker (1 falsche Antwort rausstreichen; Frage wechseln) organisiert, aber da kann ich auch dann erstmal n bissl selbst probieren wenn ich auf die Fragen zugreifen kann.

Danke schonmal für die Hilfe,
mfG Goku42

Goku42 10. Apr 2007 18:20

Re: Infoprojekt - Quiz
 
Haaaallloooo????
Kann mir mal bitte jemand dabei helfen? Das ist wichtig für meine Endjahresnote (50%)

Danke!!!

EDatabaseError 10. Apr 2007 18:25

Re: Infoprojekt - Quiz
 
Öhm...hier wird dir niemand die Arbeit machen. Wenn du eine konkrete Frage hast dann suche zuerst im Forum und stelle sie nur dann wenn es wirklich keine Antworten darauf gibt.

Mfg

Tobi

DGL-luke 10. Apr 2007 18:30

Re: Infoprojekt - Quiz
 
Hallo,

Excel-DBTabelle auslesen ist nicht besonders sinnvoll.

du könntest die fragen aber in eine Hier im Forum suchenCSV-Datei speichern.

EDIT: Bitte vergib mir, großes Orakel...

DP-Maintenance 10. Apr 2007 18:50

DP-Maintenance
 
Dieses Thema wurde von "Matze" von "Projekte" nach "Sonstige Fragen zu Delphi" verschoben.
Da es sich nicht um ein öffentliches Gemeinschaftsprojekt und auch nicht um eine richtige Datenbank handelt, verschiebe ich\\\'s mal hier hin.

Bastler 10. Apr 2007 19:06

Re: Infoprojekt - Quiz
 
Ich würde auch Sagen, die Excel-Tabelle asl CSV exportieren und dann einlesen:

1) in eine Memo oder Richedit laden
2) in ein Array schreiben.

das mit der richtigen Antwort würd eich so lösen, dass du 3 Spalten in der Tabelle/dem Array hast: 1. Frage 2. Richtige Antwort und 3. (vermutlich) drei flasche Antworten. die Drei trennst du durch andere Trennzeichen ab als den Rest, oder Schreibt alle Antworten in einzele/eine Spalte und sagt das die Richtige Antwort immer an einer fixen stelle im Array ist (z.b. Spalte 2) und dann mit Random die Antwortmöglichkeiten deiner Grafikausgabe zuweisen...

Goku42 11. Apr 2007 16:51

Re: Infoprojekt - Quiz
 
Danke schonmal für die Hilfen, aber da ich mich nicht allzu gut mit diesen Sachen auskenne muss ich mal weiterfragen^^
(@EDatabaseError: Hier soll keiner meine Arbeit machen, sondern mir nur helfen, sie selbst hinzukriegen oder habe ich jemanden nach nem fertigen Prog gefragt? Ich glaube nich :wink: )
Ich habe jetzt die Excell-Tabelle ( 1. Spalte: Frage, 2.Spalte: Lösung, 3. und 4. Spalte: falsche Antwortmöglichkeiten) als CSV-Datei gespeichert, doch meine Frage bleibt: wie kann ich auf die von meinem Delhpi-Programm aus zugreifen? Also wie kann ich das im Quelltext verlinken um damit arbeiten zu können?

EDatabaseError 11. Apr 2007 16:53

Re: Infoprojekt - Quiz
 
Du öffnest die CSV als Textdatei und liest sie in eine Stringlist ein. Dann teilst du die durch (meist Komma getrennten Werte) durch explodeexplode auf. Dann hast du eine Stringlist für Frage, 1 für Antwort...

Mfg

Torpedo 11. Apr 2007 16:54

Re: Infoprojekt - Quiz
 
Mit Hier im Forum suchenTStringList kannst du Textdateien einlesen und auf beliebige Zeilen zugreifen. Das müsste für deine Datenbank eigentlich ganz nützlich sein.

Jelly 11. Apr 2007 17:06

Re: Infoprojekt - Quiz
 
Ähm, wieso so umständlich über CSV. Man kann ganz bequem über ADO auf Excel Sheets zugreifen. Damit entfällt das lästige aufsplitten der Spalten und man hält die SQL Sprache in der Hand, um bequem irgendwelche Records auszuwählen.

Der Connectionstring sieht in etwa so aus:
Code:
Provider=Microsoft.Jet.OLEDB.4.0;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=db.xls;Extended Properties=Excel 8.0; Persist Security Info=False
Die einzelnen Sheets in der Excel Tabelle entsprechen Tabellen aus herrkömmlichen Datenbanken. Man muss sie nur noch mit einem $-Zeichen suffixieren (das Wort sollte unbedingt in den Duden aufgenommen werden :mrgreen: )
SQL-Code:
select * from Sheet1$
Soll die erste Zeile des Sheets als Tabellenüberschrift interpretiert werden, kann der Connection abgeänder werden:
Code:
Provider=Microsoft.Jet.OLEDB.4.0;Provider=Microsoft.Jet.OLEDB.4.0; Data Source=db.xls;Extended Properties=Excel 8.0; Persist Security Info=False;HDR=Yes


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:42 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz