Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda como manipular archivos .DAT en VB 6.0

Estas en el tema de Ayuda como manipular archivos .DAT en VB 6.0 en el foro de Visual Basic clásico en Foros del Web. hola a todos bueno soy nuevo en el foro y en visual un poco pero tengo el pequeño gran problema que es este: tengo que ...
  #1 (permalink)  
Antiguo 20/10/2008, 18:52
Avatar de rocko08  
Fecha de Ingreso: octubre-2008
Mensajes: 5
Antigüedad: 15 años, 6 meses
Puntos: 0
Exclamación Ayuda como manipular archivos .DAT en VB 6.0

hola a todos

bueno soy nuevo en el foro y en visual un poco pero tengo el pequeño gran problema que es este:

tengo que acceder a 2 archivos .DAT; alumno.dat y cargamat.dat pero estos dos archivos están en un server al cual tengo que acceder mediante la red (los archivos están en una carpeta compartida), una vez que acceda tengo que adecuarlos a una BD generada por mi programa mediante SQL, la estructura de los archivos .dat es la siguiente:

alumno.dat

aluid as string * 5
alumatricula as string * 20
aluapepat as string *30
aluapemat as string *30
alunombre as string * 30
semdesc as string * 6
aluplan as * 5
alugrupo as * 1
_____________________________

cargamat.dat

matid as string * 5
matsem as string * 3
matnom as string * 50
aluid as string * 5
_____________________________

ya tengo los formularios preparados para mostrar los datos pero tengo que tomarlos de estos archivos, los datos contenidos en los .dat no sera modificada por mi aplicación solamente serán para mostrar la información pero no se como acceder o jalarlos con código y para mostrarlos con código

espero sus respuestas o propuestas de antemano muchísimas gracias y estaré revisando los aportes para si en algo puedo servir sera un placer

gracias a todos
  #2 (permalink)  
Antiguo 22/10/2008, 14:55
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Ayuda como manipular archivos .DAT en VB 6.0

En las FAQ's tienes un ejemplo de cómo manejar archivos planos, puedes usarlo y obtener las partes de los datos usando las funciones Mid, Left y Right.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 22/10/2008, 15:14
Avatar de Txoco  
Fecha de Ingreso: junio-2008
Ubicación: Perdido en tierras Quijotescas
Mensajes: 189
Antigüedad: 15 años, 10 meses
Puntos: 7
Respuesta: Ayuda como manipular archivos .DAT en VB 6.0

¿Qué tal?

Vayamos pues por partes. ¿Conoces las estructuras de datos? Primero debes crear una con los datos que necesites:

Código:
Private Type TypeAlumno
    aluid As String * 5
    alumatricula As String * 20
    aluapepat As String * 30
    aluapemat As String * 30
    alunombre As String * 30
    semdesc As String * 6
    aluplan As String * 5
    alugrupo As String * 1
End Type
En principio puedes guardar datos de cualquier tipo ahí dentro, que esto que vamos a seguir viendo debería funcionar.

Una vez que lo tengas, necesitas abrir el archivo y coger todos los datos que contenga. Como la función es facilita, te la dejo aquí para que te bases en ella:

Código:
Private Sub LeeDatos(ByVal FicheroAlumnos As String)
Dim FileNum As Long
Dim DatosAlumno As TypeAlumno

    FileNum = FreeFile
    Open FicheroAlumnos For Random As FileNum
    
    Do While Not EOF(FileNum)
        Get FileNum, , DatosAlumno
    
        With DatosAlumno
            ' Haz cosas aquí con los datos leídos en la estructura
            ' Se machacan en cada iteración, así que
            '   no esperes a tenerlos todos... o
            '   implementa alguna forma de guardarlos
            '   en memoria =]
            Call MsgBox(.aluid & vbCrLf & _
                        .alumatricula & vbCrLf & _
                        .aluapemat & vbCrLf & _
                        .aluapepat & vbCrLf & _
                        .alunombre & vbCrLf & _
                        .semdesc & vbCrLf & _
                        .aluplan & vbCrLf & _
                        .alugrupo)
        End With
    Loop
    
    Close FileNum
End Sub
Por partes:

- Sólo puedes tener un número determinado de ficheros abiertos a la vez, así que la variable FileNum va a almacenar el primer número de fichero que esté libre. Normalmente la gente pone directamente cosas como "Open noseque nosecuantos As #1", y eso está bien si vas deprisa y tal, pero no es la mejor elección porque si trabajas con varios ficheros a la vez, puedes encontrarte con que tu programa intenta abrir dos o más simultáneamente con el número 1, y eso es malo. FreeFile es tu amigo, úsalo

- Open acepta más parámetros (mira la ayuda), pero estos son los mínimos que necesitas.

- EOF te indica si estás intentando leer el final del fichero (devuelve True en ese caso), por lo que nos viene bien cuando no sabemos cuántos registros vamos a leer, como me imagino que será el caso.

- Y por último, Get carga datos del fichero en la variable que le digas, que en nuestro caso es una estructura, con sus campos y sus cosas (bueno, con sus campos nada más ). En este ejemplo te viene muy bien porque supongo que las estructuras que vas a leer siempre van a tener el mismo tamaño, por lo que no necesitas nada más. De hecho, si ejecutas en el evento Load (o en el Sub Main, o donde quieras) algo como:

Código:
Call LeeDatos(<ruta hasta el fichero "alumnos.dat">)
Te aparecerá un mensaje por cada línea leída, y en cada variable de la estructura estará su valor correcto.

Importante: es vital que los datos se guarden tal cual los defines en la estructura, con el mismo orden y tamaño. Haz una prueba y cambia el tamaño de una cualquiera de las variables de la estructura, o cambia su orden y verás a qué me refiero (no se estropeará nada, pero verás que no recoges lo que esperas).

También es importante que tengas en cuenta que este ejemplo sólo vale si en la estructura sólo existen tipos de datos de tamaño fijo. Por ejemplo, una cadena definida sólo como "As String" (sin "* <tamaño>"), requiere, y de hecho guardaría, algún byte más en el fichero, con lo que la función de arriba no funcionaría si dicho fichero no contiene esa información. No creo que ahora tengas que preocuparte por esto, pero tenlo en cuenta para el día de mañana

La parte de la lectura de las materias te la dejo a tí
__________________
wile sona li mute e sona
  #4 (permalink)  
Antiguo 30/11/2008, 14:08
Avatar de rocko08  
Fecha de Ingreso: octubre-2008
Mensajes: 5
Antigüedad: 15 años, 6 meses
Puntos: 0
Respuesta: Ayuda como manipular archivos .DAT en VB 6.0

grax grax x responder Txoco te debo mi 7º semestre jajaajja gracias bro minimo de una materia jajaja en las demas no tengo problemas si respondo hasta ahora s x no haber tenido time jajaja grax
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:14.