Secciones en archivo ini
Secciones en archivo ini
Hay alguna función que me devuelva la cantidad de secciones de un archivo ini. Desde ya muchas gracias
- mchumpitazv
- Posts: 49
- Joined: Thu Dec 27, 2007 6:56 pm
- Location: Lima -Perú
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
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
cText := MemoRead( "MyIni.ini" )horacio wrote:Hay alguna función que me devuelva la cantidad de secciones de un archivo ini. Desde ya muchas gracias
nSecciones := StrCharCount( cText, "[" )
Saludos
Manuel Mercado
-
- Posts: 988
- Joined: Thu Nov 24, 2005 3:01 pm
- Location: Madrid, España
Re: Secciones en archivo ini
Hola Manuel,
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 '['
No tengo presente los parámetros de memoline y mlcount, pero estan en la NG seguro.
Un saludo,
Carlos
mmercado wrote:cText := MemoRead( "MyIni.ini" )horacio wrote:Hay alguna función que me devuelva la cantidad de secciones de un archivo ini. Desde ya muchas gracias
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
Un saludo,
Carlos
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.:
Espero te sirva. Saludos.
Carlos.
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
Carlos.