terminatorvb
Goto Top

VB Durch .ini den Inhalt einer Variable bzw. ComboBox befüllen

Hallo Programmierer!

Folgendes:

Ich möchte in einer .ini Datei eine Liste von Wörtern festhalten ungefähr so:

[Gesicht]
Face_N_Gomez
Face_N_Scar

[Körper]
BodyTex_L
BodyTex_B

*usw. was auch immer*

Beim Start des Programmes soll in einer Variable oder gleich ComboBox (was auch immer) der Inhalt des dazugehörigen Teils der .ini angezeigt werden
Beispiel: Beim Start des Programms soll in ComboBox1.Text (Gesicht) der Inhalt:

Face_N_Gomez
Face_N_Scar

stehen.
Wie genau kann man das bewerkstelligen?

Liebe Grüße,

TerminatorVB!

Content-Key: 161923

Url: https://administrator.de/contentid/161923

Ausgedruckt am: 28.03.2024 um 20:03 Uhr

Mitglied: Tommy70
Tommy70 03.03.2011 um 08:39:15 Uhr
Goto Top
Hallo,

da kommt es schon mal darauf an, welches VB du verwendest. Ist es noch VB 6 oder schon .NET?
Mitglied: TerminatorVB
TerminatorVB 03.03.2011 um 16:57:20 Uhr
Goto Top
Ich verwende VB Express 2010!
Müsste ja irgendwie möglich sein face-smile
Mitglied: mathe172
mathe172 03.03.2011 um 17:21:51 Uhr
Goto Top
Hallo,

entweder geht das mit
Dim Abschnitt as Integer
For each Zeile as String in Split(My.Computer.FileSystem.ReadAllText("File.ini"),vbnewline)  
If Zeile<>"" Then  
If Zeile="[Gesicht]" Then  
Abschnitt=1
ElseIf Zeile="[Körper]" Then  
Abschnitt=2
ElseIf Abschnitt=1 Then
ComboBox1.Items.Add(Zeile)
ElseIf Abschnitt=2 Then
ComboBox2.Items.Add(Zeile)
End If
End If
Next
Manche mögen das My aber nicht, deshalb:
Dim sr as new System.IO.Streamreader("File.ini")  
Dim Zeile as String
Dim Abschnitt as Integer
Do
Zeile=sr.readline()
If Zeile<>"" Then  
If Zeile="[Gesicht]" Then  
Abschnitt=1
ElseIf Zeile="[Körper]" Then  
Abschnitt=2
ElseIf Abschnitt=1 Then
ComboBox1.Items.Add(Zeile)
ElseIf Abschnitt=2 Then
ComboBox2.Items.Add(Zeile)
End If
End If
Loop Until Zeile=""  
Syntax ohne Gewähr face-wink
[Edit: Syntax korrigiert und einen Fehler behoben]
Mathe172
Mitglied: TerminatorVB
TerminatorVB 03.03.2011 um 19:27:07 Uhr
Goto Top
Danke! Geeeenaau das was ich brauche! :D

[EDIT] Und das kann mir noch in einem anderen Zusammenhang helfen, danke du bist der Beste! :D
[EDIT2] Da gibts noch was:

Wie mach ich das wenn ich 3 Kategorien auslesen will?
Mitglied: mathe172
mathe172 03.03.2011 um 21:17:46 Uhr
Goto Top
Hallo,

Kopiere die Zeilen 6 und 7 (erstes Beispiel) bzw. 9 und 10 (zweites) und füge sie darunter ein.
Ändere die Kennung ("[Körper]") und den Abschnitt (2)
Kopiere die Zeilen 10 und 11 (erstes Beispiel) bzw. 13 und 14 (zweites) und füge sie darunter ein.
Ändere den Abschnitt(2) und den ComboBoxnamen(Combobox2)
Das könnte dann so ausschauen:
Dim Abschnitt as Integer
For each Zeile as String in Split(My.Computer.FileSystem.ReadAllText("File.ini"),vbnewline)  
If Zeile<>"" Then  
If Zeile="[Gesicht]" Then  
Abschnitt=1
ElseIf Zeile="[Körper]" Then  
Abschnitt=2
ElseIf Zeile="[Hand]" Then  
Abschnitt=3
ElseIf Abschnitt=1 Then
ComboBox1.Items.Add(Zeile)
ElseIf Abschnitt=2 Then
ComboBox2.Items.Add(Zeile)
ElseIf Abschnitt=3 Then
ComboBox3.Items.Add(Zeile)
End If
End If
Next
oder
Dim sr as new System.IO.Streamreader("File.ini")  
Dim Zeile as String
Dim Abschnitt as Integer
Do
Zeile=sr.readline()
If Zeile<>"" Then  
If Zeile="[Gesicht]" Then  
Abschnitt=1
ElseIf Zeile="[Körper]" Then  
Abschnitt=2
ElseIf Zeile="[Hand]" Then  
Abschnitt=3
ElseIf Abschnitt=1 Then
ComboBox1.Items.Add(Zeile)
ElseIf Abschnitt=2 Then
ComboBox2.Items.Add(Zeile)
ElseIf Abschnitt=3 Then
ComboBox3.Items.Add(Zeile)
End If
End If
Loop Until Zeile=""  
Beidesmal wurde "Hand" als Kennung und Combobox3 alsCombobox benutzt

Mathe172
Mitglied: TerminatorVB
TerminatorVB 03.03.2011 um 21:52:57 Uhr
Goto Top
Bitte vergessen --------Das habe ich so gemacht, allerdings ist es dann passiert, dass der Inhalt der in ComboBox1 sein soll auch da ist (ist ja gut :D), aber ComboBox2 enthielt den Inhalt von der 2 und von ComboBox3 und in der 3 war überhaupt nix. Gibts da eine Erklärung? :D ------- Bitte vergessen

Das Problem war ich hatte [Rüstungen] mit ü und das war irgendwie der Fehler face-smile
Danke für eure Hilfe!!!