 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Mie 13 Jul, 2005 12:03 pm Asunto: Estructura de datos tipo árbol |
|
|
Hola a todos.
No sé si es el mejor sitio para preguntar esto, pero entre todos seguro que hay alguien que los ha usado alguna vez. Quisiera saber dónde puedo obtener información (apuntes, código, ejemplos, etc) sobre estructuras de datos tipo árbol (pero no binario, si no genérico, es decir, que cada nudo pueda tener "n" nudos-hijo siendo "n" un número arbitrario).
La idea es manejar estructuras tipo TTreeView, pero sin usar este componente visual, para poder manipularla, guardarla en archivo, leerla desde archivo, etc. Pretendo hacer algo parecido a un presupuesto, pudiendo ser los nudos del árbol la OBRA, los CAPÍTULOS, los SUBCAPÍTULOS, las UNIDADES de OBRA y los ELEMENTOS.
Gracias y un saludo. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
kekal Ens


Registrado: 21 Jun 2005Mensajes: 37Ubicación: España
|
Publicado: Mie 13 Jul, 2005 3:45 pm Asunto: |
|
|
Hola Cerúleo, mira yo hace tiempo hice un programa de presupuestos (en el viejo visual DBase, dios!) y más o menos lo arme asi...
cree un fichero cabecera del presupuesto (datos del cliente), otro fichero que contiene los capitulos del presupuesto (objetivo, plazos, forma de pago, garantias...) y otro con las lineas de cada capitulo (texto, elementos, mano de obra...)
es enlazar el fichero de cabecera con el fichero de capitulos y este con el de lineas.
ahora...
habria que ver que tanto quisieras ampliar ese arbol (subcapitulos...)
Suerte |
|
| Volver arriba |
|
 |
laremi400 Master

Registrado: 12 May 2004Mensajes: 179
|
Publicado: Mie 20 Jul, 2005 10:25 am Asunto: |
|
|
Hola!
¿Puedes usar una BD?. Por que entonces te lo solucionas a base de tablas y en paz. Que suele ser más rápido y eficaz que hacerterlo tú a base de ficheros.
Y entonces lo que haces son relaciones entre tablas para cada unidad de obra etc... a base de utilizar como indice común para todas ellas el nº de presupuesto. Lo único que tendrás que tener cuidado cuando te pongas a desontar unidades obra para no pasarte del presupuesto original o si se permite el exceso tendrás que avisar. Es un poco lío pero al final se hace. Yo lo hice para una fontanería ¿A tí que te ha caído?. |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Mie 20 Jul, 2005 3:27 pm Asunto: |
|
|
Hola.
Hola laremi400. Yo a final lo que trato de hacer es leer un archivo bc3 y transformarlo en una base de datos tipo Access. Todavía no sé ni como conectarme (mira que me he pegado), pero eso será otro cantar. Trabajo con C++Builder 4.
Lo que pretendo es hacer un programa para la gestión económica de una obra. Inicialmente lo he orientado para poder siempre exportarlo a Excel, también, porque los jefes no entienden otra cosa.
Un saludo. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
laremi400 Master

Registrado: 12 May 2004Mensajes: 179
|
Publicado: Jue 21 Jul, 2005 7:37 am Asunto: |
|
|
Hola Cerúleo.
Ya me imaginaba lo de la obra. Son un coñazo (con perdón). Es el tipo de programa más retorcido que te pueden soltar, sobre todo por que el cliente no suele querer saber nada (no digo "poder", sino querer, que es peor).
Para las conexiones con Access tienes en este foro ejemplos, no es algo muy complicado y te recomiendo encarecidamente que trabajes con un BD en vez de con ficheros. Por cierto, no sé que son ficheros bc3.
El trabajar con BD te facilitará mucho las cosas, sobre todo si vas a exportar a EXCEL y tal.
Y una última recomendación, yo que tú, antes de ponerme a codificar me haría un análisis serio del tema. Con una descripcion en papel bien clara de como van a ser las tablas, la relación entre ellas y el funcionamiento del programa.
Incluso le presentaría al cliente ese análisis para que lo firmase antes de empezar a codificar. Ya sé que suena duro, pero te hablo por experiencia.
Espero que todo esto te sirva de algo.
Suerte!!! |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Jue 21 Jul, 2005 12:29 pm Asunto: |
|
|
Hola laremi400.
El cliente soy yo, es decir, que voy a hacer un programa para gestión de obras para mi uso, porque las hojas excel, aunque son sencillas, corres el riesgo de equivocarte con las fórmulas, al dejar alguna casilla sin sumar, etc.
La posibilidad de pasar a excel es para que los jefes (jefes de grupo, gerentes, delegados, etc) puedan entenderlo mejor.
Los archivos *.bc3 son archivos de texto plabo (ASCI) para el intercambio de bases de datos, obras (presupuestos, mediciones, cuadros de precios, etc), y responden al estándar FIEBDC-3 (Formato de Intercambio Estándar de Bases de Datos de la Construcción). Actualmente van por la versión 2004.
Por otra parte, he buscado ejemplos de conexión a Access y no acabo de encontrar nada. Si puedes mandarme algún ejemplo te lo agradecería muchísimo.
Un saludo. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
laremi400 Master

