Page 1 of 1

Secciones en archivo ini

Posted: Tue Jan 22, 2008 3:22 pm
by horacio
Hay alguna función que me devuelva la cantidad de secciones de un archivo ini. Desde ya muchas gracias

Posted: Fri Jan 25, 2008 7:41 pm
by mchumpitazv
Hola Horacio

Como el archivo INI es un archivo de texto y si tomamos como ejemplo el archivo win.ini en que cada seccion empieza con el caracter "[", podrias leer cada linea y colocarlas en una matriz, lugo te barres la matriz y cuentas cuantas lineas empiezan con dicho caracter, el resultado te indicaria el numero de secciones existentes.

Saludos y suerte

Martin

Re: Secciones en archivo ini

Posted: Fri Jan 25, 2008 9:10 pm
by mmercado
horacio wrote:Hay alguna función que me devuelva la cantidad de secciones de un archivo ini. Desde ya muchas gracias
cText := MemoRead( "MyIni.ini" )
nSecciones := StrCharCount( cText, "[" )

Saludos

Manuel Mercado

Re: Secciones en archivo ini

Posted: Sat Jan 26, 2008 9:53 am
by Carlos Mora
Hola Manuel,
mmercado wrote:
horacio wrote:Hay alguna función que me devuelva la cantidad de secciones de un archivo ini. Desde ya muchas gracias
cText := MemoRead( "MyIni.ini" )
nSecciones := StrCharCount( cText, "[" )

Saludos

Manuel Mercado

Yo no usaría 'nSecciones := StrCharCount( cText, "[" )' porque me contaría líneas como

; [esto está comentado]

o cosas como
Nombre= aCorriente[2]

Habria que tomar cada línea con memoline, eliminar los espacios del principio y verificar que el priemr caracter sea '['

Code: Select all

nCuenta:= 0
For i:= 1 To MLCount( cText )
   If Left( LTtrim( MemoLine( cText, i, .....) ), 1 ) == ']'
      nCuenta++
   EndIF
EndFor
No tengo presente los parámetros de memoline y mlcount, pero estan en la NG seguro.
Un saludo,

Carlos

Posted: Sat Jan 26, 2008 1:39 pm
by csincuir
Horacio, puedes utilizar la clase TIni para encontrar un array con todos los nombres de las secciones y po consiguiente el numero de secciones.

Eje.:

Code: Select all

...
oIni := Tini():New( cIniFile )
aSecctions := oIni:Sections()  //Array que contiene todos los nombres de las secciones

? Len( aSecctions ) //No. de secciones del INI


Espero te sirva. Saludos.

Carlos.

Posted: Sat Jan 26, 2008 5:05 pm
by horacio
Les agradezco a todos por responder. Probaré cada una de sus sugerencias. De nuevo muchas gracias