elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  ¿ Que estoy haciendo mal ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: ¿ Que estoy haciendo mal ?  (Leído 3,497 veces)
Mr.Know

Desconectado Desconectado

Mensajes: 69



Ver Perfil WWW
¿ Que estoy haciendo mal ?
« en: 14 Junio 2010, 23:16 »

Hola

Vereis tengo un archivo de texto, con 18 lineas, en cada linea un valor numerico y lo queria es abrir ese archivo de texto y cargarlo en un array, para luego poder usarlo.

Yo lo he planteado asi:

Código
  1. Sub leer_archivo()
  2. Dim faa As Integer
  3. Dim Array_D(1 To 18) As String * 60
  4. Open Final For Input As #faa
  5. Array_D = Input(LOF(faa), #faa)
  6. Close #faa
  7. Label1.Text = Label1.Text & Array_D(1)
  8. Label2.Text = label2.Text & Arrai_D(1)
  9. End Sub

Y esque no se si es porque el array no acepta recibir datos o asi o hay algo mal declarado o no se.

un saludo


En línea

360 Piratas: Un blog sobre la consola Xbox 360

Echarle un vistazo !
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.704


WOS & Khan & Calero LDN


Ver Perfil WWW
Re: ¿ Que estoy haciendo mal ?
« Respuesta #1 en: 14 Junio 2010, 23:22 »

Código
  1. Label1.Text = Label1.Text & Array_D(1)
No entiendo eso.


En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Mr.Know

Desconectado Desconectado

Mensajes: 69



Ver Perfil WWW
Re: ¿ Que estoy haciendo mal ?
« Respuesta #2 en: 14 Junio 2010, 23:32 »

Código
  1. Label1.Text = Label1.Text & Array_D(1)
No entiendo eso.

Pues hay lo que pretendo es, añadir al texto que tiene la Label 1 el primer elemeto del array que deberia ser la linea 1 del documento de texto.

un saludo
En línea

360 Piratas: Un blog sobre la consola Xbox 360

Echarle un vistazo !
.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: ¿ Que estoy haciendo mal ?
« Respuesta #3 en: 14 Junio 2010, 23:42 »

no te falta algo como faa=freefile? Digo yo  :xD

Y creo que tas usando mal los arreglos... lo que necesitas es solo un string... porq segun lo que haces en:
Código
  1. Array_D = Input(LOF(faa), #faa)

Me parece que esta mal... Yo haria algo como:

un array de 18 strings (o enteros) y luego con un Do/Loop o un for, recorrer el archivo y darle el valor de la linia a cada posicion del array... Las posiciones pes las controlas con una variable...

Pero creo que en ese codigo hay varios errores, no nada mas los arrays...

Saludos
En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



Mr.Know

Desconectado Desconectado

Mensajes: 69



Ver Perfil WWW
Re: ¿ Que estoy haciendo mal ?
« Respuesta #4 en: 15 Junio 2010, 00:17 »

no te falta algo como faa=freefile? Digo yo  :xD

Si, esque como quite trozos no relevantes pues yo creo que me lo he comido.


Me parece que esta mal... Yo haria algo como:

un array de 18 strings (o enteros) y luego con un Do/Loop o un for, recorrer el archivo y darle el valor de la linia a cada posicion del array... Las posiciones pes las controlas con una variable...

Saludos

El problema esque no se como hacer que recorra el archivo linea a linea y la vaya almacenando en un valor del array...

Mira he remplanteado el codigo y ya te lo pongo completo

Código
  1. Sub buscar_partidos()
  2. On Error GoTo Error_Sub
  3. Dim archivo As String
  4. Dim temp As String, Ret As Long
  5. Dim Directorio As String
  6. Dim Final_A(1 To 18) As String * 60
  7. ChDir App.Path
  8. ChDrive App.Path
  9. Directorio = App.Path
  10. If Len(Directorio) > 3 Then Directorio = Directorio & "\BD\"
  11. archivo = Form1.equipo1 & "-" & Form1.equipo2 & ".txt"
  12. Me.MousePointer = vbHourglass
  13. temp = String(MAX_PATH, 0)
  14. Ret = SearchTreeForFile(Directorio, archivo, temp)
  15. If Ret <> 0 Then
  16.  Final_A = Left$(temp, InStr(1, temp, Chr$(0)) - 1) '*********
  17. Else
  18.  MsgBox "Partido No encontrado", vbInformation
  19. End If
  20. Me.MousePointer = 0
  21. Exit Sub
  22. Error_Sub:
  23. MsgBox Err.Description, vbCritical
  24. Me.MousePointer = 0
  25. End Sub
  26.  


y esta es la linea que no se que hacer y lo pongo a lo burro xD

Código
  1. Final_A = Left$(temp, InStr(1, temp, Chr$(0)) - 1)

Lo que necesito es poder volcar linea a linea en el Array Final_A, siendo cada linea un elemento del Array. Recuerdo que cada lina del documento solo contiene 1 numero.

un saludo y gracias
En línea

360 Piratas: Un blog sobre la consola Xbox 360

Echarle un vistazo !
skapunky
Electronik Engineer &
Colaborador
***
Desconectado Desconectado

Mensajes: 3.668


www.killtrojan.net


Ver Perfil WWW
Re: ¿ Que estoy haciendo mal ?
« Respuesta #5 en: 15 Junio 2010, 00:41 »

Código
  1. Label1.Text = Label1.Text & Array_D(1)
No entiendo eso.

Pues hay lo que pretendo es, añadir al texto que tiene la Label 1 el primer elemeto del array que deberia ser la linea 1 del documento de texto.

un saludo

Mal planteado, debes asignar al array cada línea antes de cerrar el archivo, no una vez lo cierras ya que sinó no se copiará nada en tu array. La idea es mientras el archivo no finalize, utilizando EOF, vayas leyendo línea por línea y guardandola en las posicines del array.

Para que puedas hacerlo, busca en internet como:

- Leer línea por línea de un archivo de texto. (hay muchos ejemplos)
- Utilizar una estructura como FOR o como While (hay chorromiles ejemplos)

Con esas dos cosas puedes hacerlo perfectamente, creo que se entiende la idea que te doy.
En línea

Killtrojan Syslog v1.44: ENTRAR
.:BlackCoder:.


Desconectado Desconectado

Mensajes: 388


Cada dia C++!!


Ver Perfil
Re: ¿ Que estoy haciendo mal ?
« Respuesta #6 en: 15 Junio 2010, 00:46 »

http://www.elguille.info/vb/cursos_vb/basico/basico12.htm

Yo no le pare mucho al tema de los archivos, pero pes al momento lo entendi... No me acuerdo bien pero si se que debes usar input de otra forma...


Saludos...
En línea

"No te esfuerzes por saber mas, esfuerzate por ser el mejor en lo que sabes... Y asi sabras mas" .:BlackCoder:. jajaja



Mr.Know

Desconectado Desconectado

Mensajes: 69



Ver Perfil WWW
Re: ¿ Que estoy haciendo mal ?
« Respuesta #7 en: 15 Junio 2010, 11:08 »

Hola

Perfecto creo que ya lo he entendido mejor  :P ahora haber que tal de esta manera:


Veis algun fallo importante en el codigo ?

Código
  1. Public Final As String ' Esta variable la calcule en otra funcion, pero la necesito en varias funciones asique la declaro como publica
  2. Sub leer_partido()
  3.    Dim MasNumeros(1 To 19) As String ' Tengo que usar String porque 18 lineas son numeros y 1 es alfanumerica
  4.    Dim i%
  5.    Dim nFic%
  6.    Dim inicial As Integer
  7.    inicial = 1
  8.    nFic = FreeFile
  9.    Open Final For Input As nFic
  10.    For i = 1 To 19
  11.        Input #nFic, MasNumeros(i)
  12.    Next
  13.    Close nFic
  14.    Contador1 = Val(Contador1) + Val(inicial) ' Necesito llevar la cuenta de cuantas veces se llama a esta funcion.
  15. 'Ahora voy volcando dato a dato del array en su correspondiente label
  16.    Label1.Caption = MasNumeros(1) & vbCrLf
  17.    Label2.Caption = MasNumeros(2) & vbCrLf
  18.    Label3.Caption = MasNumeros(3) & vbCrLf
  19.    Label4.Caption = MasNumeros(4) & vbCrLf
  20.    Label5.Caption = MasNumeros(5) & vbCrLf
  21.    Label6.Caption = MasNumeros(6) & vbCrLf
  22.    Label7.Caption = MasNumeros(7) & vbCrLf
  23.    Label8.Caption = MasNumeros(8) & vbCrLf
  24.    Label9.Caption = MasNumeros(9) & vbCrLf
  25.    Label10.Caption = MasNumeros(10) & vbCrLf
  26.    Label11.Caption = MasNumeros(11) & vbCrLf
  27.    Label12.Caption = MasNumeros(12) & vbCrLf
  28.    Label13.Caption = MasNumeros(13) & vbCrLf
  29.    Label14.Caption = MasNumeros(14) & vbCrLf
  30.    Label15.Caption = MasNumeros(15) & vbCrLf
  31.    Label16.Caption = MasNumeros(16) & vbCrLf
  32.    Label17.Caption = MasNumeros(17) & vbCrLf
  33.    Label18.Caption = MasNumeros(18) & vbCrLf
  34.    resultados.AddItem = MasNumeros(19) & vbCrLf ' Esto es un listbox y le meto datos alfanumericos ( una frase con numeros )
  35. End Sub
  36.  
En línea

360 Piratas: Un blog sobre la consola Xbox 360

Echarle un vistazo !
BlackZeroX (Astaroth)
Wiki

Desconectado Desconectado

Mensajes: 3.128


I'Love...!¡.


Ver Perfil WWW
Re: ¿ Que estoy haciendo mal ?
« Respuesta #8 en: 15 Junio 2010, 11:24 »

Tu variable Final no me convence pero bueno aya cada quien...

Aqui lo dejo con fixeos por mi parte dejandolo mas Dinamico que el tuyo!¡.

Código
  1. Private Sub leer_partido(ByVal StrPath$)
  2. If Dir(StrPath, vbArchive) = "" Then Exit Sub
  3. Dim MasNumeros$()   '   //  String
  4. Dim i%              '   //  Long
  5. Dim nFic#           '   //  Integer
  6.    nFic = FileSystem.FreeFile
  7.    Open StrPath For Input As nFic
  8.        Do While Not FileSystem.EOF(nFic)      '   //  Mientras no lleguemos al final leemos las lineas del archivo X.
  9.            ReDim Preserve MasNumeros(i)
  10.            Input #nFic, MasNumeros(i)
  11.            i = i + 1
  12.            DoEvents
  13.        Loop 'Do While Not EOF(nFic)
  14.    Close nFic
  15.  
  16.    For i = Label.LBound To Label.UBound
  17.        If Information.IsNumeric(MasNumeros(i)) Then
  18.            Label(i).Caption = MasNumeros(i)
  19.        Else
  20.            resultados.AddItem = MasNumeros(i)
  21.        End If
  22.    Next
  23.    Contador1 = Contador1 + 1
  24. End Sub
  25.  

P.D.: Agregar una MATRIX de controles llamados Label

Dulce Infierno Lunar!¡.
« Última modificación: 15 Junio 2010, 11:26 por BlackZeroX▓▓▒▒░░ » En línea




CScript (Actualizado 26/06/2013).

FileX <-- Re-modelando...
Web Principal-->[ Blog(VB6/C/C++) | Host File | Scan Port) ]

The Dark Shadow is my passion.
El infierno es mi Hogar, mi novia es Lilit y el metal mi relig
BlackZeroX (Astaroth)
Wiki

Desconectado Desconectado

Mensajes: 3.128


I'Love...!¡.


Ver Perfil WWW
Re: ¿ Que estoy haciendo mal ?
« Respuesta #9 en: 15 Junio 2010, 11:48 »

a se me paso igual puedes cargar o seguir cargando X label o descargar X label de la matrix solo leete un manual

Es Load() y unLoad() lo que debes usar!¡, despues de cargarlo este estara visible=False debes pasarlo a true y en una nueva posicion o se create en la posicion predeterminada!¡.

OJO es una optativa!¡ para cargar mas lineas de una rchivo X y no crear TODOS los Labels en tiempo de diseñño en el IDE, igual puedes optar por.

aqui te lo dejo mas optimizado y con lo que dije como codigo comentado!¡.

Código
  1. Private Sub leer_partido(ByVal StrPath$): On Error Resume Next
  2. If Dir(StrPath, vbArchive) = "" Then Exit Sub
  3. Dim TMPLine$        '   //  String
  4. Dim i%              '   //  Long    de forma Pre esta en 0
  5. Dim nFic#           '   //  Integer
  6. 'Dim tmpc#           '   //  Integer
  7.    nFic = FileSystem.FreeFile
  8.    Open StrPath For Input As nFic
  9.        Do While Not FileSystem.EOF(nFic)      '   //  Mientras no lleguemos al final leemos las lineas del archivo X.
  10.            Input #nFic, TMPLine$
  11.            '   Aqui entraria un load a un label
  12.            '   Ejemplo:
  13.            'tmpc = i+1
  14.            'Load Label(tmpc)    '   //  Aqui puede provocarse un error!¡. por eso uso On error resume next
  15.            'With Label(tmpc)
  16.            '    .Top = Label(tmpc - 1).Top + Label(tmpc - 1).Height + 5
  17.            '    .Left = Label(tmpc).Left
  18.            '    .Visible = True
  19.            'End With
  20.            If Information.IsNumeric(TMPLine$) Then
  21.                Label(i).Caption = MasNumeros(i)
  22.            Else
  23.                resultados.AddItem = MasNumeros(i)
  24.            End If
  25.            i = i + 1
  26.            DoEvents
  27.        Loop 'Do While Not EOF(nFic)
  28.    Close nFic
  29.    'for tmpc = i-1 to Label.ubound
  30.    '    unload  Label(tmpc)
  31.    'next
  32.    Contador1 = Contador1 + 1
  33. End Sub
  34.  

Ducle Infierno Lunar!¡.
« Última modificación: 15 Junio 2010, 11:55 por BlackZeroX▓▓▒▒░░ » En línea




CScript (Actualizado 26/06/2013).

FileX <-- Re-modelando...
Web Principal-->[ Blog(VB6/C/C++) | Host File | Scan Port) ]

The Dark Shadow is my passion.
El infierno es mi Hogar, mi novia es Lilit y el metal mi relig
Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines