PDA

Ver la Versión Completa : ¿como Procesar listado en archivos INI?


JXJ
01-02-2011, 22:15:07
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.



[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
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
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.


// 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 (http://www.clubdelphi.com/foros/member.php?u=5846), 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 (http://www.clubdelphi.com/foros/showthread.php?t=20856&langid=1) 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
Edito, pero JXJ (http://www.clubdelphi.com/foros/member.php?u=5846), 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


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



[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