Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 30-11-2005
coleleon coleleon is offline
Miembro
 
Registrado: nov 2005
Posts: 23
Poder: 0
coleleon Va por buen camino
problema con fichero .ini

Hola a todos! tengo un problema al leer un fichero .ini,es la primera vez q los utilizo, no sé si será problema de código o q el fichero ini lo escribo de la siguiente manera: creo un archivo de texto,escribo en él y luego lo guardo con extensión .ini.
El código q tengo es este

Código Delphi [-]
procedure InicializarIni;
begin
  ficheroini:=TIniFile.Create(ChangeFileExt(Application.ExeName,'.ini'));
  Finicio.Tcomandos.DatabaseName:=ficheroini.ReadString('Ficheros','comandos','error');
  Finicio.Testado.DatabaseName := ficheroini.ReadString('Ficheros','estado','error');
  Finicio.Tlog.DatabaseName := ficheroini.ReadString('Ficheros','log','error');
end;
Gracias!!

Última edición por dec fecha: 30-11-2005 a las 22:04:17. Razón: ¡¡Encerrad el código fuente entre las etiquetas [DELPHI] ... [/DELPHI]!!
Responder Con Cita
  #2  
Antiguo 30-11-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
y..... ¿Cuál es el problema?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 30-11-2005
coleleon coleleon is offline
Miembro
 
Registrado: nov 2005
Posts: 23
Poder: 0
coleleon Va por buen camino
El problema es q si muestro lo q lee del fichero,siempre sale error, creo q entonces no lee bien el fichero,no?
Responder Con Cita
  #4  
Antiguo 30-11-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por coleleon
El problema es q si muestro lo q lee del fichero,siempre sale error, creo q entonces no lee bien el fichero,no?
Depende de cuál sea este error, será el problema... ¿Que error te da? ¿En qué línea? ¿Te compila?

Lee esto por favor: Guía de Estilo
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #5  
Antiguo 30-11-2005
coleleon coleleon is offline
Miembro
 
Registrado: nov 2005
Posts: 23
Poder: 0
coleleon Va por buen camino
Compilar sí compila,lo q me refería es q devuelve el tercer parámetro de la función ReadString,y creo q eso es porq no encuentra la key q le paso,pero no sé por qué,ya q en el fichero de texto si q está bien escrito.Gracias por tu atención.
Responder Con Cita
  #6  
Antiguo 30-11-2005
Coco Coco is offline
Miembro
 
Registrado: jul 2004
Ubicación: Argentina
Posts: 83
Poder: 20
Coco Va por buen camino
cual es el contenido del archivo ini?
Lo estas tomando del path correcto?
__________________
Hice un trato con Dios... el no hace sistemas y yo hago milagros
Responder Con Cita
  #7  
Antiguo 30-11-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Comprueba que tu aplicación este accediendo el archivo que piensas que estas accediendo, comprueba que la Key se llame exactamente como dice en el archivo. Prueba guardando los datos desde tu programa mediante WriteString, tienes que ver cambios en el ini!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #8  
Antiguo 30-11-2005
coleleon coleleon is offline
Miembro
 
Registrado: nov 2005
Posts: 23
Poder: 0
coleleon Va por buen camino
El contenido es muy simple:
[Ficheros]
Comandos=C:\ComandosDB\Comandos.dbf
Estado=C:\ComandosDB\Estado.dbf
Log=C:\ComandosDB\Log.dbf
y el path lo obtengo de la función ChangeFileExt(Application.ExeName,'.ini') ,q creo q vale,no?
Responder Con Cita
  #9  
Antiguo 30-11-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Si vale... ¡Pero fíjate que sea lo mismo que imaginas que es!...
Prueba con un ShowMessage(ChangeFileExt(Application.ExeName,'.ini'));

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #10  
Antiguo 30-11-2005
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,


Cita:
Empezado por Federico
Código Delphi [-]
ShowMessage(ChangeFileExt(Application.ExeName,'.ini'));
Pero,... eso siempre le mostraría una ruta correcta, puesto que es claro que el ejecutable existe y nomás la ruta del ejecutable aparecerá con una extensión ".ini", que es justo lo que le dices que muestre, como puede verse. No sé... me llamó la atención esto Federico, disculpa la tontería: por otro lado no he leído el Hilo desde un principio así que no sé qué hago aquí... ¿respondiendo el qué?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #11  
Antiguo 30-11-2005
coleleon coleleon is offline
Miembro
 
Registrado: nov 2005
Posts: 23
Poder: 0
coleleon Va por buen camino
Sí,lo acabo de comprobar,y la ruta que resulta es correcta.No sé..ya dudo...no será q no se puede hacer desde un archivo de texto normal y corriente?
Responder Con Cita
  #12  
Antiguo 30-11-2005
coleleon coleleon is offline
Miembro
 
Registrado: nov 2005
Posts: 23
Poder: 0
coleleon Va por buen camino
Una pregunta:no hay otra manera de crear el .ini sin tener q ejecutar antes las funciones WriteString ..etc para introducir los datos iniciales?
Responder Con Cita
  #13  
Antiguo 30-11-2005
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,

Algo así debiera funcionar:

Código Delphi [-]
uses
  IniFiles;

