Leer TXT con FSO.

08/08/2006 - 13:11 por fpmweb | Informe spam
Hola,

estoy leiendo un fichero txt con FileSystemObject, y me surge un problema.

El fichero dispone de varias lineas con infromación, por ejemplo:

AAADFSFSDFSD111111111Xasfas fasdfasdfdasfasd 00000002121213135afaasf
BBBDFSFSDFSD222222222asfas fasdfasd fdasfasd 00000002121213135afaasf
CCCDFSFSDSD222222222asfas fa sdfa fasdf asd d 00000002121213135afaasf

Ahora tengo que recorrer todo el txt, recuperar linea a linea y formatearlo.
En definitiva preparar los campos para realizar un insert en la base de datos.
Deberia quedar asi:

AAADFSFSDFSD
111111111
Xasfas fasdfasdfdasfasd
00000002121213135
afaasf


BBBDFSFSDFSD
222222222
asfas fasdfasd fdasfasd
00000002121213135
afaasf


CCCDFSFSDSD
etc

De esta forma recupero la linea, corto los trozos que necesito y voy
haciendo el insert en la BD para cada bloque (o linea). El problema surge que
no lo recupera correctamente.

Tengo el siguiente código:

Set fso = CreateObject("Scripting.FileSystemObject")
Set tso = fso.OpenTextFile ("C:\Inetpub\wwwrootssssp\eees\" & "xxxx.txt")
do until (tso.AtEndOfStream)
response.write Mid(tso.ReadLine, 1, 9) & "<br>"
loop
tso.close


Aquí el primer response.write Mid(tso.ReadLine, 1, 9) & "<br>" lo recupera
bien,
pero cuando trato de recuperar la segunda parte del campo no lo recupera bien


Set fso = CreateObject("Scripting.FileSystemObject")
Set tso = fso.OpenTextFile ("C:\Inetpub\wwwrootssssp\eees\" & "xxxx.txt")
do until (tso.AtEndOfStream)
response.write Mid(tso.ReadLine, 1, 9) & "<br>"
response.write Mid(tso.ReadLine, 10, 3) & "<br>"
loop
tso.close

En este caso no lo recupera bien, me aparecen menos registros.

¿¿¿¿ Alguna solución ???

¿Hay algún método movefirst, movelast...?

Gracias.

Preguntas similare

Leer las respuestas

#6 Ju
12/08/2006 - 19:48 | Informe spam
Como parece que el registro es de tamaño determinado, crea una variable
string, carga el readline sobre la variable y aplica el left, mid, ... sobre
la variable para llenar la tabla.


Salu2
[MVP Access]
[DCE2003 ***] + VSTO
[DCE2005 **]
www.juank.tk
www.mvp-access.com
¿Que es un MVP? enterate en http://mvp.support.microsoft.com

"richi" escribió en el mensaje
news:%

En vez de leer linea a linea haz un tso.readall y cargas todo el contenido
en una variable.

Si cada linea es un registro puedes separarlos por el salto de linea,
vbcrlf

Y dentro de cada registro los campos parecen estar separados por
tabulador, vbtab

Usa estos delimitadores para manejar los datos.

Saludos.


fpmweb wrote:
Hola,

estoy leiendo un fichero txt con FileSystemObject, y me surge un
problema.

El fichero dispone de varias lineas con infromación, por ejemplo:

AAADFSFSDFSD111111111Xasfas fasdfasdfdasfasd
00000002121213135afaasf
BBBDFSFSDFSD222222222asfas fasdfasd fdasfasd
00000002121213135afaasf
CCCDFSFSDSD222222222asfas fa sdfa fasdf asd d
00000002121213135afaasf

Ahora tengo que recorrer todo el txt, recuperar linea a linea y
formatearlo. En definitiva preparar los campos para realizar un insert en
la base de datos.
Deberia quedar asi:

AAADFSFSDFSD
111111111
Xasfas fasdfasdfdasfasd 00000002121213135
afaasf


BBBDFSFSDFSD
222222222
asfas fasdfasd fdasfasd 00000002121213135
afaasf


CCCDFSFSDSD
etc

De esta forma recupero la linea, corto los trozos que necesito y voy
haciendo el insert en la BD para cada bloque (o linea). El problema surge
que no lo recupera correctamente.

Tengo el siguiente código:

Set fso = CreateObject("Scripting.FileSystemObject")
Set tso = fso.OpenTextFile ("C:\Inetpub\wwwrootssssp\eees\" &
"xxxx.txt")
do until (tso.AtEndOfStream)
response.write Mid(tso.ReadLine, 1, 9) & "<br>"
loop
tso.close


Aquí el primer response.write Mid(tso.ReadLine, 1, 9) & "<br>" lo
recupera bien,
pero cuando trato de recuperar la segunda parte del campo no lo recupera
bien


Set fso = CreateObject("Scripting.FileSystemObject")
Set tso = fso.OpenTextFile ("C:\Inetpub\wwwrootssssp\eees\" &
"xxxx.txt")
do until (tso.AtEndOfStream)
response.write Mid(tso.ReadLine, 1, 9) & "<br>"
response.write Mid(tso.ReadLine, 10, 3) & "<br>"
loop
tso.close

En este caso no lo recupera bien, me aparecen menos registros.

¿¿¿¿ Alguna solución ???

¿Hay algún método movefirst, movelast...?

Gracias.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida