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 02-05-2006
Avatar de diniremix
diniremix diniremix is offline
Miembro
 
Registrado: abr 2006
Ubicación: Negaverso
Posts: 44
Poder: 0
diniremix Va por buen camino
Archivos Ini

hola a tod@s de nuevo

gracias a
Sotrono

y a
luisgutierrezb vbmenu_register("postmenu_134512", true);
por la ayuda en dias pasados

estoy trabajando en archivos Ini
y tengo una inquietud

por ej:
[Bloque]
seccion1=valor1,valor2,valor3
seccion1=otro aqui, y otro mas aqui

la pregunta es como leo por ej: el valor2 o valor3 sin tener q leer toda la seccion y buscar entre las comas hasta llegar a ese valor?

he visto q algunos ini de Window$ tienen esa particularidad al = q algunos Inf (Archivos de Informacion). por ej: el sysoc en C:\WINDOWS\inf

a prop los Inf son muy parecidos en su info a los Ini se les puede hacer lo mismo q a los Ini desde Delphi?
gracias
respuestas....
__________________
Diniremix ;)
Responder Con Cita
  #2  
Antiguo 02-05-2006
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,

Piensa que los archivos INI se tienen que adaptar a tus necesidades y no al revés. Me explico. Pueden guardarse valores en los archivos INI de este modo, si lo necesitas para algo (y tú sabrás para qué)

Código:
[Seccion]
Clave=valor1,valor2,valor3
Sin embargo, en principio nada te impide guardar la información de este otro modo:

Código:
[Seccion]
Clave1=valor1
Clave2=valor2
Clave3=valor3
Sobre todo si te es más útil guardar así la información, si luego te va a ser más sencillo acceder a ella y utilizarla.

Ahora bien, supongamos que tienes que leer un archivo INI en el que hay claves en que los datos se guardan como dices. Pues... ya habrá entonces varios modos de leer valores.

Seguramente, si eres tú el que guardas los datos de ese modo, será por algo, quiero decir, sabrás también cómo piensas leer los datos guardados de ese modo.

Por ejemplo. Si yo quisiera guardar el contenido de una variable "TStrings" en una determinada clave de un archivo INI, tal vez optaría por utilizar la propiedad "CommaText" de las variables "TStrings", de tal modo que luego podría recuperar el "TStrings" siguiendo el camino contrario.

Con esto ya te estoy proponiendo una posible manera de leer este tipo de datos, guardados de esa forma, separados por comas. La clase "TStrings" puede ayudarte, tal vez, en la tarea. Las variables de la clase "TStrings" sabrás que guardan elementos indexados, de este modo:

Código Delphi [-]
var
  t: TStrings;
begin
  t := TStringList.Create;
  t.Add('Un elemento');
  t.Add('Otro elemento');
  
  ShowMessage(t.Strings[0]); // Muestra "Un elemento"
  ShowMessage(t.Strings[1]); // Muestra "Otro elemento"

  t.Free;
end;

Pues bien, la propia clase "TStrings" también cuenta con una propiedad de nombre "CommaText", la cual podría devolverte sus elementos de este modo:

Código Delphi [-]
ShowMessage(t.CommaText); // Muestra "Un elemento, Otro elemento"

Y, la propiedad "CommaText" también puedes escribirla:

Código Delphi [-]
t.CommaText := "Un nuevo elemento, Otro nuevo elemento";

ShowMessage(t.Strings[0]); // Muestra ahora "Un nuevo elemento"
ShowMessage(t.Strings[1]); // Muestra ahora "Otro nuevo elemento"

¿Soy capaz de explicarme? Creo que me extiendo demasiado. El caso es que podrías los datos separados por comas de una determinada clave de un archivo INI, y asignar dichos datos separados por comas a la propiedad "CommaText" de una variable "TStrings" que tuvieras preparada a tal efecto.

De ese modo la clase "TStrings" haría el trabajo, y tú tendrías los diferentes datos separados por comas (ya por separado) en cada uno de los elementos de la variable "Tstrings" que utilizases, algo así como esto:

Código Delphi [-]
var
  i: integer;
  ini: TIniFile;
  t: TStrings;

begin
  ini := TIniFile.Create('C:\archivo.ini');
  t := TStringList.Create;

  t.CommaText := ini.ReadKey('Clave');

  for i := 0 to t.Count-1 do
  begin
    ShowMessage('Dato ' + IntToStr(i) + ':' t.Strings[i]);
  end;

  t.Free;
  ini.Free;
end;

El código anterior está escrito de memoria, así que los métodos y parámetros de estos pueden no corresponderse con la realidad, pero, la idea creo que más o menos queda clara.

Y bueno, terminar diciendo que seguramente pueda hacerse lo que dices de otras maneras. Que disculpes este rollo y que si te queda alguna duda la hagas saber por aquí a ver si alguien puede echarte una mano.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #3  
Antiguo 02-05-2006
Avatar de diniremix
diniremix diniremix is offline
Miembro
 
Registrado: abr 2006
Ubicación: Negaverso
Posts: 44
Poder: 0
diniremix Va por buen camino
Gracias otra vez ;)

hola
gracias por la respuesta
a.
dec vbmenu_register("postmenu_134834", true);

la verdad m enredaste un poquito pero revisare tu codigo, hare un par de pruebas y despues t aviso vale...
sabes... esto...
Código Delphi [-]
[Seccion]
Clave1=valor1
Clave2=valor2
Clave3=valor3
es muy util (la verdad es como siempre los he manejado) pero m gustan las cosas mas dificiles y por q no hacerla d este modo

Código Delphi [-]
[Seccion]
Clave=valor1,valor2,valor3
d todas maneras gracias ahh
para todos le aviso el source del q estoy haciendo lo paso una vez lo termine es sencillo pero c q les gustará

saludos a tod@s en el foro
__________________
Diniremix ;)
Responder Con Cita
  #4  
Antiguo 02-05-2006
rafita rafita is offline
Miembro
 
Registrado: ago 2003
Ubicación: Cuenca- España.
Posts: 309
Poder: 21
rafita Va por buen camino
Buenas amigos del foro.

Por favor, un fuerte aplauso para el compañero Dec por la fantastica explicación anterior.

Yo estoy aquí para aprender, y con gente así sí que se puede.

Gracias Dec.
__________________
Rafita.
Responder Con Cita
  #5  
Antiguo 03-05-2006
esocrates esocrates is offline
Miembro
 
Registrado: may 2003
Ubicación: Argentina
Posts: 210
Poder: 21
esocrates Va por buen camino
Cita:
Empezado por rafita

Por favor, un fuerte aplauso para el compañero Dec por la fantastica explicación anterior.

Yo estoy aquí para aprender, y con gente así sí que se puede.

Gracias Dec.
Me uno al aplauso.
Un saludo
Responder Con Cita
  #6  
Antiguo 13-05-2011
Avatar de aams01
aams01 aams01 is offline
Miembro
 
Registrado: ago 2010
Posts: 44
Poder: 0
aams01 Va por buen camino
Cita:
Empezado por rafita Ver Mensaje
Buenas amigos del foro.

Por favor, un fuerte aplauso para el compañero Dec por la fantastica explicación anterior.

Yo estoy aquí para aprender, y con gente así sí que se puede.

Gracias Dec.
Yo me uno después de mucho pero me uno.
__________________
El Software es como el Sexo, si es de gratis es Mejor
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
Archivos .dat LucianoRey Varios 5 02-11-2020 11:08:22
Los archivos SWF metalfox6383 Varios 3 06-09-2005 03:43:35
archivos jdattoli Varios 2 06-07-2005 17:05:35
Archivos .vox noshy Varios 0 10-07-2003 14:23:25
Archivos TXT Jordy Varios 6 07-05-2003 16:56:16


La franja horaria es GMT +2. Ahora son las 18:15:30.


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