INI ==> schreiben

hallo!

ich habe da ein projekt und möchte eingaben des users in einer ini-datei speichern!

eigentlich ist es kein problem… wirteprivateprofilestring …

möchte aber die werte mit einer schliefe füllen, damit ich mir sehr viel tipparbeit erspare!

also hier mal ein auszug meines versuches:

Dim MoSt(10) As String
Dim DiSt(10) As String
Dim MiSt(10) As String
Dim DoSt(10) As String
Dim FrSt(10) As String
Dim SaSt(10) As String
Dim SoSt(10) As String
Dim iniPfad As String

MoSt(1) = MSFlexGrid1.TextMatrix(2, 1)
MoSt(2) = MSFlexGrid1.TextMatrix(3, 1)
MoSt(3) = MSFlexGrid1.TextMatrix(4, 1)
MoSt(4) = MSFlexGrid1.TextMatrix(5, 1)
MoSt(5) = MSFlexGrid1.TextMatrix(6, 1)
MoSt(6) = MSFlexGrid1.TextMatrix(7, 1)
.
.
.
.

'so jetzt zum schreiben mittels schleife

iniPfad = App.Path & „\Programm.ini“

For i = 1 To 10
WritePrivateProfileString „Mo“, i, MoSt(0), iniPfad
Next i

Die Ini Datei sollte danach so ausschauen:

[Mo]
1=„test“
2=„test1“
3=„test2“
.
.
.
usw…

bekomm aber das mit dieser schleife nicht hin!

das i in der funktion : WritePrivateProfileString „Mo“, i, MoSt(0), iniPfad

verursacht einen fehler==>typen unverträglich!

wie kann ich das ändern, damit es funktioniert?

danke und mfg
michael

Hi Michael,
bin mir gerade nicht sicher, aber erwartet die Funktion nicht einen Rückgabewert? Also

variable = WritePrivateProfileString „Mo“, i, MoSt(0), iniPfad

vom Typ Long. Try and error!

Viele Grüße,
Julia

hallo

bin mir gerade nicht sicher, aber erwartet die Funktion nicht
einen Rückgabewert? Also

variable = WritePrivateProfileString „Mo“, i, MoSt(0), iniPfad

nein! nur die GetIniSetting erwartet einen Rückgabe wert:

variable = GetIniSetting …

Hab das Problem schon gelöst! die Funktion WritePrivateProfile erwartet an der Stelle wo das i steht einen String! mein lösung lautet daher

For i = 0 to 10
WritePrivateProfileString „Mo“, CStr(i), MoSt(i), iniPfad
next i

Aber komischer Weise funktioniert dashier nicht:

Dim i as String

For i = 0 to 10

next i

warum funktioniert das so nicht? kannst mir das bisschen erklären?

mfg
michael

Hi Michael!

Aber komischer Weise funktioniert dashier nicht:

Dim i as String

For i = 0 to 10

next i

warum funktioniert das so nicht? kannst mir das bisschen
erklären?

Na ja, ein String bedeutet immer Anführungszeichen, also „1“, außerdem kann man dann ohne Umwandlungsfunktionen nicht mehr damit rechen/ zählen.

Noch eine Bitte: mir ist öfters aufgefallen, daß du hier Probleme postest und wenn dir jemand antwortet, hast du die Lösung schon selbst gefunden. Das ist für die Antwortgeber recht frustrierend, denn man muß ja auch was nachgucken und investiert Zeit und Mühe, hier eine Antwort zu schreiben, um dann von dir zu hören, daß du die Lösung schon selbst gefunden hast. Wenn dem so ist, poste doch einfach noch „Lösung schon gefunden“, dann weiß man, daß man nicht mehr zu antworten braucht.

Viele Grüße,
Julia

Hallo michael,

Aber komischer Weise funktioniert dashier nicht:

Dim i as String

For i = 0 to 10

next i

warum funktioniert das so nicht? kannst mir das bisschen
erklären?

Du hast da ein Grundsätzliches Verständnisproblem mit Programmiersprachen.

Dim i As Integer

Damit deklarierst du eine Variable, welche Ganzzahlen, also Zahlen ohne Nachkommastellen, enthält.
Enn ich unter diesen Bedingungen z.B. den Wert 5 nehme, kann mir jeder sagen, welcher Wert direkt danach kommt, nähmlich die 6.

Dim i As String

Erzeigt eine Variable, welche Zeichenketten, also Buchstaben, Zahlen, Satz- und Sonderzeichen, abspeichert.
Und jetzt die Frage an dich:
WAS kommt nach „Hallo“ ???

MfG Peter(TOO)

OT

WAS kommt nach „Hallo“ ???

Natürlich „Welt“ :wink:

SCNR,
Michael

Hallo Michael,

WAS kommt nach „Hallo“ ???

Natürlich „Welt“ :wink:

Aber nur für C-Programmierer !!
Wir sind hier aber im BASIC-Brett.

*SCNR*

MfG Peter(TOO)