Leer todas las entradas sección archivo ini

Leer todas las entradas sección archivo ini

Postby leandro » Fri Dec 01, 2023 9:03 pm

Hola buenas tardes,

De nuevo por aqui molestando :oops: necesitamos recuperar todas las entradas de una sección de un archivo .ini

Sabemos como recuperar una entrada especifica de una sección, pero no logramos recuperar todas las entradas de la sección.

De antemano gracias
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1676
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia

Re: Leer todas las entradas sección archivo ini

Postby Enrico Maria Giordano » Fri Dec 01, 2023 10:29 pm

Code: Select all  Expand view  RUN
FUNCTION GETPVPROFSECTION( cSection, cIniFile )

    LOCAL cKeys := STRTRAN( GETPVPROFSTRING( cSection, , "", cIniFile ), CHR( 0 ), CRLF )

    LOCAL aKeys := {}

    LOCAL i

    FOR i = 1 TO MLCOUNT( cKeys )
        AADD( aKeys, RTRIM( MEMOLINE( cKeys, , i ) ) )
    NEXT

    RETURN aKeys


Code: Select all  Expand view  RUN
FUNCTION GETPVPROFSECTIONNAMES( cIniFile )

    LOCAL cBuf := SPACE( 65536 )

    LOCAL aSec := {}

    GETPRIVATEPROFILESECTIONNAMES( cBuf, 65536, cIniFile )

    WHILE LEFT( cBuf, 1 ) != CHR( 0 )
        AADD( aSec, LEFT( cBuf, AT( CHR( 0 ), cBuf ) - 1 ) )
        cBuf = SUBSTR( cBuf, AT( CHR( 0 ), cBuf ) + 1 )
    ENDDO

    RETURN aSec


Code: Select all  Expand view  RUN
#pragma BEGINDUMP

#include "windows.h"
#include "hbapi.h"

HB_FUNC( GETPRIVATEPROFILESECTIONNAMES )
{
    hb_retnl( GetPrivateProfileSectionNames( ( LPTSTR ) hb_parc( 1 ), hb_parnl( 2 ), hb_parc( 3 ) ) );
}

#pragma ENDDUMP
User avatar
Enrico Maria Giordano
 
Posts: 8718
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: Leer todas las entradas sección archivo ini

Postby paquitohm » Sat Dec 02, 2023 12:53 pm

Code: Select all  Expand view  RUN
hIni:= hb_ReadIni( "File.Ini" )
hSeccionXX:= hIni["SeccionXX"]
xValorN01:= hSeccionXX["EntradaN01"]
xValorN02:= hSeccionXX["EntradaN02"]
xValorN03:= hSeccionXX["EntradaN03"]
 
paquitohm
 
Posts: 266
Joined: Fri Jan 14, 2022 8:37 am

Re: Leer todas las entradas sección archivo ini

Postby FranciscoA » Sat Dec 02, 2023 4:43 pm

Leandro, en su momento, esto lo tomé del foro, posteado por ukoenig. Espero te sirva.

Code: Select all  Expand view  RUN
//-------------------------------------------------//
// INI FILE TO ARRAY
//---------------------------------------------//LEER ENTRADAS/VALORES EN UNA SECCION DEL INI
Function ReadIniSection(cIniF,cSection)
Local aData := {}, n, nEntries
local   nEntryNamePos, nEntryValuePos, cEntryName, cEntryValue
Local cEntry := StrTran(GetPVProfString(cSection, , ,cIniF), Chr(0), CRLF)

If Empty( cEntry )
   aadd( aData, {" "," "} )
Else
   nEntries := MlCount(cEntry)
   FOR n := 1 TO nEntries
       nEntryNamePos  := AT( "=", Alltrim(cEntry) )
       nEntryValuePos := LEN( Alltrim(cEntry) ) - nEntryNamePos
       cEntryName     := Trim(Memoline(cEntry, 254, n ))
       cEntryValue    := GetPvProfString(cSection,cEntryName,"",cIniF)
       aadd( aData, { PADR( cEntryName, 15, " "),  PADR( cEntryValue, 35, " ") } )
   NEXT
Endif

XBROWSER aData TITLE "LECTURA SECCION " + cSection + " DE INI " + cIniF ;
   SETUP ( oBrw:cHeaders := {"Nombre de Entrada","Valor de Entrada"} )

RETURN aData

 
Francisco J. Alegría P.
Chinandega, Nicaragua.

Fwxh-MySql-TMySql
User avatar
FranciscoA
 
Posts: 2159
Joined: Fri Jul 18, 2008 1:24 am
Location: Chinandega, Nicaragua, C.A.

Re: Leer todas las entradas sección archivo ini

Postby leandro » Mon Dec 04, 2023 2:59 pm

Excelente, muchas gracias por las respuestas.
Saludos
LEANDRO AREVALO
Bogotá (Colombia)
https://hymlyma.com
https://hymplus.com/
leandroalfonso111@gmail.com
leandroalfonso111@hotmail.com

[ Embarcadero C++ 7.60 for Win32 ] [ FiveWin 23.07 ] [ xHarbour 1.3.0 Intl. (SimpLex) (Build 20230914) ]
User avatar
leandro
 
Posts: 1676
Joined: Wed Oct 26, 2005 2:49 pm
Location: Colombia


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: D.Fernandez, Google [Bot] and 33 guests