AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Daten aus .Ini Speicher auslesen

Ein Thema von Astobix · begonnen am 17. Apr 2013 · letzter Beitrag vom 19. Apr 2013
Antwort Antwort
Astobix

Registriert seit: 26. Dez 2012
26 Beiträge
 
Delphi 6 Personal
 
#1

Daten aus .Ini Speicher auslesen

  Alt 17. Apr 2013, 21:52
Hey,

zuallererst möchte ich sagen, dass ich ein ziemlicher Neuling bin und heute erst damit angefangen habe, mich in das Speichern von Datein (vorerst erstmal .ini) einzuarbeiten.

Ich bin dabei ein Quizprogramm zu programmieren, in dem man selber seine Quizze erstellen kann. Um das spielen den Quizze geht es mir gerade noch nicht einmal, da ich noch nicht so weit bin. Ich haben ein Hauptmenü, von dem man den "Quizeditor" aufruft (neue Form). Das geschieht über ein Popopmenu, bei dem man zwischen 5 Quizzen (Quasi die Speicherplätze) auswählt. Der Editor besteht lediglich aus 5 Labels (Frage und 4 Antworten) und 5 Memos zum editieren der Fragen / antworten. Zudem gibt es 3 Buttons: Beenden (speichert nichts und schließt die Form), Speichern und Beenden (Speichert und schließt die Form) und Speichern und weiter (Speichert die Frage und geht über zur nächsten Frage des Quizzes).

Das Speichern habe ich folgendermaßen gelöst:

Code:
procedure TFQuizerstellen.btnSpeichernClick(Sender: TObject);
 var
   ini: TIniFile;
   i: Integer;

 begin

   ini:=TInifile.Create('./Speicher/Quiz '+Inttostr(Quiznummer)+'.ini');
   ini.Writeinteger('Frage '+inttostr(Nummer),'lines',mFrage.lines.count-1);
                                                                                                                                   for i := 0 to (mFrage.Lines.Count-1) do
     ini.WriteString('Frage '+inttostr(Nummer),'Zeile'+inttostr(i),mFrage.Lines.Strings[i]);
end;

// Quiznummer ist ein Integer der die Nummer des Quizzes angibt (1-5)
// Nummer ist ein Integer der die Nummer der Frage angibt (1-X)

Mein Problem ist nun folgendes: Ich möchte natürlich, dass beim Editieren eines bereits vorhandenem Quizzes auch die alte Frage & die alten Antworten dastehen. (Beispiel: Ich geb die Frage "Wie viel Meter ist ein Kilometer?" ein und die Antworten "10", "100", "1000", "10000". Danach speichere ich und schließe das Programm. Am nächsten Tag möchte ich das Quiz aber editieren und will dementsprechend alte Frage und die alten Antworten sehen in den Memos haben.)

Ich weiß jetzt allerdings nicht, wie ich das hinbekomme. Ich weiß zwar grundsätzlich, wie ich die .ini in ein Memo lade (wenn ich zum Beispiel die Prozedur auf einen Button packe), jedoch will ich ohne weiteren Klick die .ini automatisch geladen haben.

Meine Idee war zunächst das im OnShow Event der Editorform zu machen, doch aus mir unbekannten Gründen funktioniert dies nicht.
Prozedur war folgende:

Code:
procedure TFQuizerstellen.FormMouseEnter(Sender: TObject);
begin
end;

procedure TFQuizerstellen.FormShow(Sender: TObject);
 var
    ini: TIniFile;
    i: Integer;
  begin
    mFrage.Lines.Clear;
    mAntwort1.Lines.Clear;
    mAntwort2.Lines.Clear;                
    mAntwort3.Lines.Clear;
    mAntwort4.Lines.Clear;
     ini:=TInifile.Create('./Speicher/Quiz '+Inttostr(Quiznummer)+'.ini');
    for i := 0 to ini.ReadInteger('Frage '+inttostr(Nummer),'lines',-1) do
      MFrage.Lines.Add( ini.readstring('Frage '+inttostr(Nummer),'Zeile'+inttostr(i),'-'));
    ini.free;
  end;


Kann mir jemand helfen? Vermutlich ist die Lösung ziemlich einfach, aber ich komme einfach nicht drauf . Achso, und bitte versucht es Anfängerfreundlich auszudrücken

Gruß,
Astobix

Geändert von Astobix (17. Apr 2013 um 22:22 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#2

AW: Daten aus .Ini Speicher auslesen

  Alt 17. Apr 2013, 22:10
Es wird für alle einfacher wenn Du die entscheidenden Codepassagen hier veröffentlichst. Was wird wie, wann, in welchem Format gespeichert / dargestellt / geladen.
Sonst geht das gestochere im Nebel wieder los ...
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Astobix

Registriert seit: 26. Dez 2012
26 Beiträge
 
Delphi 6 Personal
 
#3

AW: Daten aus .Ini Speicher auslesen

  Alt 17. Apr 2013, 22:20
Hatte ich total vergessen, sorry. Hab jetzt die Speicherprozedur und meine Versuchte OnShow Ladeprozedur reineditiert.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#4

AW: Daten aus .Ini Speicher auslesen

  Alt 17. Apr 2013, 22:44
Du merkst Dir beim Speichern bis wohin Du gekommen bist, wenn nicht gespeichert werden soll speicherst Du 0.
Dann kannst Du bei Neustart die Antworten bis zur gemerkten Nummer belegen, die benötigten Informationen hast Du ja bereits in der ini-Datei.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Astobix

Registriert seit: 26. Dez 2012
26 Beiträge
 
Delphi 6 Personal
 
#5

AW: Daten aus .Ini Speicher auslesen

  Alt 18. Apr 2013, 21:28
Konnte aus deiner (Bummis) Antwort zwar leider nichts machen, da das Problem ja war, dass die Ladevorgang beim OnShow nicht funktioniert, hab das Problem aber trotzdem lösen können, indem ich die Quizauswahl erst in der Editor-Form mache und die Ladefunktion auf die Quizauswahl draufgepackt habe.

Trotzdem danke für deine Hilfe!

Gruß,
Astobix
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#6

AW: Daten aus .Ini Speicher auslesen

  Alt 19. Apr 2013, 11:13
Also im onShow Daten zu laden halte ich für nicht so doll.
im tForm.Create wäre es wohl besser aufgehoben.
Weiterhin solltest Du eine eigene Prozedur für das Datenladen haben, die Du ggf. auch mit einem Buttonclick oder einem Menueeintrag aufrufen kannst.

Und was heißt "funktioniert nicht"?
Werden keine Daten angezeigt, was sagt der Debugger?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:24 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