In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

ficheros INI

Foro público de Xailer en español
Responder
Francisco
Mensajes: 39
Registrado: Mar Nov 30, 2004 1:34 pm

ficheros INI

Mensaje por Francisco »

Al arrancar la aplicacion comprueba si existe u nfichero ini y si no existe
lo crea con una serie de datos por defecto, seria asi ?
::cIni := "XST.INI"
WITH OBJECT TIni():New( ::cIni )
::aDatosIni[1] := :GetEntry( "SECCION1", "APARTADO1SECCION1",
aDatosI[1] )
.....
END
Siendo ::cIni una data de esa clase que contiene el nombre del fichero ini,
y ::aDatosIni otra data que es un array para recoger todos los valores de
ese fichero ini, y aDAtosI un array que contiene lo valores por defecto.
Esto lo crearia ? y le asignaria los valores ? y si ya existe ? como asigno
los valores grabados a ::Adatosini ? me he fijado en la gestion de ini que
teneis en el visor y he visto el init.txt y hay un new y un create que
diferencia hay el new es para leer cuando ya existe ? y el create para
crearlo ?, entonces si ya existe en el ejemplo anterior solo cambiaria el
WITH OBJECT Tini():Create( ::cIni ) no ? todo lo demas quedaria igual no ?
Atentamente : Francisco Sanchez GERENTE GRUPO ST
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

ficheros INI

Mensaje por ignacio »

Francisco,
Echale un vistazo a la documentación en el fichero docIni.txt
Un saludo
--
Ignacio Ortiz
www.xailer.com
"Francisco" <total@arrakis.es> escribió en el mensaje
news:[email=41af6bdc@ozsrv2.ozlan.local...]41af6bdc@ozsrv2.ozlan.local...[/email]
> Al arrancar la aplicacion comprueba si existe u nfichero ini y si no
> existe
> lo crea con una serie de datos por defecto, seria asi ?
>
> ::cIni := "XST.INI"
>
> WITH OBJECT TIni():New( ::cIni )
> ::aDatosIni[1] := :GetEntry( "SECCION1", "APARTADO1SECCION1",
> aDatosI[1] )
> ....
> END
>
> Siendo ::cIni una data de esa clase que contiene el nombre del fichero
> ini,
> y ::aDatosIni otra data que es un array para recoger todos los valores de
> ese fichero ini, y aDAtosI un array que contiene lo valores por defecto.
>
> Esto lo crearia ? y le asignaria los valores ? y si ya existe ? como
> asigno
> los valores grabados a ::Adatosini ? me he fijado en la gestion de ini que
> teneis en el visor y he visto el init.txt y hay un new y un create que
> diferencia hay el new es para leer cuando ya existe ? y el create para
> crearlo ?, entonces si ya existe en el ejemplo anterior solo cambiaria el
> WITH OBJECT Tini():Create( ::cIni ) no ? todo lo demas quedaria igual no ?
>
> Atentamente : Francisco Sanchez GERENTE GRUPO ST
>
>
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
jfgimenez
Site Admin
Mensajes: 5706
Registrado: Lun Abr 06, 2015 8:48 pm
Contactar:

ficheros INI

Mensaje por jfgimenez »

Paco,
> Al arrancar la aplicacion comprueba si existe u nfichero ini y si no
> existe
> lo crea con una serie de datos por defecto, seria asi ?
>
> ::cIni := "XST.INI"
Ojo con ésto. Te va a crear el .ini en el directorio de windows. Si quieres
que te lo cree en el directorio del programa, usa ".XST.INI" o
Application:cDirectory + "XST.INI"
> WITH OBJECT TIni():New( ::cIni )
> ::aDatosIni[1] := :GetEntry( "SECCION1", "APARTADO1SECCION1",
> aDatosI[1] )
> ....
> END
>
> Siendo ::cIni una data de esa clase que contiene el nombre del fichero
> ini,
> y ::aDatosIni otra data que es un array para recoger todos los valores de
> ese fichero ini, y aDAtosI un array que contiene lo valores por defecto.
>
> Esto lo crearia ? y le asignaria los valores ? y si ya existe ?
:GetEntry() no crea ni graba los valores en el .ini. De hecho, la primera
vez que ejecutaras el programa, el .ini no se crearía. Para grabar valores
en un .ini tienes que utilizar :SetEntry( cSection, cKey, uValue )
> como asigno
> los valores grabados a ::Adatosini ?
Yo te aconsejo que al arrancar la aplicación, solamente te preocupes de leer
todos los valores con :GetEntry(). Por otro lado, donde tengas la opción en
tu programa para cambiar la configuración, grabas los valores con
:SetEntry(). De esa forma, si el usuario nunca ha modificado la
configuración, no se llega a crear el .ini, y siempre leerás los valores por
defecto que tengas en las llamadas a :GetEntry()
> me he fijado en la gestion de ini que
> teneis en el visor y he visto el init.txt y hay un new y un create que
> diferencia hay el new es para leer cuando ya existe ? y el create para
> crearlo ?, entonces si ya existe en el ejemplo anterior solo cambiaria el
> WITH OBJECT Tini():Create( ::cIni ) no ? todo lo demas quedaria igual no ?
No. En todo Xailer, :New() sirve para instanciar el objeto correspondiente,
y :Create() sirve para crearlo a nivel de windows. Esto está muy claro para
los controles, donde :New() simplemente instancia el objeto para poder
asignarle todas las propiedades y :Create() es quien crea realmente el
control. Pero en el caso de los componentes no visuales, y que además no
tienen que mantener un Handle vivo, tanto :New() como :Create() hacen lo
mismo, y te devuelven el objeto.
Con TIni() se da precísamente este caso. Por eso sólo tienes que utilizar
:New() o :Create(), aunque por coherencia, te aconsejo que uses :Create()
--
Un saludo,
José F. Giménez
José F. Giménez
[Equipo de Xailer / Xailer team]
http://www.xailer.com
http://www.xailer.info
Responder