Hola, ¿que tal?
He puesto este mensaje por si me podriaís dar referencia de instrucciones o código de como puedo leer en un fichero con cosas asi:
CitarCatheter 6
Begin
Number of Points
39
Point 0
Begin
Coordinates
67.336888 52.054878 -2.064480
Status
Active
Weight
0.303272
End
End
Necesito tomar esos datos del fichero para trabajar en ellos, realmente es una parte de un trabajo en un problema físico de calculo de dosis en tratamientos de cancer. (Son varios cateter y por cateter 39 puntos con ese formato)
Y bueno si me podeís dar bibliografía de acceso a ficheros o códigos para leer datos como estos estaría muy agradecido.
Muchas gracias :)
Hola. la verdad no entiendo ni papa.
te refieres a leer un archivo?
Private Sub Form_Load()
Dim sDatos As String
Open "ruta_del_archivo" For Input As #1
sDatos = Input(LOF(1), #1)
Close #1
MsgBox (sDatos)
End Sub
saludos
Me refiero a un fichero con ese formato el cual elabora un programa planificador, poder desde un programa mio leerlo y obtener posiciones de la fuente radiactiva y tiempo en dicha posición.
Hay aproximadamente 111 posiciiones con su tiempo, y quiero leer todo eso pasando practicamente de otros datos.
Si es con ese formato, yo me posicionaría en el archivo con InStr() y Split()
HOLA!!!
Yo leeria todo con un:
Dim sDatos As String
Dim Arr () As String
Open "ruta_del_archivo" For Input As #1
sDatos = Input(LOF(1), #1)
Close #1
Split(sDatos,vbNewLine)
For x = 0 To Ubound(Arr)
Arr(x) = LTrim(Arr(x))
Next
Asi en cada punto del array tenes una instruccion sin espacios
GRACIAS POR LEER!!!
Open App.Path & "\Datos\test.cha" For Input As #1
leercoordenadas = False
leertiempos = False
buscartiempos = False
Do While Not EOF(1)
'Lee la linea
Line Input #1, linea
If leertiempos = True Then
List2.AddItem linea
leertiempos = False
End If
If InStr(linea, "Weight") > 0 And buscartiempos = True Then
leertiempos = True
buscartiempos = False
End If
If leercoordenadas = True Then
List1.AddItem Trim(linea)
leercoordenadas = False
buscartiempos = True
End If
If InStr(linea, "Coordinates") > 0 Then
leercoordenadas = True
End If
Loop
Con el siguiente código consigo que me aparezcan un listado de las coordenadas, hay unas 400
Citar67.336888 52.054878 -2.064480
Y otro listado de los tiempos:
Citar0.303272
Y uso la función trim para quitar los espacios en blanco pero no consigo hacerlos desaparecer, ni tratar el texto ni nada no entiendo :S
Porque ya teniendo esas cadenas deberían ser fáciles de tratar, ¿No?
Cita de: Rey11 en 9 Abril 2014, 23:12 PM
Y uso la función trim para quitar los espacios en blanco pero no consigo hacerlos desaparecer
Revisa la función
replace: http://www.vb6.us/tutorials/vb6-string-functions (http://www.vb6.us/tutorials/vb6-string-functions)
Saludos!
Al final resolvi el problema, dejo parte del código por si a alguien le es útil, este código se encarga de ver cuantos puntos existen en el fichero para poder tomar los datos en una matriz posteriormente de esos elementos:
leerpcateter = False
filasmatriz = 0
Open directorio & "\LiveLoading.cha" For Input As #2
Do While Not EOF(2)
Line Input #2, linea
If leerpcateter = True Then
pcateter = CDbl(linea)
leerpcateter = False
End If
If InStr(linea, "Number of Points") > 0 Then
leerpcateter = True
End If
If pcateter > 0 Then
filasmatriz = filasmatriz + pcateter
pcateter = 0
End If
Loop
Close #2
C = filasmatriz