ini Datei erstellen für mehrere Profile

Anfängerfragen zum Programmieren mit PureBasic.
schleicher
Beiträge: 214
Registriert: 30.03.2014 19:57
Computerausstattung: Purebasic 5.70
Wohnort: 18314 Löbnitz

ini Datei erstellen für mehrere Profile

Beitrag von schleicher »

Ich möchte Profile in diese ini speichern. Ein Profil enthält : Profilname,Ip,Username,Passwort usw
Wie das mit einem Profil geht weis ich, aber wie funktioniert das mit mehreren Profilen

Die Profile sollen beim auslesen der ini in enem Listviewgadget dargestellt werden.
Die einzelnen anderen Sachen wie IP, Username , Passwort usw haben jeweils ein eigenes Stringgadget,die
beim aufrufen des Profils mit den Daten aus der ini gefüllt werden sollen und anders herum sollen die Daten aus den Stringgadget in die ini geschrieben werden

Ich habs mit den verschiedenen PreferenceGroup (mit Namen des Profils) versucht
Somit habe ich mehrere PreferenceGroup´s mit Profilname, Username usw.
Das klappt auch, aber das aulesen der
ini mit

Code: Alles auswählen

AddGadgetItem(#List_Profile,-1 ,ReadPreferenceString("Profil", ""),0,0)
bringt kein Ergebnis, wenn ich nicht die PreferenceGroup angebe. Ich möchte jedoch alle Profile im Listviewgadget angezeigt werden und das beim Aufruf des Profils dann die Stringgadgets für Username, Passwort usw. gefüllt werden.

Kann jamand helfen ?
Purebasic 5.51
Derren
Beiträge: 558
Registriert: 23.07.2011 02:08

Re: ini Datei erstellen für mehrere Profile

Beitrag von Derren »

Warum gibt's du denn nicht einfach die PreferenceGroup an? Wo ist das Problem?

Oder du baust die Ini so auf

Code: Alles auswählen

Profile = "Default"
IP = "x.x.x.x"
User = "Test"
Password = "123456"

[Profile01]
Profile = "Alternative"
IP = "x.x.x.x"
User = "Hans Vader"
Password = "123456"

[Profile02]
Profile = "BlaBla"
IP = "x.x.x.x"
User = "Blub"
Password = "123456"
Wenn du keine PreferenceGroup auswählst sollte jetzt das Default Profil ausgegeben werden.
Signatur und so
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: ini Datei erstellen für mehrere Profile

Beitrag von Bisonte »

Er möchte vermutlich wissen... : Wenn man die Profilnamen nicht kennt, wie geht das ... (glaub ich)

Man kann mit ExaminePreferenceGroups() durch die alle Gruppen durchwandern.

Kleines Beispiel:

Code: Alles auswählen

OpenPreferences("Profile.ini")
A = ExaminePreferenceGroups()
If A
   While NextPreferenceGroup()
      Group$ = PreferenceGroupName() ; Hier der Name des Profils in Group$
      ;- jetzt kann man hier die Keys auslesen
      IP$ = ReadPreferenceString("IP","n/a")
      User$ = ReadPreferenceString("User","n/a")
      ; ... usw
      Debug "Profile : ["+Group$+"] User : "+User$+" - IP : " + IP$
   Wend   
EndIf
ClosePreferences()
Das gleiche funktioniert auch mit den Keys...

Das ganze in eine LinkList oder ein Array speichern und so kann man bequem Gadgets befüllen.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
schleicher
Beiträge: 214
Registriert: 30.03.2014 19:57
Computerausstattung: Purebasic 5.70
Wohnort: 18314 Löbnitz

Re: ini Datei erstellen für mehrere Profile

Beitrag von schleicher »

Danke für die Antworten. Inzwischen habe ich ich das auch mit den Preferenerade erledizgruppen über eine Structur hinbekommen. Das einzige was noch nicht funktionieren will ist dgt.as die Gruppen im Listgadet dargestellt werden.

Code: Alles auswählen

group.s = PreferenceGroupName()  
 AddGadgetItem(#List_Profile, 0, group )
Addgadgetitem funktioniert wie angegeben nicht. Warum ? Ist doch richtig oder ?



Hat sich gerade erledigt das Problem. Hatte Schreibfehler in der Declaration des Listviewgadgets.
Purebasic 5.51
Benutzeravatar
Sicro
Beiträge: 964
Registriert: 11.08.2005 19:08
Kontaktdaten:

Re: ini Datei erstellen für mehrere Profile

Beitrag von Sicro »

schleicher hat geschrieben:

Code: Alles auswählen

group.s = PreferenceGroupName() 
 AddGadgetItem(#List_Profile, 0, group )
Hier ist kein Fehler vorhanden. Ich an deiner Stelle hätte zwar -1 als Index genommen, dass die neuen Einträge unter den anderen Einträgen eingefügt werden, aber das kann jeder machen, wie er will.
schleicher hat geschrieben:Addgadgetitem funktioniert wie angegeben nicht.
Was funktioniert denn nicht? Werden überhaupt keine Einträge zur Liste hinzugefügt? Gebe uns mal mehr Code preis.

Edit:
schleicher hat geschrieben:Hat sich gerade erledigt das Problem. Hatte Schreibfehler in der Declaration des Listviewgadgets.
Ok
Bild
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
schleicher
Beiträge: 214
Registriert: 30.03.2014 19:57
Computerausstattung: Purebasic 5.70
Wohnort: 18314 Löbnitz

Re: ini Datei erstellen für mehrere Profile

Beitrag von schleicher »

Ein Problem gelöst taucht schon das nächste auf .
Alle PreferenceGroupName() werden nun im Listgadget angezeigt(im meinem Test sind es drei) mit verschiedenen Namen, die der Benutzer sebst festgelegt hat.
Nun die Frage. Wie bekomme ich den im Listgadget angeklickten PreferenceGroupName() in eine Stringvariable gespeichert ? Ist warscheinlich simpel, aber als Anfänger hat mans halt schwer.
Purebasic 5.51
Benutzeravatar
HeX0R
Beiträge: 3042
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3
Kontaktdaten:

Re: ini Datei erstellen für mehrere Profile

Beitrag von HeX0R »

Code: Alles auswählen

Case #PB_Event_Gadget
	Select EventGadget()
		Case #List_Profile
			If EventType() = #PB_EventType_LeftClick
				a$ = GetGadgetText(#List_Profile)
schleicher
Beiträge: 214
Registriert: 30.03.2014 19:57
Computerausstattung: Purebasic 5.70
Wohnort: 18314 Löbnitz

Re: ini Datei erstellen für mehrere Profile

Beitrag von schleicher »

Besten Dank. Funktioniert.
Purebasic 5.51
Antworten