Secciones en archivo ini

Secciones en archivo ini

Postby horacio » Tue Jan 22, 2008 3:22 pm

Hay alguna función que me devuelva la cantidad de secciones de un archivo ini. Desde ya muchas gracias
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Postby mchumpitazv » Fri Jan 25, 2008 7:41 pm

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
mchumpitazv
 
Posts: 54
Joined: Thu Dec 27, 2007 6:56 pm
Location: Lima -Perú

Re: Secciones en archivo ini

Postby mmercado » Fri Jan 25, 2008 9:10 pm

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

Re: Secciones en archivo ini

Postby Carlos Mora » Sat Jan 26, 2008 9:53 am

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

Postby csincuir » Sat Jan 26, 2008 1:39 pm

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  Expand view  RUN
...
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.
csincuir
 
Posts: 409
Joined: Sat Feb 03, 2007 6:36 am
Location: Guatemala

Postby horacio » Sat Jan 26, 2008 5:05 pm

Les agradezco a todos por responder. Probaré cada una de sus sugerencias. De nuevo muchas gracias
horacio
 
Posts: 1363
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 66 guests