Visual Basic - Leer dato bloc de notas

Life is soft - evento anual de software empresarial
 
Vista:

Leer dato bloc de notas

Publicado por Lorenzo (2 intervenciones) el 12/03/2014 00:35:29
Buenas, mi duda es la siguiente:

Tengo un archivo de texto .txt creado con el bloc de notas, con dos variables, altura y edad:
Fila1-> Altura: dato1 Edad: dato2
Fila2-> Altura: dato1 Edad: dato3
Fila3-> Altura: dato4 Edad: dato5

Y así hasta un numero de filas.

Lo que quiero saber es, como leer datos concretos visual basic y mostrarlos en un TextBox. Lo que quiero es por ejemplo calcular la media de edad para las personas que midan 180cm, supongo q sea tipo con un if, es decir si la altura es 180 que se acumulen las edades y luego calcular la media de esas edades.
He visto como leer un .txt y mostrarlo en un textbox, pero no como hacer esto.
Un saludo y gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

Leer dato bloc de notas

Publicado por Diego (34 intervenciones) el 12/03/2014 19:19:12
¿Cual es tu duda entonces?

Sabes leer del archivo y volcar los datos a un textbox
Sabes que la media de edad la vas a calcular sumando las edades de las correspondientes alturas
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Leer dato bloc de notas

Publicado por Lorenzo (2 intervenciones) el 12/03/2014 21:07:22
Se leer todos los caracteres de un .txt pero no los datos concretos q yo quiera, como por ejemplo leer la altura de los que tengan exclusivamente 20 años. Es decir quiero leer solo las alturas de los que tengan 20 años y hacer la media.
No se si habrá otra forma de hacerlo, mi idea es que quiero almacenar unos datos y que cada vez q habrá el programa esten , es decir, que no se pierdan al cerrarlos, se me ocurrió hacerlo con un .txt ya que cada vez que el usuario añadiera algo se añadiría a lo anterior. Igual con una base de datos o un excel. Lo que quiero saber es como almacenarlo para que no se pierdan al cerrar el programa y como utilizarlos para operar con ellos selectivamente.

Un saludo y gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

Leer dato bloc de notas

Publicado por Diego (34 intervenciones) el 13/03/2014 16:47:32
http://msdn.microsoft.com/es-es/library/dd789093.aspx

TE ADJUNTO UN EJEMPLO DE LO QUE TIENES QUE HACER.PUEDES USAR LA FUNCION MID PARA CORTAR LAS
CADENAS Y LA InStr PARA LOCALIZAR UNA CADENA DENTRO DE OTRA.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
'----- EJEMPLO ARCHIVO -----
'Altura: 180 Edad: 20
'Altura: 170 Edad: 21
'Altura: 175 Edad: 20
'Altura: 180 Edad: 19
'Altura: 180 Edad: 18
'--------------------------- (20 + 19 + 18) / 3 = 19
 
 
Dim SumaEdades As Decimal = 0
Dim Registros As Decimal = 0
 
Dim RutaArchivo As String = "C:\ArchivoEdades.txt"
Dim Archivo As New System.IO.StreamReader(RutaArchivo)
 
'Recorre el archivo de inicio a fin 
While Archivo.Peek <> -1
 
    'Guarda la línea que se lee --> Altura: 180 Edad: 20
    Dim LineaArchivo As String = Archivo.ReadLine.ToString
 
    'Guarda la posicion en la que estan las palabras
    Dim PosicionAltura As Integer = 0
    Dim PosicionEdad As Integer = 0
    PosicionAltura = InStr(LineaArchivo.ToString, "Altura")
    PosicionEdad = InStr(LineaArchivo.ToString, "Edad")
 
 
    If PosicionEdad <> 0 Or PosicionEdad <> Nothing Then
        If PosicionAltura <> 0 Or PosicionAltura <> Nothing Then
 
 
            '1234567.....13      ----> cojemos desde la posicon 7 hasta PosicionEdad --> 13- 7  = 6 caracteres
            'Altura: 180 Edad: 20 --->  _180_  
            Dim Altura As String = ""
            Dim Edad As String = ""
 
            'Trim quita los espacion iniciales y finales de la cadena
            Altura = Mid(LineaArchivo, PosicionAltura + 7, PosicionEdad - (PosicionAltura + 7)).Trim
            Edad = Mid(LineaArchivo, PosicionEdad + 6, LineaArchivo.Length - 1).Trim  ' desde la Edad hasta el final
 
            'si la altura es de 180cm acumulamos la edad y el registro
            If CInt(Altura) = 180 Then
                If IsNumeric(Edad) = True Then
                    SumaEdades = SumaEdades + Edad
                    Registros = Registros + 1
                End If
            End If
        End If
    End If
End While
 
Dim MEDIA As Decimal = 0
If Registros <> 0 Then
    MEDIA = SumaEdades / Registros
End If
 
MsgBox("MEDIA --> " & SumaEdades & "/" & Registros & " =  " & MEDIA)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar