Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-12-2015
oscjae oscjae is offline
Miembro
 
Registrado: may 2005
Posts: 70
Poder: 19
oscjae Va por buen camino
Leer fichero ini en memoria

Hola, he estado mirando por el foro y no he encontrado ningun hilo que pudiera resolverme esta duda:

Tengo una tabla de una base de datos (firebird) en la que hay un campo blob, en ese campo guardo archivos ".ini", el problema o la duda esta en cuanto quiero leerlo, hay alguna forma de leerlo sin crear ese archivo fisicamente en disco?, es decir, si creo una variable TMemoryStream y con el campo blob uso SaveToStream(variable), como puedo utilizar con la clase TIniFile o alguna otra clase esa variable y leer las secciones, claves, etc... sin crear el archivo en disco?

Gracias.
Responder Con Cita
  #2  
Antiguo 09-12-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
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
¿Has revisado la clase TMemIniFile?
__________________
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
  #3  
Antiguo 09-12-2015
oscjae oscjae is offline
Miembro
 
Registrado: may 2005
Posts: 70
Poder: 19
oscjae Va por buen camino
Si, al poner
Código Delphi [-]
vFichero:=TMemIniFile.Create('C:\fichero.ini');
Me refiero justo a eso, el fichero tiene que estar en disco, y lo que me gustaria es que no tuviera que guardarlo en disco, salvarlo en una variable Stream, desde el campo blob y poder leer ese fichero guardado en la variable stream sin grabarlo fisciamente en disco, la verdad, no se si es posible no apoyarme en disco.

Última edición por Casimiro Notevi fecha: 09-12-2015 a las 20:04:46.
Responder Con Cita
  #4  
Antiguo 09-12-2015
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.233
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
Esto no lo aseguro, pero es posible que sino llamas al UpdateFile, nunca llegue a guardarse en disco.
__________________
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 09-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
TMemIniFile tiene un nombre que a primera vista puede prestar a confusión; en realidad la única diferencia con TIniFile es que los cambios se mantienen en memoria y no son grabados en disco hasta llamar a UpdateFile; esto es útil para por ej ir obteniendo valores y luego validar, si todo va bien, grabar

Con respecto a la pregunta original no se puede hacer, por lo menos no con la RTL de Delphi, ni ninguna biblioteca que conozca

Lo mejor que podes hacer es obtener y grabar a disco el blob, luego instanciar el ini
Responder Con Cita
  #6  
Antiguo 09-12-2015
Avatar de Ñuño Martínez
Ñuño Martínez Ñuño Martínez is offline
Moderador
 
Registrado: jul 2006
Ubicación: Ciudad Catedral, Españistán
Posts: 6.000
Poder: 25
Ñuño Martínez Tiene un aura espectacularÑuño Martínez Tiene un aura espectacular
Quizá puedas salir del paso usando directamente un TStringList. Me explico: la propiedad "Values" de dicha clase (o mejor dicho, de su antecesora) permite acceder a pares"nombre=valor", de forma similar a los archivos INI. El problema es que no maneja claves o secciones "[secion]" valores por defecto, pero quizá pueda hacerse algo.
__________________
Proyectos actuales --> Allegro 5 Pascal ¡y Delphi!|MinGRo Game Engine
Responder Con Cita
  #7  
Antiguo 09-12-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
O mejor aun, crea una tabla/sqlite
Responder Con Cita
  #8  
Antiguo 10-12-2015
oscjae oscjae is offline
Miembro
 
Registrado: may 2005
Posts: 70
Poder: 19
oscjae Va por buen camino
Respecto al StringList lo pensé en su momento, pero no me sirve, es un fichero ini muy extenso y repite claves bastantes veces, si no hubiera sido una buena solución, y respecto a la base de datos sqlite no podría ser, de hecho yo leo el ini de un campo blob, tengo que cargar los valores en una clase, mi intención es no pasar por disco para leer ese ini, pero no voy a tener mas remedio.

Muchas gracias por los comentarios, un saludo.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Leer fichero XML itsi Internet 1 23-10-2008 23:50:15
como leer la memoria cyberagl Varios 0 14-03-2007 08:22:56
Leer fichero rocio84 Varios 1 21-05-2006 11:45:06
Leer direccion de memoria brandolin Varios 8 25-09-2003 17:29:22
Leer un fichero .ini oesteve OOP 6 16-06-2003 17:40:20


La franja horaria es GMT +2. Ahora son las 12:03: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