SoloCodigo
Programación General => Visual Basic 6.0 e inferiores => Mensaje iniciado por: Fernando_P en Jueves 26 de Agosto de 2004, 23:39
-
Hola a todos!
gracias por su ayuda con mi topico anterior...
Ahora tengo otro problema,
tengo un archivo plano txt que tiene el siguiente formato:
(http://www.udec.cl/~fepizarr/Archivo_origen.jpg)
donde la primera columna es un ID la sgte es una Coord X , la sgte Coord_Y y la ultima es una referencia.
Necesito recorrer este archivo y buscar o desplegar todas las lineas donde la referencia sea mayor o igual a 10.
Coimo lo hago para que una vez leida la linea pueda guardar en cuatro variables el valor de cada columna?, sin temor a equivocarme?
Ojala puedan ayudarme, seria una gran ayuda, muy grande.
Saludos a tod@s!!!!
-
Si el archivo tiene la estructura que ahi muestras entonces esto te servira:
archivo="C:\MICARPETA\BORDE.TXT"
open archivo for input as #1
while not eof(1)
input #1,linea
var1=cdbl(mid(linea,1,5))
var2=cdbl(mid(linea,6,8))
var3=cdbl(mid(linea,15,8))
var4=cdbl(mid(linea,24,3))
if var4>=10 then
print var1,var2,var3,var4
endif
wend
close(1)
En las instrucciones mid(linea,i,j) cambia los valores de acuerdo a tu realidad, para que lea los valores donde corresponde.
-
Gracias Jose...
Ocupe una solucion similar a la que tu me entregas, y resulta, el asunto es que es poco estandar ya que puede haber algun archivo donde las coordenadas tengan decimales por ejemplo o donde haya 1000 o 10000 puntos, por lo que la funcion MID no me serviria, o tendria que cambiarla para cada tipo de archivo.
Por esto busco una solucion mas general que me permita recorrer el archivo y almacenar en cada variable, pero usando los espacios entre columnas o algo asi, es eso lo que no se hacer.
Gracias por tu ayuda y espero haberme explicado mejor ahora.
Saludos!
-
Haberlo dicho desde el principio.
Lo que requieres lo siguiente:
Si el archivo tiene la estructura que ahi muestras entonces esto te servira:
archivo="C:\MICARPETA\BORDE.TXT"
open archivo for input as #1
while not eof(1)
input #1,linea
pos=instr(linea," ")
largo=len(linea)
var1=cdbl(mid(linea,1,pos-1))
linea=mid(linea,pos+1,linea-pos+1)
pos=instr(linea," ")
largo=len(linea)
var2=cdbl(mid(linea,1,pos-1))
linea=mid(linea,pos+1,linea-pos+1)
pos=instr(linea," ")
largo=len(linea)
var3=cdbl(mid(linea,1,pos-1))
var4=mid(linea,pos+1,linea-pos+1)
if var4>=10 then
print var1,var2,var3,var4
endif
wend
close(1)