Autor |
Beitrag |
marvin521993
      
Beiträge: 172
|
Verfasst: Sa 10.02.07 13:12
Hi
ich habe jetz das grundprinzip der ini dateien verstanden
meine frage ist aber nun, wie ich dort die fragen für mein quiz mit einbauen kann?
LG
Marvin
Zuletzt bearbeitet von marvin521993 am So 11.02.07 20:04, insgesamt 1-mal bearbeitet
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Sa 10.02.07 14:10
Wenn du nur Frage/Antwort abspeichern willst, dann ist eine Ini-Datei ungeeignet. Ich würde da eine normale Textdatei nehmen. Du nimmst eine TStringList, mit der kannst du deine Textdatei laden und auch speichern. Sie könnte ja zum Beispiel so aussehen:
Zitat: | Was ist der Unterschied zwischen einer Bachstelze?#Sie hat zwei Beine, besonders das linke.
Was macht ein ***, wenn er seine Mülltonne mit heißem Wasser auffüllt?#Eine 5-Minuten-Terrine.
|
Du suchst jede Zeile nach dem # ab, und teilst somit die Zeile in Frage#Antwort auf.
|
|
marvin521993 
      
Beiträge: 172
|
Verfasst: Sa 10.02.07 14:45
danke chryzler genau sone antwort hab ich gebraucht
alle ham mir gesagt es ist besser ne ini datei zu nehmen
nnochma danke
LG
Marvin
|
|
marvin521993 
      
Beiträge: 172
|
Verfasst: Sa 10.02.07 15:13
aber moment
wie hast du dir die text datei vorgestellt??
also vorne kommt die frage, dann eine raute und dann eine antwort möglichkeit, und wieder ne raute? oder wie
danke für deine hilfe
LG
Marvin
|
|
jaenicke
      
Beiträge: 19314
Erhaltene Danke: 1747
W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Sa 10.02.07 15:15
Mach einfach das = als Trennzeichen, dann kannst du bei einer StringList mit Liste.Values auf den Wert zu einer linken Seite zugreifen...
|
|
marvin521993 
      
Beiträge: 172
|
Verfasst: Sa 10.02.07 17:46
so eine textdatei habe ich jetz fertig ich habe sie unten reingestellt
Wie kann ich es nun machen, das der nach jedem = in ein neuen antwort button geht und bei einer neuen zeile in eine ganz neue frage?
Einloggen, um Attachments anzusehen!
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 10.02.07 18:09
versuchs mit EXPLODE, ich glaube da wird man fündig. Ausserdem empfehle ich dir, ans ender der Zeile immer noch eine Zahl zu setzen, den Index der korrekten Antwort nämlich.
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
marvin521993 
      
Beiträge: 172
|
Verfasst: Sa 10.02.07 18:12
du meinst zum beispiel ne 2, wenn die erste antwort möfglichkeit richtig wär, ne 3 wenn die 2 und so weiter?
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 10.02.07 18:13
ja, so in etwa.
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
marvin521993 
      
Beiträge: 172
|
Verfasst: Sa 10.02.07 18:31
aber meine andere frage steht immer noch offen mit dem explode kann ich nix anfangen sry
LG
Marvin
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 10.02.07 18:34
marvin521993 hat folgendes geschrieben: | mit dem explode kann ich nix anfangen |
Dann klick mal drauf  dann kommst du unter anderem zu diesem Thema: www.delphi-forum.de/...mp;highlight=explode
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
marvin521993 
      
Beiträge: 172
|
Verfasst: Sa 10.02.07 18:48
meinst du das möglicher weise so?
Delphi-Quelltext 1: 2: 3: 4:
| procedure TForm1.FormCreate(Sender: TObject); begin str := TStringList.Create; str := ('c:\dokumente und einstellungen\Desktop\Delphi\Wer wird Millionär'); |
LG
Marvin
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 10.02.07 18:50
Hast du dir die Mühe gemacht, den Link anzuklicken?  Ich zitiere den für dich wichtigsten Post:
Sebastian R. hat folgendes geschrieben: | Also ich habe das Problem mit folgendem Quelltext gelöst.
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39:
| type TStringDynArray = array of string;
function Explode(const Separator, S: string; Limit: Integer = 0): TStringDynArray; var SepLen: Integer; F, P: PChar; ALen, Index: Integer; begin SetLength(Result, 0); if (S = '') or (Limit < 0) then Exit; if Separator = '' then begin SetLength(Result, 1); Result[0] := S; Exit; end; SepLen := Length(Separator); ALen := Limit; SetLength(Result, ALen);
Index := 0; P := PChar(S); while P^ <> #0 do begin F := P; P := StrPos(P, PChar(Separator)); if (P = nil) or ((Limit > 0) and (Index = Limit - 1)) then P := StrEnd(F); if Index >= ALen then begin Inc(ALen, 5); SetLength(Result, ALen); end; SetString(Result[Index], F, P - F); Inc(Index); if P^ <> #0 then Inc(P, SepLen); end; if Index < ALen then SetLength(Result, Index); end; |
Du kannst damit wie folgt deinen String unterteilen.
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| procedure Test; var exploded: TStringDynArray; begin exploded := explode(' ', '22 820 "Nam" 0 '); ShowMessage(exploded[0]); end; |
Viel Spass, Sebastian. |
Das ganze machst du nun mit jeder Zeile, als Seperator nimmst du # oder = je nach dem, wie deine datei aussieht.
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
marvin521993 
      
Beiträge: 172
|
Verfasst: Sa 10.02.07 19:02
acho sry wusst nich das dis so übertrieben kompliziert ist
mfg
Marvin
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Sa 10.02.07 19:03
Du kannst es noch einfacher machen, ohne Explode.
Zitat: | Was ist 3 + 4?
Drei
Fünf
Acht
Neun
Was ist Delphi?
Programmiersprache
Tier
Pflanzenart
Orakel
|
Dann bekommst du die n-te Frage durch:
Delphi-Quelltext 1:
| NteFrage := StringList[(n - 1) * 5]; |
Und die vier Antworten zur n-ten Frage:
Delphi-Quelltext 1: 2: 3: 4:
| Antwort1 := StringList[((n - 1) * 5) + 1]; Antwort2 := StringList[((n - 1) * 5) + 2]; Antwort3 := StringList[((n - 1) * 5) + 3]; Antwort4 := StringList[((n - 1) * 5) + 4]; |
EDIT: Code korrigiert. Siehe nächster Post
Zuletzt bearbeitet von Chryzler am Sa 10.02.07 19:26, insgesamt 3-mal bearbeitet
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 10.02.07 19:12
Chryzler hat folgendes geschrieben: | Zitat: |
Was ist 3 + 4?
Drei
Fünf
Acht
Neun
Was ist Delphi?
Programmiersprache
Tier
Pflanzenart
Orakel
|
|
[ot]Leider ist Delphi der Ort eines Orakels, und keine Programmiersprache  ObjectPascal heißt die Sprache [/ot]
Zum Thema: Ja klar, so gehts auch, ist wesentlich simpler. Aber weist du, die Explode-Funktion musst du ja nicht verstehen, reicht ja, wenn du sie kopierst und einsetzt  Ist natürlich nicht Sinn der Sache.. aber naja 
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
marvin521993 
      
Beiträge: 172
|
Verfasst: Sa 10.02.07 19:12
hä
kannst du mir da mal bitte die einzelnen zeilen vom quelltext erklären?
danke
lg
Marvin
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Sa 10.02.07 19:17
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
Chryzler
      
Beiträge: 1097
Erhaltene Danke: 2
|
Verfasst: Sa 10.02.07 19:19
JayEff hat folgendes geschrieben: | Einziger Fehler: Eine TStringList beginnt bei 0, nicht bei 1. also die Zahlen am ende (+1, +2 etc) um eins kleiner machen. |
omg, manchmal hab ich wirklich eine Mauer vor dem Kopf.
Code oben ist korrigiert. Und noch mal korrigiert.
Zuletzt bearbeitet von Chryzler am Sa 10.02.07 19:27, insgesamt 1-mal bearbeitet
|
|
marvin521993 
      
Beiträge: 172
|
Verfasst: Sa 10.02.07 19:23
und wie bau ich da die textdatei mit ein in die TStringlist?
hast du dir eigentlich ma meeine textdatei heruntergeladen?
LG
Marvin
Einloggen, um Attachments anzusehen!
Zuletzt bearbeitet von marvin521993 am Sa 10.02.07 19:37, insgesamt 1-mal bearbeitet
|
|