Autor Beitrag
WormHole
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 145



BeitragVerfasst: Di 02.08.05 17:48 
Ich habe eine Listbox in dieser stehen mehrere Namen.
Diese sollen 2 Gruppen zugeordnet werden z.B.

Gruppe1:
Paul
Peter
Hans

Gruppe2:
Anne
Jochen

Die Gruppen kann ich in einer Combobox auswählen wenn ich das tue sollen die richtigen Namen in der Listbox erscheinen(Sie sollen also beim ändern der Combobox aus der ini gelesen werden - und auch alle untereinander stehen, so, dass man sie einzeln auswählen kann)
Wie geht das?
en!gma
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Di 02.08.05 17:53 
hmm gut das du einen thread erstellst.
ich hatte nämlich genau das gleiche vor, nur halt andersrum, also ausreden :D

zum speichern hab ich mir gedacht, dass man es so einspeichern könnte als 1 string:

ausblenden Quelltext
1:
2:
3:
[namen]
gruppe1=°Paul°,°Peter°,°Hans°
gruppe2=°Anne°,°Jochen°


und dann liest man das später so aus.
aber keinen plan wie das geht :D

//edit
also man macht ne listbox. dann on click führt man die ladeprozedur aus.
und da dann irgendwie mit

ausblenden Delphi-Quelltext
1:
2:
for i:=0 to gruppe1[size] do
listbox1.addline(gruppe1[i]);


oder sowas in der art

Moderiert von user profile iconraziel: Delphi-Tags hinzugefügt.
WormHole Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 145



BeitragVerfasst: Di 02.08.05 17:56 
Ja, ich hatte es auch schon mit Delimitedtext versucht, dann wird es so gespeichert wie es bei dir steht, aber beim auslesen in der Listbox ist es dann halt nur ein item und man kann die items nicht mehr einzeln auswählen.
en!gma
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Di 02.08.05 17:58 
also irgendwie kann man die wörter darin trennen.
und wenn man die getrennt und in ein array gespeichert hat.
dann kann man die so oder ähnlich in eine listbox füllen:


ausblenden Quelltext
1:
2:
for i:=0 to gruppe1[size] do
listbox1.addline(gruppe1[i]);
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 02.08.05 18:07 
Die Ini muss so aussehen

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
[Jungs]
Anzahl Jungen=3
Junge1=Paul
Junge2=Peter
Junge3=Hans

[Mädchen]
Anzahl Mädchen=2
Mädchen1=Anne
Mädchen2=Jochen


Auslesen:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
uses IniFiles;

procedure xyz;
var Ini: TIniFile;
    i, j: Integer;
begin
 Ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'Ini.ini'); //Ini öffnen
 i:=Ini.ReadInteger('Jungs', 'Anzahl Jungen', 0); //liest die Anzahl der Jungen aus, wenn kein gültiger Integerwert dort steht ergibt die Funktion 0
 for j:=1 to i do
  begin
   String[j]:=Ini.ReadString('Jungs', 'Junge'+IntToStr(j), ''); //liest den Jungen j ein
  end;
 FreeAndNil(Ini); //Freigeben der Ini
end;


Für Mädchen kannst du es selber machen.
en!gma
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 378

win xp
delphi 7.0
BeitragVerfasst: Di 02.08.05 18:08 
würde es auch so gehen wie ich es vorgeschlagen habe?
oder ist das eher unschön?
weiss nicht, so würde man schon platz sparen :D
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 02.08.05 18:10 
Ja es würde so gehen. Allerdings mit wesentlich mehr Aufwand, da du die Strings noch zerlegen musst.
WormHole Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 145



BeitragVerfasst: Di 02.08.05 18:14 
könnte jemand auch mal kurz erklären wie das mit der oben beschriebenen formatierung beim speichern geht?

greetz WormHole
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 02.08.05 18:33 
Meinst du die Formatierung von en!gma? Oder die der Ini?
WormHole Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 145



BeitragVerfasst: Di 02.08.05 18:39 
wie ich das in der:

[Jungs]
Anzahl Jungen=3
Junge1=Paul
Junge2=Peter
Junge3=Hans


[Mädchen]
Anzahl Mädchen=2
Mädchen1=Anne
Mädchen2=Jochen

Formatierung in die ini speichern können (aus der listbox, denn die ist im programm veränderbar)
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Di 02.08.05 18:55 
Die Ini besteht aus 3 Dingen.
1. Abschnittsname
2. Wertname
3. Wert

Und so ist eine Ini aufgebaut

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
[Abschnittsname]
Wertname=Wert
Wertname=Wert
...

[Abschnittsname]
Wertname=Wert
Wertname=Wert
...


Und ReadInteger verlangt die Paramter(in der Reihenfolge) Abschnittsname, Wertname und den Standardrückgabewert (in der Reihenfolge). Der Standardrückgabewert wird zurückgegeben, wenn der Wert des Wertnamens ungültig ist.
WormHole Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 145



BeitragVerfasst: Di 02.08.05 19:33 
Also nochmal:

Ich möchte gerne alle Listbox einträge in eine ini schreiben

