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 03-04-2022
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Como leer varias lineas en un archivo .ini

Hola a todos
Pues estoy creando una aplicacion que manejará varias rutas de archivos, que las guarda en una archivo .ini.
Al iniciar la aplicacion, esta debe leer el archivo de rutas (.ini) y cargarlas en un stringrid.
Las rutas se pueden añadir o eliminar, tantas como se necesite.


Se como crear el .ini, y tambien como leer una clave con ReadString, conociendo el nombre de la clave.


Pero como no se sabe cuantas rutas estan guardadas, pues estas pueden variar con cada ejecucion del programa, no se como leerlas para cargarlas en el StringGrid.


La estructura del ini seria como esta:


[Destinos]
destino1=d:\carpeta1
destino2=d:\ruta2
...
destinoN=e:\laotraruta



Como puedo cargar todas esas rutas en el stringGrid ?
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
  #2  
Antiguo 03-04-2022
Avatar de MAXIUM
MAXIUM MAXIUM is offline
Miembro
 
Registrado: may 2005
Posts: 1.488
Poder: 20
MAXIUM Va camino a la fama
Como los archivos .ini son solo archivos de texto plano, se me ocurre que lo cargues con un TStringList.
Su un índice de ese Stringlist es '[Destinos]', entonces el siguiente lo tratas hasta final del archivo o hasta que sea un '[Algo]'
Responder Con Cita
  #3  
Antiguo 03-04-2022
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola.

Un ejemplo, de como podrías cargar las líneas en un TStringGrid.
Código Delphi [-]
var
  ini: TIniFile;
  TS : TStrings;
begin
  ini := TIniFile.Create('archivo.ini');
  TS  := TStringList.Create;
  try
    ini.ReadSectionValues('Destinos', TS);
    StringGrid1.RowCount := TS.Count; // lineas necesarias
    StringGrid1.ColWidths[0] := 300; // espacio necesario para mostrar el texto
    StringGrid1.Cols[0] := TS;
  finally
    ini.Free;
    TS.Free;
  end;
end;

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 03-04-2022
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola.

Un ejemplo, de como podrías cargar las líneas en un TStringGrid.
Código Delphi [-]var ini: TIniFile; TS : TStrings; begin ini := TIniFile.Create('archivo.ini'); TS := TStringList.Create; try ini.ReadSectionValues('Destinos', TS); StringGrid1.RowCount := TS.Count; // lineas necesarias StringGrid1.ColWidths[0] := 300; // espacio necesario para mostrar el texto StringGrid1.Cols[0] := TS; finally ini.Free; TS.Free; end; end;


Saludos

Gracias por la respuesta, pero no me funciono como se esperaba al llenar el stringgrid.
En lugar de almacenarme el valor de la clave (d:\carpeta1), almacena la linea completa (destino1=d:\carpeta1)
Ademas de que me comienza en la fila 0, y necesito que sea en la 1, pues no quiero que me escriba en el encabezado, porque el stringrid tiene 3 columnas
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
  #5  
Antiguo 03-04-2022
Avatar de JoAnCa
JoAnCa JoAnCa is offline
Miembro
 
Registrado: jul 2005
Ubicación: Cuba
Posts: 435
Poder: 19
JoAnCa Va por buen camino
Lo resolvi de esta manera:
Código Delphi [-]
      
      valores:=TStringList.Create;
      MiFicheroIni.ReadSectionValues('Destinos', valores);
      for j:=1 to Valores.Count do
      begin
        sgDestinos.Cells[0,j]:=MiFicheroIni.ReadString('Destinos', 'Destino'+IntToStr(j), '');
        sgDestinos.RowCount:=j+1;
      end;
__________________
La hora de acción no es hora de aprender, es necesario haber aprendido antes
Responder Con Cita
  #6  
Antiguo 03-04-2022
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Cuando dudes que hace una clase, mira toda su documentación:

https://docwiki.embarcadero.com/Libr...niFile_Methods

https://docwiki.embarcadero.com/Libr...e.ReadSections
__________________
El malabarista.
Responder Con Cita
  #7  
Antiguo 04-04-2022
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.275
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
Cita:
Empezado por JoAnCa Ver Mensaje
La estructura del ini seria como esta:

Cita:
[Destinos]
destino1=d:\carpeta1
destino2=d:\ruta2
...
destinoN=e:\laotraruta
Como puedo cargar todas esas rutas en el stringGrid ?
Puedes cagar "de golpe" todos los valores que hay dentro de una sección(Destinos) en un TStringList.
Revisa RedSectionValues (https://docwiki.embarcadero.com/Libr...dSectionValues)
Código Delphi [-]
var
  iniFile:TIniFile;
  sl:TStrings;
begin
  ...
  sl := TStringList.Create;
  iniFile.ReadSectionValues('Destinos', sl);
__________________
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
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
Varias selecciones en dbgrid a varias lineas stringgrid rafaelon Varios 1 08-07-2020 18:13:09
Leer 4 Lineas de dos Archivo .txt wcbs Varios 13 05-09-2012 15:05:36
Como conectar varias lineas de telefono a la PC jandok238 Varios 0 17-11-2007 20:38:07
Leer archivo de texto y extraer lineas de el mp3968 API de Windows 1 19-05-2007 20:27:53
Como poner varias lineas en un messagebox Michel Varios 2 13-08-2003 17:50:58


La franja horaria es GMT +2. Ahora son las 12:04:59.


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