Autor Beitrag
Schweini31
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Mo 14.01.08 17:44 
Hallo,

ich schreibe gerade einen Vokabeltrainer.

Er kann schon reinschreiben und abspeichern aber leider kann er noch nicht richtig bzw. nur in einem schlechten Programmierstil laden:

ausblenden volle Höhe 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:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
procedure TForm1.btSpeichernClick(Sender: TObject);
var ini:Tinifile;

begin
   for i:=0 to StrToInt(lbNummer.Caption)-1 do begin
ini:=TIniFile.create(ExtractFilePath(ParamStr(0))+
    'Sprache.vok');
    ini.WriteString('Vokabeln','Deutsch'+IntToStr(i),lbSprache.Items[i]);
    ini.WriteString('Vokabeln','Fremdsprache'+IntToStr(i),lbFremd.Items[i]);
    ini.Free;
end;

end;

procedure TForm1.btLadenClick(Sender: TObject);
var ini:Tinifile;
begin
ini:=Tinifile.Create(ExtractFilePath(ParamStr(0))+
    'Sprache.vok');
    lbSprache.Items[0]:=ini.ReadString('Vokabeln','Deutsch0','');
    lbFremd.Items[0]  :=ini.ReadString('Vokabeln','Fremdsprache0','');
    lbSprache.Items[1]:=ini.ReadString('Vokabeln','Deutsch1','');
    lbFremd.Items[1]  :=ini.ReadString('Vokabeln','Fremdsprache1','');
    lbSprache.Items[2]:=ini.ReadString('Vokabeln','Deutsch2','');
    lbFremd.Items[2]  :=ini.ReadString('Vokabeln','Fremdsprache2','');
    lbSprache.Items[3]:=ini.ReadString('Vokabeln','Deutsch3','');
    lbFremd.Items[3]  :=ini.ReadString('Vokabeln','Fremdsprache3','');
    lbSprache.Items[4]:=ini.ReadString('Vokabeln','Deutsch4','');
    lbFremd.Items[4]  :=ini.ReadString('Vokabeln','Fremdsprache4','');
    lbSprache.Items[5]:=ini.ReadString('Vokabeln','Deutsch5','');
    lbFremd.Items[5]  :=ini.ReadString('Vokabeln','Fremdsprache5','');
    lbSprache.Items[6]:=ini.ReadString('Vokabeln','Deutsch6','');
    lbFremd.Items[6]  :=ini.ReadString('Vokabeln','Fremdsprache6','');
    lbSprache.Items[7]:=ini.ReadString('Vokabeln','Deutsch7','');
    lbFremd.Items[7]  :=ini.ReadString('Vokabeln','Fremdsprache7','');
    lbSprache.Items[8]:=ini.ReadString('Vokabeln','Deutsch8','');
    lbFremd.Items[8]  :=ini.ReadString('Vokabeln','Fremdsprache8','');
    lbSprache.Items[9]:=ini.ReadString('Vokabeln','Deutsch9','');
    lbFremd.Items[9]  :=ini.ReadString('Vokabeln','Fremdsprache9','');
    lbSprache.Items[10]:=ini.ReadString('Vokabeln','Deutsch10','');
    lbFremd.Items[10]  :=ini.ReadString('Vokabeln','Fremdsprache10','');
    lbSprache.Items[11]:=ini.ReadString('Vokabeln','Deutsch11','');
    lbFremd.Items[11]  :=ini.ReadString('Vokabeln','Fremdsprache11','');
    lbSprache.Items[12]:=ini.ReadString('Vokabeln','Deutsch12','');
    lbFremd.Items[12]  :=ini.ReadString('Vokabeln','Fremdsprache12','');
    lbSprache.Items[13]:=ini.ReadString('Vokabeln','Deutsch13','');
    lbFremd.Items[13]  :=ini.ReadString('Vokabeln','Fremdsprache13','');
    lbSprache.Items[14]:=ini.ReadString('Vokabeln','Deutsch14','');
    lbFremd.Items[14]  :=ini.ReadString('Vokabeln','Fremdsprache14','');
    lbSprache.Items[15]:=ini.ReadString('Vokabeln','Deutsch15','');
    lbFremd.Items[15]  :=ini.ReadString('Vokabeln','Fremdsprache15','');
    lbSprache.Items[16]:=ini.ReadString('Vokabeln','Deutsch16','');
    lbFremd.Items[16]  :=ini.ReadString('Vokabeln','Fremdsprache16','');
    lbSprache.Items[17]:=ini.ReadString('Vokabeln','Deutsch17','');
    lbFremd.Items[17]  :=ini.ReadString('Vokabeln','Fremdsprache17','');
    lbSprache.Items[18]:=ini.ReadString('Vokabeln','Deutsch18','');
    lbFremd.Items[18]  :=ini.ReadString('Vokabeln','Fremdsprache18','');
    ini.Free;

end;


lbNummer ist das Label das zählt wieviele Voks es sind. Bei beginn des Abfragens steht es auf 1.
Das sieht nun nicht so sauber aus...
Ich habe es auch schon probiert das er in lbSprache.Items[i] das reinschreibt was in Sprache[i] vorkommt doch nach eingier Zeit und nicht laden-können ist mir der Fehler aufgefallen:

Er schreibt beispielsweise in lbSprache.Items[0] das was in Sprache0,1,2,3,4,5

Habt ihr eine Idee?

Schweini
Xion
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
EE-Maler
Beiträge: 1952
Erhaltene Danke: 128

Windows XP
Delphi (2005, SmartInspect), SQL, Lua, Java (Eclipse), C++ (Visual Studio 2010, Qt Creator), Python (Blender), Prolog (SWIProlog), Haskell (ghci)
BeitragVerfasst: Mo 14.01.08 18:41 
die "Laden-procedure" vereinfacht:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  A:=0;
  while ini.ReadString('Vokabeln','Deutsch'+inttostr(A),'')<>'' do {hier wäre besser etwas wie VarExists, also SectionExists eine Ebene niedriger. Weiß nicht, obs sowas gibt}
   begin
    lbSprache.Items[A]:=ini.ReadString('Vokabeln','Deutsch'+inttostr(A),'');
    lbFremd.Items[A]:=ini.ReadString('Vokabeln','Fremdsprache'+inttostr(A),''); 
    A:=A+1;
   end;

_________________
a broken heart is like a broken window - it'll never heal
In einem gut regierten Land ist Armut eine Schande, in einem schlecht regierten Reichtum. (Konfuzius)