gruppewählen.text = Combobox mit den verschiedenen gruppen (Gruppe 1, Gruppe 2 etc).
mitgliederlist = Listbox in der die Namen stehen.

ausblenden Delphi-Quelltext
1:
ini.WriteString(gruppewaehlen.text,'Gruppe',mitgliederlist.???  //Wie kann ich es machen das alle einträge in die ini kommen?					


Es ist ein bisschen schwierig zu erklären, ich danke für eure Geduld...

Dankeschön im Vorraus!
WormHole
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 02.08.05 23:24 
Moin!

Schau mal hier, das sollte dir helfen.

cu
Narses
WormHole Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 145



BeitragVerfasst: Di 02.08.05 23:28 
Das habe ich schon gefunden, nur, um ehrlich zu sein, blicke ich da total nich durch und deswegen frage ich ob es eine andere, einfachere Methode gibt.... !?!
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10185
Erhaltene Danke: 1261

W11x64
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 02.08.05 23:56 
Moin!

OK, hab mir nochmal genau angesehen, was du da im ersten Beitrag geschrieben hast... :wink:

user profile iconWormHole hat folgendes geschrieben:
Ich habe eine Listbox in dieser stehen mehrere Namen.
Diese sollen 2 Gruppen zugeordnet werden z.B.
Die Gruppen kann ich in einer Combobox auswählen

Hier stellt sich mir die Frage, ob du die Zuordnung der Namen zu den Gruppen auch im Programm erledigen willst oder ob die Namen bereits zugeordnet in der INI stehen sollen. Also, Frage:
Stehen die Namen nur als Liste (sozusagen ungeordnet) in der INI oder ist da bereits die Gruppenzuordnung vorgesehen?

cu
Narses
WormHole Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 145



BeitragVerfasst: Mi 03.08.05 08:08 
In der Ini soll schon die Gruppenzuordnung vorhanden sein. Um es noch einmal deutlicher zu zeigen:

z.B:

Ein "Spieler" möchte gerne wissen welche Charakter alle in Gruppe 1 sind. Er geht auf die Combobox und wählt Gruppe 1 aus. Nun erscheinen alle Namen der Charaktere in der Listbox. Dann möchte er einen weiteren Charakter in diese Gruppe packen. Er geht auf Charakter hinzufügen (is ein button und das klappt auch) und der Charakter erscheint in der Listbox.
Nun möchte er auch noch die Charaktere der Gruppe 2 sehen. Er klickt in der Combobox auf Gruppe 2 und die Namen erscheinen wieder in der Listbox. Dann will er sich nochmal die Namen der Gruppe 1 ansehen, er klickt wieder in der Combobox auf Gruppe 1 und es sollen die Namen aller (also auch der Name von dem Charakter den er gerade erst hinzugefügt hat) erscheinen.


Hoffe diesmal ist es klar ;)
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mi 03.08.05 08:41 
Das hinzufügen zu der Ini kannst du so realisieren (wieder nur für Jungs, Mädchen musst du selber machen)

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure abc (Junge: String);
var Ini: TIniFile;
    i: Integer;
begin
 Ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'Ini.ini'); //Ini öffnen
 i:=Ini.ReadInteger('Jungs', 'Anzahl Jungen', 0); //liest die Anzahl der Jungen aus, wenn kein gültiger Integerwert dort steht ergibt die Funktion 0
 inc(i); //erhöht die Jungs um eine Person
 Ini.WriteInteger('Jungs', 'Anzahl Jungen', i); //schreibt die neue Jungenanzahl in die Ini
 Ini.WriteString('Jungs', 'Junge'+IntToStr(i), Junge); //schreibt den Namen in die Ini
 FreeAndNil(Ini); //Freigeben der Ini
end;
WormHole Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 145



BeitragVerfasst: Mi 03.08.05 09:16 
user profile iconHeiko hat folgendes geschrieben:

ausblenden Delphi-Quelltext
1:
   String[j]:=Ini.ReadString('Jungs', 'Junge'+IntToStr(j), ''); //liest den Jungen j ein					


Da gibt er mir nen Fehler:
( expected but [ found.

Wenn ich die Klammer veränder gibt er mir den fehler:
Assignment to FOR loop variable j.

Das rall ich mal wieder net ;)
Heiko
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3169
Erhaltene Danke: 11



BeitragVerfasst: Mi 03.08.05 09:26 
Kennst du arrays?
Radioactive
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 179

Win 98, Win XP Home SP2
D3 Prof, D7 Pers, D2005 Pers
BeitragVerfasst: Mi 03.08.05 09:27 
"String" ist ein Eigenname. Du musste eine Variable deklarieren, die nicht "String" heißt, z.B. "MeinString".
"MeinString" sollte außerdem ein Array of String sein, also:
ausblenden Delphi-Quelltext
1:
2:
var
  MeinString: Array of String;

oder ohne dynamische Arrays:
ausblenden Delphi-Quelltext
1:
2:
var
  MeinString: Array[1..5] of String;

_________________
Radioactive
"Wer scrollt, verliert!" Matthias Stein, Informatiklehrer am GG