procedure TfrmPrincipal.btnLeerIniClick(Sender: TObject);
var
  ini: TIniFile;
begin
  ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
  try
    ShowMessage( 'Clave Comandos = ' + ini.ReadString('Ficheros', 'Comandos', 'Error') );
    ShowMessage( 'Clave Estado = ' + ini.ReadString('Ficheros', 'Estado', 'Error') );
    ShowMessage( 'Clave Log = ' + ini.ReadString('Ficheros', 'Log', 'Error') );
  finally
    ini.Free;
  end;
end;
Te adjunto un sencillo ejemplo en donde se hace uso del código de arriba.
Archivos Adjuntos
Tipo de Archivo: zip Ejemplo.zip (2,0 KB, 27 visitas)
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #14  
Antiguo 30-11-2005
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,


Cita:
Empezado por coleleon
Una pregunta:no hay otra manera de crear el .ini sin tener q ejecutar antes las funciones WriteString ..etc para introducir los datos iniciales?
Claro, hombre, digitalmente: como lo he hecho yo en el ejemplo de arriba: con los puritos dedos.

Es un archivo de texto plano: puedes escribirlo con el Bloc de notas, por ejemplo, sin problemas, siempre que te percates de que incluyes las secciones, claves y valores tal y como esperes encontrarlas.

Claro, que, una ayuda podría ser que usases cierto programa que creo que se llama XEditor (no lo recuerdo bien), el cual puede resaltarte la sintaxis de los archivos INI, de tal manera que algo podrá ayudarte. Y, por supuesto, desde el propio Delphi, yo creo que también te resaltará la sintaxis de dichos archivos.

Edito: De todas formas, que tampoco se te haga especialmente complicado el hecho de utilizar el método "WriteString" para escribir los valores oportunos en el archivo INI, oyes:

Código Delphi [-]
procedure EscribirValoresIni(const log, estado, comandos: string);
var
  ini: TIniFile;
begin
  ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
  try
    ini.WriteString('Ficheros', 'Log', log);
    ini.WriteString('Ficheros', 'Estado', estado);
    ini.WriteString('Ficheros', 'Comandos', comandos);
  finally
    ini.Free;
  end;
end;
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 30-11-2005 a las 22:45:16. Razón: Ampliación del texto.
Responder Con Cita
  #15  
Antiguo 30-11-2005
coleleon coleleon is offline
Miembro
 
Registrado: nov 2005
Posts: 23
Poder: 0
coleleon Va por buen camino
Jo ,no gano para disgustos,resulta que los datos q leo del ini son los nombres de las tablas DBase que utilizo en el programa.Ahora me pregunto, si tengo un componente Ttable xa cada tabla, en que propiedad tengo q asignar los valores leidos antes en tiempo de ejecución,para poder acceder a las tablas desde los componentes ttable,TABLENAME o DATABASENAME?Gracias d nuevo
Responder Con Cita
  #16  
Antiguo 30-11-2005
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,


Cita:
Empezado por coleleon
Jo ,no gano para disgustos,resulta que los datos q leo del ini son los nombres de las tablas DBase que utilizo en el programa.Ahora me pregunto, si tengo un componente Ttable xa cada tabla, en que propiedad tengo q asignar los valores leidos antes en tiempo de ejecución,para poder acceder a las tablas desde los componentes ttable,TABLENAME o DATABASENAME?Gracias d nuevo
Creo que ese es un tema diferente del que se ha tratado en este Hilo. A distintas preguntas, mejor distintos Hilos: la guía de estilo de estos Foros, que nadie lee, es lo que dice, a lo menos, y tiene su razón de ser. Y,... por otro lado... ¿qué tal con el archivo INI? ¿Te hiciste ya con ello?
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #17  
Antiguo 30-11-2005
coleleon coleleon is offline
Miembro
 
Registrado: nov 2005
Posts: 23
Poder: 0
coleleon Va por buen camino
Perdón,debe ser el estres q me produce encontrarme con dudas de estas...el INi ya superado!
Responder Con Cita
  #18  
Antiguo 30-11-2005
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,


Cita:
Empezado por coleleon
Perdón,debe ser el estres q me produce encontrarme con dudas de estas...el INi ya superado!
Me alegro, hombre. Respecto de la cuestión que planteas últimamente, es posible que pudieras plantearla en el apartado "Conexión con bases de datos" de estos Foros. A mí, ya lo he dicho, me parece lo suyo para que cada cosa quede más o menos en su sitio.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #19  
Antiguo 01-12-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por dec
Pero,... eso siempre le mostraría una ruta correcta, puesto que es claro que el ejecutable existe y nomás la ruta del ejecutable aparecerá con una extensión ".ini", que es justo lo que le dices que muestre, como puede verse.
Si, mi idea es que compare esa ruta con el ini que esta creando a mano... si verdaderamente el programa la va a buscar donde el cree que la esta buscando..

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #20  
Antiguo 01-12-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 26
delphi.com.ar Va por buen camino
Cita:
Empezado por coleleon
Perdón,debe ser el estres q me produce encontrarme con dudas de estas...el INi ya superado!
¿Y cuál era el problema?
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
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


La franja horaria es GMT +2. Ahora son las 18:47:34.


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