murdoch201
Gebruiker
- Lid geworden
- 31 mei 2008
- Berichten
- 336
Hoi,
wanneer ik in VB6 een string met de inhoud "5012933097817594" in een ini met als value exist=1 laat schrijven krijg ik dit in de ini:
hoe kan dit nu? het gebeurt alleen met deze string, ook als de string een andere inhoud bevat. bv. "alej204kzl503k".
dit is mijn code (er zit natuurlijk nog veel meer in die sub, maar ik heb dit er even uitgehaald):
en dit is het bas bestand van de WriteIniValue functie:
wanneer ik in VB6 een string met de inhoud "5012933097817594" in een ini met als value exist=1 laat schrijven krijg ik dit in de ini:
Code:
[[[[5012933097817594]]]]
exist=1
hoe kan dit nu? het gebeurt alleen met deze string, ook als de string een andere inhoud bevat. bv. "alej204kzl503k".
dit is mijn code (er zit natuurlijk nog veel meer in die sub, maar ik heb dit er even uitgehaald):
Code:
Dim itemcode As String
WriteIniValue ("codes.ini"), itemcode, "exist", "1"
en dit is het bas bestand van de WriteIniValue functie:
Code:
Option Explicit
Public Function WriteIniValue(INIpath As String, PutKey As String, PutVariable As String, PutValue As String)
Dim Temp As String
Dim LcaseTemp As String
Dim ReadKey As String
Dim ReadVariable As String
Dim LOKEY As Integer
Dim HIKEY As Integer
Dim KEYLEN As Integer
Dim VAR As Integer
Dim VARENDOFLINE As Integer
Dim NF As Integer
Dim X As Integer
INIpath = App.Path & "\" & INIpath
AssignVariables:
NF = FreeFile
ReadKey = vbCrLf & "[" & LCase$(PutKey) & "]" & Chr$(13)
KEYLEN = Len(ReadKey)
ReadVariable = Chr$(10) & LCase$(PutVariable) & "="
EnsureFileExists:
Open INIpath For Binary As NF
Close NF
SetAttr INIpath, vbArchive
LoadFile:
Open INIpath For Input As NF
Temp = Input$(LOF(NF), NF)
Temp = vbCrLf & Temp & "[]"
Close NF
LcaseTemp = LCase$(Temp)
LogicMenu:
LOKEY = InStr(LcaseTemp, ReadKey)
If LOKEY = 0 Then GoTo AddKey:
HIKEY = InStr(LOKEY + KEYLEN, LcaseTemp, "[")
VAR = InStr(LOKEY, LcaseTemp, ReadVariable)
If VAR > HIKEY Or VAR < LOKEY Then GoTo AddVariable:
GoTo RenewVariable:
AddKey:
Temp = Left$(Temp, Len(Temp) - 2)
Temp = Temp & vbCrLf & vbCrLf & "[" & PutKey & "]" & vbCrLf & PutVariable & "=" & PutValue
GoTo TrimFinalString:
AddVariable:
Temp = Left$(Temp, Len(Temp) - 2)
Temp = Left$(Temp, LOKEY + KEYLEN) & PutVariable & "=" & PutValue & vbCrLf & Mid$(Temp, LOKEY + KEYLEN + 1)
GoTo TrimFinalString:
RenewVariable:
Temp = Left$(Temp, Len(Temp) - 2)
VARENDOFLINE = InStr(VAR, Temp, Chr$(13))
Temp = Left$(Temp, VAR) & PutVariable & "=" & PutValue & Mid$(Temp, VARENDOFLINE)
GoTo TrimFinalString:
TrimFinalString:
Temp = Mid$(Temp, 2)
Do Until InStr(Temp, vbCrLf & vbCrLf & vbCrLf) = 0
Temp = Replace(Temp, vbCrLf & vbCrLf & vbCrLf, vbCrLf & vbCrLf)
Loop
Do Until Right$(Temp, 1) > Chr$(13)
Temp = Left$(Temp, Len(Temp) - 1)
Loop
Do Until Left$(Temp, 1) > Chr$(13)
Temp = Mid$(Temp, 2)
Loop
OutputAmendedINIFile:
Open INIpath For Output As NF
Print #NF, Temp
Close NF
End Function