FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Leer todas las entradas secci贸n archivo ini
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Leer todas las entradas secci贸n archivo ini
Posted: Fri Dec 01, 2023 09: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

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]
Posts: 9022
Joined: Thu Oct 06, 2005 08:17 PM
Re: Leer todas las entradas secci贸n archivo ini
Posted: Fri Dec 01, 2023 10:29 PM
Code (fw): Select all Collapse
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 (fw): Select all Collapse
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 (fw): Select all Collapse
#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
Posts: 318
Joined: Fri Jan 14, 2022 08:37 AM
Re: Leer todas las entradas secci贸n archivo ini
Posted: Sat Dec 02, 2023 12:53 PM
Code (fw): Select all Collapse
hIni:= hb_ReadIni( "File.Ini" )
hSeccionXX:= hIni["SeccionXX"]
xValorN01:= hSeccionXX["EntradaN01"]
xValorN02:= hSeccionXX["EntradaN02"]
xValorN03:= hSeccionXX["EntradaN03"]
Posts: 2170
Joined: Fri Jul 18, 2008 01:24 AM
Re: Leer todas las entradas secci贸n archivo ini
Posted: Sat Dec 02, 2023 04:43 PM
Leandro, en su momento, esto lo tom茅 del foro, posteado por ukoenig. Espero te sirva.
Code (fw): Select all Collapse
//-------------------------------------------------//
// 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
Posts: 1818
Joined: Wed Oct 26, 2005 02:49 PM
Re: Leer todas las entradas secci贸n archivo ini
Posted: Mon Dec 04, 2023 02: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

[ Turbo Incremental Link64 6.98 Embarcadero 7.70 ] [ FiveWin 25.01 ] [ xHarbour 64 bits) ]

Continue the discussion