TIni Datei
-
void __fastcall TForm3::FormCreate(TObject *Sender) { AnsiString Nick; AnsiString Loginname; AnsiString Password; AnsiString IP; AnsiString Servername; TIniFile *TsDatei = new TIniFile( "Data\\TsDatei.ini"); TStringList *SList=new TStringList(); TsDatei->ReadSections(SList); for (int i=1;i<=SList->Count;i++) { Servername=SList->Strings[i-1]; Nick=TsDatei->ReadString(Servername,"Nick",0); Loginname=TsDatei->ReadString(Servername,"Loginname",0); Password=TsDatei->ReadString(Servername,"Password",0); IP=TsDatei->ReadString(Servername,"IP",0); } ListBox1->Items=SList; ListBox1->ItemIndex=100; delete TsDatei; delete SList; } // zum auslesen und in die Listbox anzuzeigen //--------------------------------------------------------------------------- void __fastcall TForm3::Button1Click(TObject *Sender) { AnsiString Nick; AnsiString Loginname; AnsiString Password; AnsiString IP; AnsiString Servername; TIniFile *TsDatei = new TIniFile( "Data\\TsDatei.ini"); TStringList *SList=new TStringList(); TsDatei->ReadSections(SList); for (int i=1;i<=SList->Count;i++) { Servername=SList->Strings[i-1]; Nick=TsDatei->ReadString(Servername,"Nick",0); Loginname=TsDatei->ReadString(Servername,"Loginname",0); Password=TsDatei->ReadString(Servername,"Password",0); IP=TsDatei->ReadString(Servername,"IP",0); } ListBox1->Items=SList; ListBox1->ItemIndex=100; delete TsDatei; delete SList; AnsiString Command; Command= "start teamspeak://"+IP+"?nickname="+Nick+"?loginname="+Loginname+"?password="+Password; system(Command.c_str()); Close(); } // zum connecten auf den tsAlso die TIni datei wird richtig abgespeichert!!
Aber sobalt man mehr als zwei acc in der datei abgespeichert hat connectet man immer auf den selben TS Server.Bitte um hilfe
-
Schau doch mal mit dem Debugger durch. Statt system(start...) sollte man lieber ShellExecute nehmen.
Gruss
-
Du liest die komplette Ini-Datei und zum Schluß stehen dann natürlich die Werte aus der letzten Sektion in den AnsiStrings.
Wie willst du den angeben mit welchem Server du dich verbinden willst?
-
Das is ja mein prob ich habe keinen plan wie ich das hinbekommen kann so das ich auf den ts connecte den ich in der Listbox anklicke were nett wenn einer vielleicht den passenden code dafür schreiben kann dann wer mir echt sehr geholfen!!!
-
hi,
ich hoffe ich kann dir helfen
zur übersicht wäre vllt vorteilhaft die einlese prozedur der ini-datei in eine sep.funktion zu packen und diese dann aus formcreate aufzurufen
das selbe könntest du machen zum füllen deiner listbox
nun könntest du dein ini-datei aufgebaut haben wie folgt
[default]
nick=nickname
server=server1
password=password1
login=login1
ip=ip1[server1]
nick=nickname
password=password1
login=login1
ip=ip1
[server2]
nick=nickname
server=server1
password=password1
login=login1
ip=ip1etc.
bei aufruf liest du die daten ein der sektion "default" und benutzt diese zum verbindenbeim manuellen verbinden, kannst du deinen ausgewählten eintrag
listbox->items->item[1]__property bool Selected[int Index] = {read=GetSelected, write=SetSelected};beispiel:
for (int i = 0; i < ListBox1->Items->Count; i++) { if (ListBox1->Selected[i]) { ListBox1->Items->Strings[i] <<-- tue irgendwas } }..ausgewählten eintrag als "default" speichern in der ini
gruß
x