Resultados 1 al 13 de 13

Tema: ayuda para un programa en vb6

  1. #1 ayuda para un programa en vb6 
    Iniciado
    Fecha de ingreso
    Mar 2009
    Mensajes
    5
    Descargas
    0
    Uploads
    0
    Hola!

    Bueno mi cuestion es la siguiente.

    Estoy elaborando un programa en vb6 cuyo fin es administrar datos, nombres y eso.

    Lo tengo desarrolado completamente en cuanto a diseño y las acctividades que realizara el mismo, en realidad es solo un contador y unos botones para hacer visibles e invisibles ciertos datos.

    Mi problema radika en lo siguiente:

    Es para mi novia es doctora y ella necesita administrar consulta diariamente y a fin de mes administrar todo en unas listas tediosas, asi que le mencione que talvez podria ayudarle.

    Lo que necesito es un ejemplo simple, una caja de texto una imagen y un boton de estos de seleccion (no recuerdo el nombre perdon). Quiero saber como guardar los cambios en cada uno de estos objetos, teniendo asi una copia del programa para cada dia y poder acceder a el con los cambias realizados.

    De antemano muchisisimas gracias
    Citar  
     

  2. #2  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    A ver si lo he entendido...

    ¿Quieres guardar el estado de cada componente del Form (o ventana) o de la propia Form, de forma que al volver a abrir esa ventana esos componentes vuelvan a tener ese estado? es decir, si un botón de selección (supongo que te refieres a una casilla de verificación o checkbox), está marcado, cuando se ejecute de nuevo la aplicación o se abra la ventana, el checkbox esté marcado y viceversa?

    Si es así, necesitas guardar esa información en algún sitio, para posteriormente volverla a recuperar. Puedes usar desde claves de registro hasta un fichero en disco.

    Si son muchos datos, optaría por un fichero en disco. Normalmente este fichero suele ser un archivo de configuración (.INI), ya que al ser un fichero formateado y estructurado, y además existen funciones para su manejo, es más fácil que intentar hacer un parser propio en un fichero de texto estandar (.TXT) desde cero.


    Así el procedimiento es que cuando cierre la aplicación, debes testear el estado de cada uno de los componentes, algo así como: "si el checkbox1 está marcado, graba un 1 en el .INI". "Si el checkbox2 está desmarcado graba un 0 en el .INI", "Si la imagen tiene una foto, graba ruta de la foto en el .INI", etc...

    No he puesto código fuente porque es amplio el tema de trabajar con ficheros .ini, pero esa sería la solución. Busca cómo trabajar con estos ficheros.

    Un saludo.
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

  3. #3  
    Iniciado
    Fecha de ingreso
    Mar 2009
    Mensajes
    5
    Descargas
    0
    Uploads
    0
    Hola Graciaspor tus consejos

    La vdd no se manejar la cosa del .ini.

    Me gustaria que de dieras un ejemplo simple en cuanto a combo box,command, imagen, textbox. un ejemplo sencillo que abarque esos controles.

    Otra cosa la idea es que al guardar se aga una copia del programa para tener una copia de cada dia y despues acceder a ellos. o sea una copia cada dia para tener como registros del las consultas de cada dia.

    Gracias y un saludo
    Citar  
     

  4. #4  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    Aquí tienes un ejemplo para manejar ficheros .INI usando la API WIN32:

    http://www.recursosvisualbasic.com.a...rchivo-ini.htm

    En ese ejemplo se muestra cómo guardar las dimensiones de la ventana principal, de forma que al volver a ejecutar la aplicación, ésta posea su ventana principal con dichas dimensiones.

    Un fichero .ini contiene la siguiente estructura:

    [SECCION1]
    Key1=valor1
    Key2=valor2
    Key3=valor3
    ...

    [SECCION2]
    Key1=valor1
    Key2=valor2
    ...


    A modo de ejemplo, tu fichero .INI, tras grabar toda la información que deseas, debería quedar algo así (es sólo un ejemplo):

    [CONTROLES]
    check1=0 //significa que el checkbox1 estaba desmarcado cuando la aplicación se cerró
    check2=1 //lo mismo, pero el chekbox2 estaba marcado
    imagen="c:\mifoto.jpg" //guardamos la ruta de la imagen que contenia...
    textbox="el texto del TextBox"...
    etc...

    De forma que cuando la aplicación se ejecute, debe leer cada una de las entradas de ese fichero y asignar ese valor a la propiedad del objeto correspondiente.

    Recuerda que en un fichero .ini puedes almacenar información de tipo númerico, texto (caracter o string). Por tanto, puedes guardar un atributo de cualquier objeto de tu aplicación que sea de éste tipo. Si es de otro distinto, por ejemplo de tipo boolean, debes "inventarte" su correspondiente codificación (por ejemplo grabar un 0 o un 1 como tipo de datos "entero").

    Todo depende de qué propiedad o atributo es el que quieres guardar... echa por lo menos un vistazo a la documentación que hay en la red para el manejo de estos ficheros, verás que no es nada del otro mundo.

    Un saludo.
    Última edición por hystd; 09-03-2009 a las 02:02
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

  5. #5  
    Iniciado
    Fecha de ingreso
    Mar 2009
    Mensajes
    5
    Descargas
    0
    Uploads
    0
    Agradesco mucho tu atencion hystd, y aprovechandome un poco de tu amabilidad, podrias echarle un vistaso a mi programa
    http://www.mediafire.com/?ghkmgkijozv
    asi nos entenderemos un poco mejor, por cierto los botones de edad y de numero de asistencias aun no esta en funcionamiento lo que pasa es que mi novia no me a dicho los parametros que debere de tomar.
    Soy demasiado novato asi que espero una critica constructiva jeje

    Muchisimas gracias de antemano
    Citar  
     

  6. #6  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    Bien, según veo lo que pretendes no es guardar información referida a atributos de objetos, sino información sobre todos los datos que sean introducidos de los pacientes, ¿cierto?

    Ok! Bueno, si es así, te voy a dar varias recomendaciones.

    Primero, Si la cantidad de datos es muy grande (pongamos más de 100) y fuera necesario realizar operaciones de búsqueda, ordenación, etc... lo recomendable es utilizar una base de datos, ya que éstas organizan la información con estructuras de árbol y además poseen las instrucciones pertinentes dentro de ellas, con lo cual se optimiza bastante el rendimiento.

    Si no es el caso, (son unos pocos de datos, pongamos menos de 100), y no es necesario realizar ninguna operación sobre estos datos, simplemente visualizar, (aunque hasta cierta cantidad podríamos prescindir del uso de base de datos para realizar operaciones sobre ellos y utilizar algoritmos de búsqueda, ordenación etc... directos, ya que son pocos datos), entonces podrías seguir con la dinámica de guardar la información de los pacientes en un fichero de texto plano.

    Ahora bien, tal y como lo tienes ahí, y suponiendo que optamos por usar un fichero de texto plano, la forma más correcta de tratar los datos referidos a un paciente es crearte un registro "paciente" con los campos "nombre", "sexo", "edad", "PVez", etc...

    Así mismo, no es nada correcto, ni por supuesto elegante el poner un número fijo de objetos (41 en tu caso), ocultos, y según se añadan ponerlos visibles... y posteriormente usar un contador auxiliar para ir contando los pacientes añadidos... La forma de realizar ésto es usar una lista auxiliar e ir introduciendo en ella cada registro "paciente".

    Pero bueno, limitándonos a lo que tienes hecho, la forma de guardar los datos de los pacientes en un fichero de texto plano, sería algo asi como:

    Private Sub Command1_Click()
    Open "Pacientes.dat" For Output As #1
    Print #1, Nuevo
    For i = 0 To Nuevo
    Print #1, Nombre(i).Text
    Print #1, Sexo(i).Text
    Print #1, Edad(i).Text
    If PVez(i).Visible Then
    Print #1, "1"
    ElseIf Not PVez(i).Visible Then
    Print #1, "0"
    End If
    //Hacemos lo mismo para el resto de los campos que quedan
    Next i
    Close #1
    End Sub
    Del mismo modo, para cargar los datos en la próxima ejecución (puedes ponerlo en el evento Form_Load()), debes abrir el fichero para lectura (usando Open "Pacientes.dat" For Append As #1), y usando Line Input para ir leyendo cada una de las líneas del fichero.

    Puedes ver el contenido de cómo se almacena renombrando "Pacientes.dat" por "Pacientes.txt".

    Por lo demás el programa tiene una interfaz bonita. Seguro que a tu novia le gustará mucho.

    Un saludo.
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

  7. #7  
    Iniciado
    Fecha de ingreso
    Mar 2009
    Mensajes
    5
    Descargas
    0
    Uploads
    0
    Gracias de nuevo.

    Unas cuantas cuestiones:

    Mi idea es tener guardados datos por dia(por eso la idea de soloo 41 personas ya que el numero maximo de pacietes que a atendido es de 32), creo que entonces debo de crear una lista auxiliar para cada dia, y no me queda claro como utilizar line input para leer los datos.

    Como lo pudiste constatar es muy basico el conocimiento que tengoo en cuanto a la programacion, creeme que entiendo lo que me explicas pero llevarlo a la practica se me dificulta.

    Tengo la idea de tener casillas de texto, una para ingresar el nombre con el que se desea guardar la lista auxiliar(la cual seria la fecha del dia en que se elaboro la llista), y otra para al momento de abrir el programa, seleccionar la lista deseada(esta casilla se utilizaria al momento de llenar los regristos que le piden a ella a fin de mes y son divididos dia por dia, con esto ella accederia a la lista de cualquier dia y completar sus hojas de regristo mas facilmente mediante los botones). Se puede hacer eso?

    Por ultimo y creo que aprovechandome un poco demas, podrias iniciar en mi programa lo que necesito hacer(ya con la idea de guardar datos dia por dia) y enviarmelo de la misma manera que lo hice.

    Estoo me ayudara mucho a comprender mas.

    Gracias de antemano.
    Citar  
     

  8. #8  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    A ver, porque la cosa puede parecer sencilla, pero dependiendo de qué pretendes conseguir se puede complicar mucho más como para tratarlo con simples ficheros de texto...

    A mi me parece que lo que pretendes conseguir dista mucho de lo que preguntabas en tu primer post , y creo que la solución más rentable es gestionar todo mediante una base de datos...

    Según he entendido, quieres que cada día se tenga que cargar la lista del día anterior, y en esta jornada se va a ir actualizando, ya sea añadiendo, borrando o modificando pacientes y el resultado de la jornada actual se guarde en una nueva lista. ¿Así es el procedimiento?

    Es decir, no queremos realizar cosas del tipo: "Hoy llega el paciente Alberto García, el cual sabemos que vino el dia 3 de marzo, y quiero ver su historial". Porque si te fijas, he dicho "Alberto García" y "3 de marzo", que quiere decir que sabemos, o mejor dicho, tenemos la información guardada de que vino ese dia... No creo que se sepa de memoria el día que vino cada paciente... Porque podrías pensar: "Cargo la lista del dia 3 de marzo, busco a Albero García y listo!", pero ¿cómo se acuerda que era ese dia?.

    Si cosas de este tipo, o de este otro (por poner unos ejemplos): "Mostrar pacientes que vinieron el día x", "Mostrar pacientes que sólo han venido una vez", "Mostrar pacientes que poseen la enfermedad x", "Mostrar pacientes varones mayores de 65 años", etc... es lo que pretendes conseguir, te digo desde ya que debes cambiar completamente el planteamiento del problema y enfocarlo todo desde el punto de vista de una base de datos.

    Por tanto, aclara bien que es lo que quieres hacer, y si por el contrario sólo importa lo que se hace en el dia actual sin tener en cuenta los anteriores, entonces sigue con la dinámica de ficheros independientes según la fecha.

    Te aclaro ésto, antes de seguir trabajando de forma improvisada...

    Un saludo.
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

  9. #9  
    Iniciado
    Fecha de ingreso
    Mar 2009
    Mensajes
    5
    Descargas
    0
    Uploads
    0
    Bueno tratare de ser mas explicito

    Quiero tener un programa base, pongamos por ejemplo a Word, abrirlo hacer el trabajo y al termino de el mismo guardarlo con un nombre especifico, que es en el word guardar como, asignar un nombre al archivo, pero tener el programa base para el dia siguiente acceder a el y hacer lo mismo. La finalidad del programa es unicamente los botones, a lo que le llamo coincidencias. La intencion de tener una copia cada dia es por que en las listas que le llegan a ella el fin de mes le piden que adminnistre los datos de cada dia del mes correspondiente, y efectivamente como dices "Mostrar pacientes que sólo han venido una vez", "Mostrar pacientes que poseen la enfermedad x", "Mostrar pacientes varones mayores de 65 años", etc...

    Po eso los unicos botones que funcionaran seran sexo,edad,pvez,seguro,oportunidades,subsecuente,as istencias, y diagnostico, por lo tanto el nombre no no interesa en lo mas minimo y la fecha es para llenar lñas llistas del fin de mes. espero ser mas claro.

    Oie sii tienes messenger para conectarnos y tener una platica mas extensa el mio es NOMAILS agregame amigo. Gracias!
    Última edición por hystd; 17-03-2009 a las 02:18
    Citar  
     

  10. #10 muy bien 
    Iniciado
    Fecha de ingreso
    Mar 2009
    Mensajes
    2
    Descargas
    0
    Uploads
    0
    muy bien
    Citar  
     

  11. #11  
    Iniciado
    Fecha de ingreso
    Jun 2009
    Mensajes
    3
    Descargas
    0
    Uploads
    0
    Otra manera mas eficiente seria crearte una base de datos para ahy tener almacenada la informacion que nesecitas. Y repcuperarla o actualizarla desde un formularui en vb 6.0
    Citar  
     

  12. #12  
    Iniciado
    Fecha de ingreso
    Jun 2009
    Mensajes
    3
    Descargas
    0
    Uploads
    0
    ' Para hacer esto recuerda agregar la referencia a DAO 3.5 en Proyecto --> Referencias

    ' PARA CREARTE LA BAS DE DATOS SIGUE EL SIGUIENTE CODIGO
    ' Esto codigo lo puedes agrear en formulario en Form_load() o en algun boton para que al precionarlo cree la base de datos

    Dim Data_Base as DataBase
    Dim Tabla as TableDef
    Dim Campo as Field

    'Crea la base de datos
    set Data_Base = CreateDataBase("ruta de tu base de datos",dbLangGeneral)

    'Creamos la tabla
    set Tabla = DataBase.CreateTableDef("TuTabla")

    'Creamos el primer campo
    Set Campo=Tabla.CreateField("Nombre",tipo de dato,Tamaño)

    ' Lo añadimos a la tabla
    Tabla.Fields.Append Campo

    ...



    'Añadimos la tabla a la base de datos

    Data_Base.TableDefs.Append Tabla

    'Cerramos la base de datos

    Data_Base.close


    ' Y asi creamos la base de datos
    Citar  
     

  13. #13  
    Moderador Global Avatar de hystd
    Fecha de ingreso
    Jul 2005
    Ubicación
    1, 11, 21, 1211...
    Mensajes
    1.596
    Descargas
    58
    Uploads
    0
    Gracias por el aporte...

    Un saludo.
    El optimista tiene ideas, el pesimista... excusas

    Citar  
     

Temas similares

  1. ayuda para crakear un programa
    Por zamonsett en el foro INGENIERIA INVERSA
    Respuestas: 4
    Último mensaje: 05-03-2009, 18:08
  2. Respuestas: 0
    Último mensaje: 28-06-2007, 23:35
  3. Ayuda para encontrar un programa
    Por misTakE en el foro HACK HiSPANO
    Respuestas: 1
    Último mensaje: 12-08-2002, 21:05
  4. necesito ayuda para borrar programa
    Por Shonio en el foro HACK HiSPANO
    Respuestas: 2
    Último mensaje: 19-01-2002, 19:33

Marcadores

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •