Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 15-10-2008
Bauhaus1975 Bauhaus1975 is offline
Miembro
 
Registrado: may 2005
Ubicación: Málaga
Posts: 135
Poder: 20
Bauhaus1975 Va por buen camino
Thumbs up TiniFile, trabajando en memoria

Hola,
Ya he visto en otros hilos la gran ventaja de usar el TiniFile, pero no tengo claro cómo trabaja en memoria. Alguien puede explicarme si se puede y cómo cargar datos de un archivo.ini en memoria para usarlos mientras dure la ejecución del programa, y guardar los nuevos datos solamente al salir de la aplicación. De esta manera sólo necesitaría acceder a disco en dos ocasiones (lectura inicial y grabación final)
Gracias y un saludo.
Responder Con Cita
  #2  
Antiguo 15-10-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Es cuestión de usar una variable "global" en lugar de una "local". También podrías usar un miembro de un objeto, que, se mantuviera disponible mientras durase la vida de la aplicación. Es decir, si empleas una variable local, evidentemente, cuando se salga de su ámbito, dicha variable será liberada, pero, si usas una variable global no será así. Dicha variable sería del tipo "TIniFile", y te permitiría hacer justo lo que dices: acceder al disco dos veces únicamente, cuando se lee el archivo INI, y cuando se guarda (si es necesario).
Responder Con Cita
  #3  
Antiguo 15-10-2008
Bauhaus1975 Bauhaus1975 is offline
Miembro
 
Registrado: may 2005
Ubicación: Málaga
Posts: 135
Poder: 20
Bauhaus1975 Va por buen camino
OK. Entiendo lo del acceso global a la variable.
Y si he entendido bien, lo que dices es crear el objeto global al iniciar por ejemplo: ini := TiniFile.create(NombreArchivo); y liberarlo: ini.free al terminar la aplicación.
Pero, cuando haga un ini.WriteString o ini.ReadString ¿Realizará acceso a disco?

Otra soución podria ser volcar el contenido a una variable TDataSet para acceder en cualquier momento (en caso de que el acceso que antes comentaba supongo acceder a disco)
Responder Con Cita
  #4  
Antiguo 15-10-2008
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is online now
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.292
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
También puedes usar el TMemIniFile.
Trabajas en memoria y cualdo quieres volcarlo todo a disco usas UpdateFile.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 15-10-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola Bauhaus1975,
La clase que te comentaron puede trabajar sin problemas. Cuando se le pide acceder (lectura y/o escritura) a una sección, variable y/o dato lo que hace es abrir el archivo, hacer lo que deba hacer y cerrarlo.
En caso de que el archivo no exista lo crea.

Si lees la ayuda que proporciona Delphi sobre dicha clase tus dudas se evacuarán.

Creo que te estás haciendo demasiados problemas. Si necesitas tener los datos en memoria hay otras opciones: desde simples variables hasta clases diseñadas por ti que mantengan todo en memoria. Todo dependerá de cuanto, como y que estés guardando en el archivo ini. Si tienes muchas variables y secciones tal vez mantener simples variables no es lo más apropiado. En definitiva como tu convengas que es lo mejor y más fácil para ti.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #6  
Antiguo 15-10-2008
Avatar de rgstuamigo
rgstuamigo rgstuamigo is offline
Miembro
 
Registrado: jul 2008
Ubicación: Santa Cruz de la Sierra-Bolivia
Posts: 1.646
Poder: 17
rgstuamigo Va por buen camino
Cool

Mira este tremendo Libro de trucos y demas en la pag 55 y 56 esta lo que quieres.Espero que te sirva
__________________
"Pedid, y se os dará; buscad, y hallaréis; llamad, y se os abrirá." Mt.7:7
Responder Con Cita
  #7  
Antiguo 15-10-2008
Bauhaus1975 Bauhaus1975 is offline
Miembro
 
Registrado: may 2005
Ubicación: Málaga
Posts: 135
Poder: 20
Bauhaus1975 Va por buen camino
Gracias por vuestra ayuda.
Creo que voy hacer caso de lo que me aconseja Neftali (por cierto, enhorabuena por tu sección de componentes) y usaré el TMemIniFile, que según he visto en la ayuda se asemeja a lo que necesito. Si me hiciera falta cubrir más funcionalidad crearé una clase que herede de TMemIniFile o TiniFile, y añada funcionalidad, como por ejemplo llevar almacenada cierta informacíón leida del ini en un array o un DataSet etc etc.
Gracias a todos.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
problemas con tinifile nenufer Varios 1 25-04-2006 18:12:31
Tinifile.. manejo de .ini marceloalegre Varios 2 27-04-2005 23:29:59
Trabajando con DLL b3nshi Varios 1 16-03-2005 18:21:55
TIniFile, me encuentra una sección que no existe !!! Ohcan OOP 1 02-03-2005 16:04:25
TIniFile no me funciona y no tiene sentido rfernandez Varios 5 08-02-2005 09:53:46


La franja horaria es GMT +2. Ahora son las 12:45:09.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi