Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   ¿como Procesar listado en archivos INI? (https://www.clubdelphi.com/foros/showthread.php?t=72177)

JXJ 01-02-2011 22:15:07

¿como Procesar listado en archivos INI?
 
Hola

tengo un archivo INI.
que
se usa para guardar listas de compras de productos. que son variables
pueden ser 1, 3, 10, 50, 100. 500.

y los tengo que procesar y pasar a una base de datos.

mi problema es que no se como hacer un bucle para leer la informacion de
articulos.

he pensado en un

For i := 0 to X -1 do begin
end

el archivo ini es asi.

Código:


[Articulo1]
Cantidad=10.25
Unidad=Kilo
NodeArticulo=123456789
Descripcion=champiñones
ValorUnitario=12.23
Importe=125.36
 
[Articulo2]
Cantidad=5
Unidad=PZA
NodeArticulo=45678900
Descripcion=melones
ValorUnitario=82.30
Importe=11.50
Codigo=322259
Fecha=2010-09-08
Compradopor=Jéronimo
 
[Articulo3]
Cantidad=4
Unidad=Kg
NodeArticulo=129399293
Descripcion=Flores - rosas
ValorUnitario=23.70
Importe=94.80
 
[Articulo4]
Cantidad=5
Unidad=PZA
NodeArticulo=45678220
Descripcion=Pañales sueltos
ValorUnitario=20.50
Importe=11.50
Codigo=3229
Fecha=2010-09-08
Compradopor=Angelo M


Caral 01-02-2011 22:25:27

Hola
No me parece tan mala idea.
Articulo + i
Saludos

roman 01-02-2011 22:31:55

Utiliza la clase TIniFile que contiene los métodos necesarios para leer secciones y valores de un archivo INI.

// Saludos

Caral 01-02-2011 22:36:48

Hola
Curioso:
[Articulo1] y [Articulo3] tienen la misma cantidad de elementos, pero
[Articulo2] y [Articulo4] Tienen mas.
Lo que quiere decir que al incluirlos en la Tabla algunos datos quedaran vacíos.
Saludos

JXJ 01-02-2011 22:39:33

Cita:

Empezado por Caral (Mensaje 389571)
Hola
Curioso:
[Articulo1] y [Articulo3] tienen la misma cantidad de elementos, pero
[Articulo2] y [Articulo4] Tienen mas.
Lo que quiere decir que al incluirlos en la Tabla algunos datos quedaran vacíos.
Saludos

no me supe explicar.

lo que no se es
¿como hacer el bucle?

estoy usando la clase TIniFile
pero en ella no se cual metodo es
para leer todas las secciones. o algo asi.
y de ahi hacer un bucle.

JXJ 01-02-2011 22:45:03

Cita:

Empezado por JXJ (Mensaje 389572)
no me supe explicar.

lo que no se es
¿como hacer el bucle?

estoy usando la clase TIniFile
pero en ella no se cual metodo es
para leer todas las secciones. o algo asi.
y de ahi hacer un bucle.

encontre este codigo pero no me funciona.

Código Delphi [-]
// Read all sections

procedure TForm1.Button3Click(Sender: TObject);
var 
  ini: TIniFile;
begin
  ListBox1.Clear;
  ini := TIniFile.Create('MyIni.ini');
  try
    ini.ReadSections(listBox1.Items);
  finally 
    ini.Free; 
  end;
end;
en el listbox1 no se agrega nada.

Casimiro Notevi 01-02-2011 22:45:57

Pon el cursor encima de TIniFile y pulsa F1, también puedes hacer una búsqueda por clubdelphi, se ha tratado el tema varias veces.

Casimiro Notevi 01-02-2011 22:48:22

Edito, pero JXJ, no me había fijado que eres tú quien pregunta eso, debes tomarte un descanso y relajarte, luego sigues y verás que lo sabes hacer, ¡¡¡que tú eres de los expertos!!! :)

Casimiro Notevi 01-02-2011 22:50:50

A ver, mira este hilo.

Caral 01-02-2011 22:52:46

Hola
Estoy seguro de que lo haria algo chapucero pero lo que dije de los campos en la tabla sigue siendo cierto.
Por otro lado, lo de [Articulo + i] es lo que se me ocurre para hacer el recorrido ya que se tiene la ventaja de que los nombres son iguales, salvo el numero.
Saludos

JXJ 01-02-2011 23:02:08

Cita:

Empezado por Casimiro Notevi (Mensaje 389575)
Edito, pero JXJ, no me había fijado que eres tú quien pregunta eso, debes tomarte un descanso y relajarte, luego sigues y verás que lo sabes hacer, ¡¡¡que tú eres de los expertos!!! :)

solo por uqe no tenia el path completo
Código Delphi [-]

procedure TForm1.Button4Click(Sender: TObject);
 var
    myINI : TINIFile;
    begin
     ListBox1.Clear;
    myINI := TINIFile.Create(ExtractFilePath(Application.EXEName) + 'Ejemplo1.ini');
             myINI.ReadSections(listBox1.Items);
         myINI.ReadSections(Memo1.Lines);
end;

JXJ 09-02-2011 04:00:38

una duda enorme

ahora el archivo tiene secciones e informacion que pueden estar o no

Código:


[ArticuloPreciosimpuestos]
IVA=1000.00
ISR=PZA

IEPS=45678220
IEPSTASA=50.00
 
IVATRASLADADO=20.50
IVATASA=11.50
 
IVATRASLADADO2=20.50
IVATASA2=11.50
 
IVATRASLADADO3=20.50
IVATASA3=11.50
 
IVATRASLADADO4=20.50
IVATASA4=11.50

como ven IVATRASLADADO puede ser variable
puede tener 1 o mas o puedo no estar.

como puedo buscar dentro de la seccion ??
ArticuloPreciosimpuestos
informacion que es casi identica y solo cambia por el
nombre o puede no tener secuencia
IVATRASLADADO IVATRASLADADO2


La franja horaria es GMT +2. Ahora son las 12:10:47.

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