Visual Basic - Delimitar campos en un TXT

Life is soft - evento anual de software empresarial
 
Vista:

Delimitar campos en un TXT

Publicado por Juan Garcia (3 intervenciones) el 15/01/2003 13:08:28
-He empezado a hacer un programa en que me apareciese lo que escribo en un TXT con un registro de 2 campos delimitado por algun caracter(Ej.: Campo1,Campo2). He probrado a abrirlo de forma secuencial usando un MsFlexGrid :
-------------------------------
Canal = FreeFile
Open "C:\Windows Update\Pruebas\C.txt" For Input As Canal
While Not EOF(Canal)
Line Input #Canal, Miregistro.Nombre
Listado.AddItem (Miregistro.Nombre)
Wend
Close Canal
--------------------------------
El tema es que me coje la linea entera. Me gustaria saber como podría mostrar cada campo en una columna y poder controlarlos para trabajar con ellos.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Delimitar campos en un TXT

Publicado por Scherzo (42 intervenciones) el 15/01/2003 15:23:44
Lo que puedes hacer es una función que vaya leyendo carácter a carácter hasta que se encuentre el delimitador de campo, en tu caso el carácter coma. En ese momento sabes que has leido el primer campo, y lo que hay detrás de la coma pertenece al segundo.

La idea podría ser algo así:

i = 1
sCampo1 = ""
sCampo2 = ""

sCaracter = Mid(sLinea, i, 1)
While sCaracter <> sCARACTER_SEPARADOR
sCampo1 = sCampo1 & sCaracter
i = i +1
sCaracter = Mid(sLinea, i, 1)
Wend

For n = i+1 to Len(sLinea)
sCampo2 = sCampo2 & Mid(sLinea, n, 1)
Next n

y luego metes sCampo1 y sCampo2 en sus respectivos sitios

Espero que te sirva.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Delimitar campos en un TXT

Publicado por Y.Cruz (102 intervenciones) el 15/01/2003 15:35:14
Aun tengo dudas con respecto a lo que quieres hacer, pero puedo darte una idea de como separar los dos campos para insertarlos.
Primero asignas el valor del campo a una variable tipo texto(o lo puedes hacer directo al contenido del campo) para buscar la posicion del caracter delimitador (,)
*****************************************
strTexto = CajadeTexto.text
intPosicion = InStr(1, strTexto, ",")
*****************************************
Luego divides los campos en dos varibles extrayendo un # de caracteres antes y despues de la posicion del delimitador.
*************************************************
var1 = Mid(strTexto, 1, intPosicion - 1)
var2 = Mid(strTexto, intPosicion + 1)
*************************************************
Ahi var1 tiene el valor de la primera columna y var2 tiene el valor de la segunda columna.

No se si existe una manera mas facil de hacerlo, pero yo he usado esta y es corta y efectiva... espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Muchas gracias

Publicado por Juan Garcia (3 intervenciones) el 16/01/2003 11:30:03
-Gracias a los dos por haberme respondido tan rapido. Me ha sido de gran utilidad vuestras respuestas. Un saludo y gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar