 
			
				23/05/2011, 07:43
			
			
			     |  
      |    |    |    Fecha de Ingreso: marzo-2011  
						Mensajes: 9
					  Antigüedad: 14 años, 7 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.           |