Registrado: 12 May 2004Mensajes: 179
|
Publicado: Jue 21 Jul, 2005 3:10 pm Asunto: |
|
|
Entonces perdon por los comentarios. Es que a mi me ha tocado trabajar con algunos que no veas. Y se me hace raro un jefe de una empresa haciendose su propio programa, ya podían los demás tomar ejemplo...
Hacer una conexión con Access es facil:
1.- Creas la Base de datos con el propio Access
2.- Haces un ODBC (Panel de control->Herramientas administrativas). Fijate que al crear el ODBC es posible que te ponga como nombre de usuario Admin y sin contraseña. Cámbiaselo (o no).
3.- En el builder (yo uso ADO, pero hay otros componentes). Seleccionas en la paleta ADO un ADOConnection. Haces el "ConnectionString" (es una propiedad, fácil de usar). Ojo a la propiedad LoginPrompt
4.- Seleccionas un ADOTable, le configuras la propiedad ADOConnection con la conexión previamente creada y seleccionas la tabla en la propiedad TableName. Si te pide un login le pones el nombre que has definido al hacer el ODBC y la contraseña si la has puesto.
5.- Luego seleccionas los elementos de manejo de tablas de la paleta correspondiente: Un DataSource de la paleta DataAccess y un TDBGrid de la paleta DataControls. Con esos dos por lo menos ya puedes visualizar el contenido de la tabla de Access.
Y a partir de aquí ya te puedes complicar la vida todo lo que quieras programando. Hay otras formas y tantas opiniones como programadores, pero es un comienzo. Ahora te toca estudiartelo un poco. Son componentes estandar del Builder, así que no creo que tengas dificultad en hacerte con ello. Y además tienes cantidad de componentes y posibilidades distintas para trabajar con BD.
Espero que te sirva de algo. Suerte! |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Sab 23 Jul, 2005 3:59 pm Asunto: |
|
|
Hola laremi400.
| Cita: | | Entonces perdon por los comentarios. Es que a mi me ha tocado trabajar con algunos que no veas. Y se me hace raro un jefe de una empresa haciendose su propio programa, ya podían los demás tomar ejemplo... |
Realmente soy jefe de obra, pero eso no quiere decir que sea jefe de una empresa, ni muchísimo menos. Lo que pretendo es hacer una herramienta que me permita realizar mi trabajo más fácilmente, nada más.
Respecto a lo que me comentas de las conexiones ADO, al tener C++Builder 4 no tengo esos componentes. Me gustaría poder hacer la conexión "a mano", de forma manual. Tengo idea de trabajar en monopuesto, con lo que no es necesario (de momento) tecnología cliente/servidor o cosas de esas. Sólo quiero ejecutar el programa, seleccionar una base de datos (de Access) y abrirla. Nada más... y nada menos.
Un saludo. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
laremi400 Master

