leadergl
08-04-2005, 09:21
Ragazzi ho un problema,
sto utilizzando in un mio progetto VisualBasic 6 i file .INI per gestire varie impostazioni del mio programma ed alcuni elementi di codice base che mi servono il problema è che ho notato che se devo leggere dal file qualcosa di abbastanza lungo questo viene troncato e non lo legge tutto.
Vi faccio un esempio pratico, devo leggere tra le varie cose, questo:
[FLEX_BASE]
Flex_004A=AAB0300001560000002F014E0000004A000100000146010100010200000100010100010001
000000000000000000000100000000010100010101010000020001000000000000000000000000FE01010001000100
0000000101010002010000000100010100000100000104010000000100000200000000000000000101000101000003
000000000001000000010000000000010000000100000001000000000000000000020000010302030D010405020D0A
021D1F0101030D0805320102030400160B0507010100000101000000000000000000FF1C0001010001010002000000
0001000001000100000100010000040001030000010101000000000000000000000101001F01010100000003000001
00000000000000010000010100000000000001020000000000000101000000000000FF05FF05FF05FF05FF05FF05FF
00000000000000000000000002000000000000000001000000000001000C4D
però ho notato che solo parte di questo, poco più di un terzo viene realmente letto.
Come posso fare per ottenere la lettura completa?
Ah, per leggere dai file .INI uso questo codice:
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ... As Long
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ... As Long
Public Function INIRead(File As String, Section As String, Item As String) As String
Dim sBuf As String
Dim iRC As Integer
sBuf = Space(255)
iRC = GetPrivateProfileString(Section, Item, "Not Found", sBuf, 255, App.Path + "/" + File)
sBuf = Left$(sBuf, iRC)
If StrComp(sBuf, "Not Found") = 0 Then
INIRead = vbNullString
Else
INIRead = sBuf
End If
End Function
Public Sub INIWrite(File As String, Section As String, Item As String, ItemValue As String)
WritePrivateProfileString Section, Item, ItemValue, App.Path + "/" + File
End Sub
sto utilizzando in un mio progetto VisualBasic 6 i file .INI per gestire varie impostazioni del mio programma ed alcuni elementi di codice base che mi servono il problema è che ho notato che se devo leggere dal file qualcosa di abbastanza lungo questo viene troncato e non lo legge tutto.
Vi faccio un esempio pratico, devo leggere tra le varie cose, questo:
[FLEX_BASE]
Flex_004A=AAB0300001560000002F014E0000004A000100000146010100010200000100010100010001
000000000000000000000100000000010100010101010000020001000000000000000000000000FE01010001000100
0000000101010002010000000100010100000100000104010000000100000200000000000000000101000101000003
000000000001000000010000000000010000000100000001000000000000000000020000010302030D010405020D0A
021D1F0101030D0805320102030400160B0507010100000101000000000000000000FF1C0001010001010002000000
0001000001000100000100010000040001030000010101000000000000000000000101001F01010100000003000001
00000000000000010000010100000000000001020000000000000101000000000000FF05FF05FF05FF05FF05FF05FF
00000000000000000000000002000000000000000001000000000001000C4D
però ho notato che solo parte di questo, poco più di un terzo viene realmente letto.
Come posso fare per ottenere la lettura completa?
Ah, per leggere dai file .INI uso questo codice:
Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" ... As Long
Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" ... As Long
Public Function INIRead(File As String, Section As String, Item As String) As String
Dim sBuf As String
Dim iRC As Integer
sBuf = Space(255)
iRC = GetPrivateProfileString(Section, Item, "Not Found", sBuf, 255, App.Path + "/" + File)
sBuf = Left$(sBuf, iRC)
If StrComp(sBuf, "Not Found") = 0 Then
INIRead = vbNullString
Else
INIRead = sBuf
End If
End Function
Public Sub INIWrite(File As String, Section As String, Item As String, ItemValue As String)
WritePrivateProfileString Section, Item, ItemValue, App.Path + "/" + File
End Sub