La Web del Programador: Comunidad de Programadores
 
    Pregunta:  17525 - API GETPRIVATEPROFILESTRING
Autor:  santi chine
Hola me preguntaba si me podías ayudar con una funcion:

Estoy en Win98 y me falla la API GetPrivateProfileString.

Cuando intento compilar el programa la funcion genera el siguiente error: No se ha encontrado el archivo : Kernel
Este es el codigo q utiliza

Dim cCadena As String
Dim nLonCadena, nResp As Integer
cCadena$ = Space$(255)
nLonCadena = 0
nResp = GetPrivateProfileString(cSeccion, cItem, "", cCadena,
ncadena, cNomFich)
cCadena = Left$(cCadena, nResp)
LeeINI = cCadena

El fin de este codigo es cargar en una variable una cadena especifica de un fichero ini.

Espero q me podais dar alguna solucion.

  Respuesta:  Heroe
Proba con este codigo, tenes tanto la funcion para leer como para escribir....

Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, ByVal lpFileName As String) As Long

Declare Function WritePrivateProfileString Lib "kernel32" Alias "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, ByVal lpString As Any, ByVal lpFileName As String) As Long

Public Function ReadParametro(ByVal Seccion As String, ByVal Variable As String, ValorDefault As String, StrRuta As String) As String
Dim StrBuffer As String
Dim ValueReturn As Long

StrBuffer = String$(255, 0)
ValueReturn = GetPrivateProfileString(Seccion, Variable, ValorDefault, StrBuffer, Len(StrBuffer), StrRuta)
ReadParametro = Trim$(Left$(StrBuffer, InStr(StrBuffer, Chr$(0)) - 1))

End Function

Public Sub SaveParametro(ByVal Seccion As String, ByVal Variable As String, ByVal Valor As String, StrRuta As String)
Dim StrBuffer As String
Dim ValueReturn As Long

StrBuffer = String$(255, 0)
ValueReturn = WritePrivateProfileString(Seccion, Variable, Valor, StrRuta)

End Sub

Cualquier duda, avisame..

PATO