Registrado: 12 May 2004Mensajes: 179
|
Publicado: Mar 26 Jul, 2005 8:50 am Asunto: |
|
|
Bueno. Vale. Si sólo quieres hacer una conexión sencilla para usar en tu propio ordenador y no complicarte la vida, puedes usar el Database Desktop y del BDE Administrador (o nombre similar, en las versiones anteriores no recuerdo si se llama igual) que vienen con el Builder. Cuando instalaste el builder posiblemente ya los instalaste.
No te puedo decir exactamente donde tienes que mirar en el BDE (tenemos versiones distintas). Pero si que te puedo decir que tienes que seleccionar (en alguna parte) la BD de Access con la que quieres trabajar. En alguna parte de ese programa tienes una lista con las Bases de datos que hay en tu PC. En otra parte tendrás qué controladores están instalados (Access, SQL, etc... Y si no está el tuyo, pues tienes que empezar por instalarlo). Una vez seleccionada la BD le tendrás que dar un "Alias" (o nombre de usuario, o como ponga en tu versión).
Una vez que tengas esto hecho, en el Builder hay una paleta de BDE (tiene que haberla, venía desde la versión 1.0) en ella puedes seleccionar el componentre TTable. En él puedes seleccionar la base de datos y y la tabla con la que quieres trabajar (ojo a los login que no recuerdo como se quitaban) Luego en la paleta DataAccess seleccionas un TDataSource y le dices el nombre del componente anterior (ya verás, sólo aparecen los que hayas definido previamente) y luego seleccionas de la paleta Data Controls el componente DbGrid (por ejemplo) y en DataAccess le dices el nombre del coponente anterior.
Parece un lío, pero es mucho más simple de lo que crees. Eso sí, te esperan un par de días de estudiarte el tema. Creo que en la propia ayuda del Builder venía un tutorial, pero no lo tengo claro.
Espero que te sirva de ayuda. Suerte!!! |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Mar 02 Ago, 2005 2:16 pm Asunto: |
|
|
Hola Laremi400.
He conseguido (aunque no sé cómo) conectar la base de datos. Realmente no es una base de datos, sino una simple definición de los campos de las tablas. Ahora lo que quiero es ir rellenando las tablas con los datos que leo de un archivo de texto. Seguro que es una chorrada, pero... ¿cómo se hace?
Gracias y un saludo. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
laremi400 Master

Registrado: 12 May 2004Mensajes: 179
|
Publicado: Mie 03 Ago, 2005 8:03 am Asunto: |
|
|
| Cerúleo escribió: | Hola Laremi400.
He conseguido (aunque no sé cómo) conectar la base de datos. Realmente no es una base de datos, sino una simple definición de los campos de las tablas. Ahora lo que quiero es ir rellenando las tablas con los datos que leo de un archivo de texto. Seguro que es una chorrada, pero... ¿cómo se hace?
Gracias y un saludo. |
Depende. En Access puedes hacer importar desde el propio Access. Si lo que quieres es hacerlo por programa, pues tendrás que programartelo. O sea, abres el fichero ASCII y te lo vas pasando registro a registro a la BD.
Hay mil formas de hacerlo. Tienes cantidad de información en el foro acerca de como abrir y leer ficheros de texto y también de como grabar registros en las BD.
Yo te puedo ayudar con cosas más puntuales. Pero esta pregunta que me haces en realidad no es nada chorra. Es decir, si me preguntas por algo concreto, pues te puedo decir como lo hago yo.
Y en este caso poca ayuda te puedo ofrecer por que nunca leo ficheros de texto y paso los datos a las tablas con código, siempre lo hago con las opciones importar de cada BD. Yo hago entradas de datos para vque los tecleen los usuarios. |
|
| Volver arriba |
|
 |
Cerúleo Master


Registrado: 04 Ago 2003Mensajes: 332Ubicación: Santander, España
|
Publicado: Mie 03 Ago, 2005 4:55 pm Asunto: |
|
|
Hola laremi400000.
Je, je, te he puesto algún cero de más porque eres buen tío. Gracias por tus consejos. Buscaré en el foro de bases de datos para cargar los datos de un fichero ascii a una BD. Realmente me interesa hacerlo por código poruqe no estoy seguro de que la base de datos access importe archivos *bc3 que son los que leo.
Fracias y a pasar buen fin de semana si no hablamos antes. _________________ Nunca digas "Es imposible" sin intentarlo antes. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|