Secciones en archivo ini

Post Reply
horacio
Posts: 1270
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Secciones en archivo ini

Post by horacio »

Hay alguna función que me devuelva la cantidad de secciones de un archivo ini. Desde ya muchas gracias
User avatar
mchumpitazv
Posts: 49
Joined: Thu Dec 27, 2007 6:56 pm
Location: Lima -Perú

Post 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
User avatar
mmercado
Posts: 782
Joined: Wed Dec 19, 2007 7:50 am
Location: Salamanca, Gto., México

Re: Secciones en archivo ini

Post 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
Carlos Mora
Posts: 988
Joined: Thu Nov 24, 2005 3:01 pm
Location: Madrid, España

Re: Secciones en archivo ini

Post 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
csincuir
Posts: 305
Joined: Sat Feb 03, 2007 6:36 am
Location: Guatemala
Contact:

Post 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.
horacio
Posts: 1270
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Post by horacio »

Les agradezco a todos por responder. Probaré cada una de sus sugerencias. De nuevo muchas gracias
Post Reply