Archivo de texto, el regreso

Hola ifuvaldes, te hago de nuevo la pregunta mucho más completa, a ver si veo alguna luz sobre el asunto, y ademas te agrego más puntos, agradezco mucho tu ayuda, aquí va:
Puede ser de cualquier forma como pude hacerse, con o sin pasar la estructura a una base de datos, lo importante es que en un label muestre el nombre de la persona y su puntaje, ese es el objetivo,
podría ser pasando el archivo de texto plano a una base de datos para manejarla más fácilmente, o podría ser leyendo el archivo con su estructura lo cual es muy difícil, el problema es que no tengo idea de como puede solucionarse, lo leí con una estructura,
deaclarada así:
Type Registro_de_agenda
nom As String * 30
curso As String * 40
c1 As String * 1
c2 As String * 1
c3 As String * 1
End Type
Global prueba As Registro_de_agenda
Luego lo abrí e intente poner cada linea en un list y me quedaron todas las lineas juntas, así que la verdad no se cual podría ser la solución, no tengo la estructura que se uso para crear el archivo, por lo que la estructura que declare arriba podría ser otra.
http://ensayo.tripod.cl/pp.txt esa es la dire donde esta el bendito archivo de texto
Private Sub cmdcalc_Click()
Dim nom As String
Dim curso As String
Dim c1 As Integer
Dim c2 As Integer
Dim c3 As Integer
Dim a As String
Dim completo As String
Dim i As Integer
Dim nr As Integer
Open "C:\Archivos de programa\Microsoft Visual Studio\VB98\pp.txt" For Input As #1
Do Until EOF(1)
a = Input(1, #1)
If a = Chr(13) Then nr = nr + 1
Loop
Close #1
Open "C:\Archivos de programa\Microsoft Visual Studio\VB98\pp.txt" For Input As #1
MsgBox nr
For i = 1 To nr
Input #1, prueba.nom
nom = prueba.nom
Input #1, prueba.c1
p1 = p1 + prueba.c1
Input #1, prueba.c2
p1 = p1 + prueba.c2
Input #1, prueba.c3
p1 = p1 + prueba.c3
completo = nom + " nota " + p1
MsgBox "hola"
List1.AddItem completo
Next i
Close #1
End Sub
Dado el siguiente archivo de texto plano debo traspasarlo a una base de datos access, para luego sumar c1 c2 y c3,(c1 significa control1 y tiene asignado un determinado puntaje) entonces tengo que sumar los 3 puntajes y mostrar el nombre del alumno con su puntaje. Por ejemplo para el primer alumno debe el programa debe devolver en un label
;Juan González puntaje 9
Ya que c1 2
C2 3
C3 4
=7
Y al presionar un botón por segunda vez me calcula lo mismo pero del siguiente alumno.
Devolviéndome
« Juan Pérez puntaje 8 »
Ya que Juan Pérez tiene
c1 1
c2 3
c3 4
= 8

1 Respuesta

Respuesta
1
Vamos por partes:
Entiendo que dices que tienes que leer un archivo de texto, del cual no sabes su estructura. Esto es absolutamente imposible: No se puede leer un archivo si no se sabe cómo está estructurado. En general basta mirarlo con un editor como NotePad, para deducir esa estructura, pero si no se puede deducir no hay nada que hacer.
En segundo lugar hay que distinguir dos clases de archivos: los que llevan separadores y los que van por posiciones. El aspecto y la forma de leerlos es totalmente distinto. Por ejemplo si tienes dos registros con los datos nombre y edad de dos personas, un archivo con separadores será algo así como:
"Luis";20
"Gonzalo";7
Mientras que un archivo por posiciones será del tipo:
Luis 020
Gonzalo 007
En el segundo los datos quedan encolumnados en unas posiciones fijas, y en el primero se separan por un carácrer especial, que puede ser (;)(,)(<Tab>) etc.
Lo primero que hay que saber es que tipo de archivo tienes, y lo segundo cual es la estructura de ese archivo
Respecto de la definición de un TYPE como el "Registro_de_agenda" que me envías, es siplememente una buena práctica de programación, ya que queda más claro decir:
Alumno.edad=12
Que simplemente Edad=12 en abstracto, pero no tiene ninguna relación con la estructura del archivo ni con su lectura.
Si me aclaras todos estos temas, podremos continuar con lo demás.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas