<div dir="ltr">Para jugar está bueno, creas el archivo y ante cada insercion o borrado agregas o eliminas un nodo de un arbol binario ordenado. (Hermoso recuerdos de clases de programacion en C++)<div><br></div><div>Pero si queres jugar y aprender a hacer algo que realmente sirva para una aplicacion profesional y escalable, usá sqlite o firebird (mono usuario: enbeded o mulstiusuario) no pesa nada en la pc, o cualquier motor de base de datos.</div><div><br></div><div><br></div><div><br></div></div><div class="gmail_extra"><br><div class="gmail_quote">El 13 de septiembre de 2017, 11:20, Claudio Romero via Lazarus-es <span dir="ltr"><<a href="mailto:lazarus-es@lists.lazarus-ide.org" target="_blank">lazarus-es@lists.lazarus-ide.org</a>></span> escribió:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div><div><div>Hola yo use bastante para migrar bases Dbf a FirebirdSql.<br><br>Lo que mas usaba era leer el Dbf sin los indices, el componente TDbf es un dataset mas. Bastante simple.<br></div><br>Para los indices el componente TDbf, que soporta los indices MDX (creo dbase), no los IDX, ni CDX (foxpro, visual foxpro). El componente TDbf quedo deprecated un tiempo, luego lo incorparon de nuevo, no se si le agregaron el soporte para foxpro  CDX, creo que alguien estaba en eso.<br><br></div>De todas manera yo abria el DBF con lazarus y lo indexaba en MDX. De esta manera no tocaba los CDX.<br><br></div>Aca un ejemplo<br><div><div><br>procedure IndexaDbf(TablaDbf,campo:<wbr>string;OpcionesIndices:<wbr>TIndexOptions);<br>var Dbf1:TDbf;<br>begin<br>    try<br>        Dbf1:=TDbf.Create(nil);<br>        dbf1.TableName:=TablaDbf;        Dbf1.Exclusive := True;<br>        SysUtils.DeleteFile(<wbr>ExtraerExtension(TablaDbf)+'.<wbr>mdx');//borra el indice<br>           Dbf1.Open;<br>        try<br>            Dbf1.AddIndex(campo,campo,<wbr>OpcionesIndices);<br>        except<br>            mensajeExcepcion('No pudo acceder, para indexar, en forma exclusiva a '+TablaDbf+'; o campo clave incorrecto');<br>        end;<br>        Dbf1.Exclusive := false;    Dbf1.IndexName :=campo;<br>        Dbf1.readonly:=true;<br>    finally<br>        Dbf1.Close;    Dbf1.Free;<br>    end;<br>end;<br><br></div>Despues para buscar en el Dbf indexado, usaba             <br>if Dbf1.SearchKey(SQLQuery1.<wbr>FieldValues[campo_clave],<wbr>stEqual,true) then ...<br><div><br></div><div>Lo use bastante en produccion en la migración. Y lo sigo usando para tomar datos externos de tablas Dbf.<br><br></div><div>Aun asi no lo recomiendo al Dbf para programar bases de datos locales en Lazarus. Si es algo local, es mejor Firebird Embebed, que despues se migrar facilmente a un Firebird Sql. <br></div><div><br></div><div>Saludos<br></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div><div class="h5">El 12 de septiembre de 2017, 22:22, Rafael Bidegain via Lazarus-es <span dir="ltr"><<a href="mailto:lazarus-es@lists.lazarus-ide.org" target="_blank">lazarus-es@lists.lazarus-ide.<wbr>org</a>></span> escribió:<br></div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="h5"><div dir="ltr"><div><div><div><div><div><div><div><div>hola a todos.<br><br></div>Estoy buscando una librería que me permita usar archivos indexados (indizados)<br><br></div>No es una necesidad laboral, solamente quiero jugar un poco.<br><br></div>Abrir un archivo en formato dbf y un archivo de indices asociado al archivo dbf es una opción pero estoy buscando algo que me permita trabajar con record de pascal.<br><br></div>sql no es una opción que considere.<br><br></div>Este es un ejemplo de archivo<br><br>region,vendedor, producto, cantidad<br>este,lucas,2,10<br>este,veronica,3,10<br>norte,juan,1,10<br>norte,lucas,1,25<br>oeste,juan,1,15<br>oeste,maria,1,20<br>sur,pedro,1,30<br>sur,santiago, 1,30<br><br></div>necesito un indice por region, otro por nombre, otro por producto<br><br></div>para hacer cortes de control por region o vendedor o producto.<br><br></div>desde ya muchas gracias.<span class="m_1159248844007216953HOEnZb"><font color="#888888"><br><div><div><div><div><div><div><div><br><br clear="all"><div><div><div><div><div><div><br>-- <br><div class="m_1159248844007216953m_-1962624986553128313gmail_signature">Rafael Bidegain<br><br>Ya que los cuerdos no hablan, hablará el loco.<br>(The Fool, Padraic Pearse)<br><br># yo quiero educación libre. ¡YA!<br><br></div>
</div></div></div></div></div></div></div></div></div></div></div></div></div></font></span></div>
<br></div></div>______________________________<wbr>_________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus-ide.org" target="_blank">Lazarus-es@lists.lazarus-ide.o<wbr>rg</a><br>
<a href="https://lists.lazarus-ide.org/listinfo/lazarus-es" rel="noreferrer" target="_blank">https://lists.lazarus-ide.org/<wbr>listinfo/lazarus-es</a><br>
<br></blockquote></div><br></div>
<br>______________________________<wbr>_________________<br>
Lazarus-es mailing list<br>
<a href="mailto:Lazarus-es@lists.lazarus-ide.org">Lazarus-es@lists.lazarus-ide.<wbr>org</a><br>
<a href="https://lists.lazarus-ide.org/listinfo/lazarus-es" rel="noreferrer" target="_blank">https://lists.lazarus-ide.org/<wbr>listinfo/lazarus-es</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature" data-smartmail="gmail_signature">El que pregunta aprende, y el que contesta aprende a responder.<br><br>No a la obsolecencia programada: <a href="http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml" target="_blank">http://www.rtve.es/noticias/20110104/productos-consumo-duran-cada-vez-menos/392498.shtml</a><br><br>Linux User #495070<br><a href="http://domonetic.com/blog" target="_blank">http://domonetic.com/blog</a></div>
</div>