Ver Mensaje Individual
  #12 (permalink)  
Antiguo 23/05/2011, 07:43
essolo
 
Fecha de Ingreso: marzo-2011
Mensajes: 9
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: txt y coordenadas en vb6

Hola: primer intento fallido.
pkj:
al usar tu codigo como tal, me da error:
número de archivo, o acceso a la ruta incorrecto.
coloque el archivo Llamado Fichero, e incluso, FicheroTXT, en c: y en la carpeta donde guarde el ejemplo que expones, sin resultado alguno.
Pensando que no leia el archivo, coloque al form un listbox para vacear en él , el contenido de txt; y si lo hizo, pero cambiando:
Do Until EOF(NumFichero) por Do While Not EOF(NumFichero).
Aquí lo curioso es que aveces sólo lee hasta el bloque1 y aveces no lee nada.
y no grafica.
En en boton 2 cuando grafica, solo pone una linea; cuando se supone que deberia de formar una figura. Y el boton 3 funciona muy bien.

Y al modificar más lineas: Private Function CargaCoordenadas(ByVal FicheroTXT As String, ByVal NumBlock As Long, Matriz() As Coordenadas) As Boolean
He de suponer que "FicheroTXT" es la variable donde guardo el nombre de mi .txt?
Esto es correcto? porque no me hace gesto alguno:
FicheroTXT = File1.Path & "\" & File1.FileName

Private Function CargaCoordenadas(ByVal FicheroTXT As String, ByVal NumBlock As Long, Matriz() As Coordenadas) As Boolean
' carga una matriz con las coordenadas del Block elegido y del fichero elegido
Dim NumFichero As Integer
Dim Linea As String
Dim BlockABuscar As String
Dim Coord() As String
Dim Encontrado As Boolean
BlockABuscar = "BLOCK " & NumBlock
ReDim Matriz(0)
On Local Error GoTo ErrorSub
NumFichero = FreeFile
FicheroTXT = File1.Path & "\" & File1.FileName
Open FicheroTXT For Input As NumFichero
Do while not EOF(NumFichero)
Line Input #NumFichero, Linea
If Encontrado = False Then
If UCase$(Trim$(Linea)) = BlockABuscar Then
Encontrado = True
GoTo Otro
End If
End If
If Encontrado = True Then
If UCase$(Left$(Trim$(Linea), 5)) = "BLOCK" Then Exit Do
Coord = Split(Linea, ",")
ReDim Preserve Coord(1) ' nos aseguramos de que se ha creado la matriz
Matriz(UBound(Matriz)).X = Val(Coord(0))
Matriz(UBound(Matriz)).Y = Val(Coord(1))
ReDim Preserve Matriz(UBound(Matriz) + 1)
End If
Otro:
Loop
ErrorSub:
If Err.Number <> 0 Then MsgBox Err.Description
CargaCoordenadas = Encontrado
Err.Clear
On Local Error Resume Next
Close
If UBound(Matriz) > 0 Then ReDim Preserve Matriz(UBound(Matriz) - 1)
End Function

lokoman: de primer instancia tu codigo funciona bien; sólo que no he tenido el suficiente tiempo para analizarlo y acoplarlo a mi aplicación. Te ruego me des un par de días más y lo comentare.
Más ideas y sugerencias o correcciones seran muy agradecidas de mi parte.
Saludos.