FileSystemObject - leer fichero de texto, líneas con acentos

08/04/2010 - 10:48 por Eva | Informe spam
Hola :)

Access 2000, abro un fichero de texto con FileSystemObject (he probado con
OpenAsTextStream y OpenTextFile), en el fichero tengo una línea tal que:

EDIFICACIÓN LOGISTICA INDUSTRIAL

Al leer esta línea con ReadLine obtengo:

EDIFICACIà"N LOGISTICA INDUSTRIAL

¿Qué hago mal? Gracias mil :)))))

Eva

Preguntas similare

Leer las respuestas

#1 José Mª Fueyo
08/04/2010 - 13:42 | Informe spam
Hola Eva
Sería interesante que nos pusieras el código que utilizas.

Salu2
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#2 Eva
09/04/2010 - 08:50 | Informe spam
Hola Chema :)))

Copio, obediente que es una:

Set fso = CreateObject("Scripting.FileSystemObject")
Set fil1 = fso.GetFile(strPath2) ' strPath2 contiene el nombre completo
del fichero
Set ts = fil1.OpenAsTextStream(ForReading)

'Set ts = fso.OpenTextFile(strPath2, ForReading, True) También he
probado así, con el mismo resultado

While Not ts.AtEndOfStream
strLinea = ts.ReadLine

Y a partir de aquí voy tratando la línea. Todo funciona correctamente, hasta
que me encuentro con acentos que la cosa se estropea un poquito :(

He consultado la documentación sobre tratamiento de ficheros y no encuentro
nada que me de un poquito de luz, cual pulpo en garaje.

Gracias :))))

Eva.


"José Mª Fueyo" wrote:

Hola Eva
Sería interesante que nos pusieras el código que utilizas.

Salu2
José Mª Fueyo
[MS MVP Access]
.

Respuesta Responder a este mensaje
#3 José Mª Fueyo
09/04/2010 - 10:35 | Informe spam
On 9 abr, 08:50, Eva wrote:
Hola Chema :)))

Copio, obediente que es una:

    Set fso = CreateObject("Scripting.FileSystemObject")
    Set fil1 = fso.GetFile(strPath2) ' strPath2 contiene el nombre completo
del fichero
    Set ts = fil1.OpenAsTextStream(ForReading)

    'Set ts = fso.OpenTextFile(strPath2, ForReading, True) También he
probado así, con el mismo resultado

    While Not ts.AtEndOfStream
        strLinea = ts.ReadLine

Y a partir de aquí voy tratando la línea. Todo funciona correctamente, hasta
que me encuentro con acentos que la cosa se estropea un poquito :(

He consultado la documentación sobre tratamiento de ficheros y no encuentro
nada que me de un poquito de luz, cual pulpo en garaje.

Gracias :))))

Eva.        



"José Mª Fueyo" wrote:
> Hola Eva
> Sería interesante que nos pusieras el código que utilizas.

> Salu2
> José Mª Fueyo
> [MS MVP Access]
> .- Ocultar texto de la cita -

- Mostrar texto de la cita -



Hola Eva :-)
Esto, a mi, me devuelve el texto correctamente. Creo que el problema
es la elección de la página de códigos.
Tengo un fichero con éste texto:

Esto es una prueba
Un acento:
EDIFICACIÓN LOGISTICA INDUSTRIAL

Y este es el código:
<pego>
Public Sub LeeFichero()
Dim fso As FileSystemObject, fil1 As File, ts As TextStream
Dim strPath2 As String
strPath2 = "c:\MiArchivo.txt"

Set fso = New FileSystemObject
Set fil1 = fso.GetFile(strPath2) ' strPath2 contiene el nombre
completo del fichero
Set ts = fil1.OpenAsTextStream(ForReading, TristateUseDefault)
Do Until ts.AtEndOfStream
Dim sTexto As String
sTexto = ts.ReadLine
Debug.Print sTexto
Loop
ts.Close
set ts= Nothing
Set fil1 = Nothing
Set fso = Nothing
End Sub
<pego>

Fíjate, que he usado un segundo parámetro para OpenAsTextStream. Sí lo
omites, como lo tenías tu, lo abre como un texto ASCII. El parámetro
TristateUseDefault usa la configuración del sistema.

Más información, en MSDN ;-). Sí tienes la ayuda de VS 6 (el clásico),
ahí lo tienes muy clarito.

Salu2
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
#4 Eva
09/04/2010 - 12:54 | Informe spam
Jelou again

Sipi, había consultado MSDN y había visto este segundo parámetro. He probado
con todos los valores posibles y nada de nada :( O sea, que no estoy
probando bien, o algo raro está pasando Antes comprobé mi configuración
regional y todo el lío, porque era como muy evidente que el problema iba por
el ahí... Jo, jo y jo

Bueno, voy a probar otra vez con pofesionalidá y rigor, a ver si me he
ofuscao (muy posiblemente...) y ahí queda todo.

Gracias Chemita, abrazo fuerte

P.D.: ¿Por qué demonio colorao - por no decir otra cosa - no puedo publicar
desde OE o Live mail?

"José Mª Fueyo" wrote:

On 9 abr, 08:50, Eva wrote:
> Hola Chema :)))
>
> Copio, obediente que es una:
>
> Set fso = CreateObject("Scripting.FileSystemObject")
> Set fil1 = fso.GetFile(strPath2) ' strPath2 contiene el nombre completo
> del fichero
> Set ts = fil1.OpenAsTextStream(ForReading)
>
> 'Set ts = fso.OpenTextFile(strPath2, ForReading, True) También he
> probado así, con el mismo resultado
>
> While Not ts.AtEndOfStream
> strLinea = ts.ReadLine
>
> Y a partir de aquí voy tratando la línea. Todo funciona correctamente, hasta
> que me encuentro con acentos que la cosa se estropea un poquito :(
>
> He consultado la documentación sobre tratamiento de ficheros y no encuentro
> nada que me de un poquito de luz, cual pulpo en garaje.
>
> Gracias :))))
>
> Eva.
>
>
>
> "José Mª Fueyo" wrote:
> > Hola Eva
> > Sería interesante que nos pusieras el código que utilizas.
>
> > Salu2
> > José Mª Fueyo
> > [MS MVP Access]
> > .- Ocultar texto de la cita -
>
> - Mostrar texto de la cita -

Hola Eva :-)
Esto, a mi, me devuelve el texto correctamente. Creo que el problema
es la elección de la página de códigos.
Tengo un fichero con éste texto:

Esto es una prueba
Un acento:
EDIFICACIÓN LOGISTICA INDUSTRIAL

Y este es el código:
<pego>
Public Sub LeeFichero()
Dim fso As FileSystemObject, fil1 As File, ts As TextStream
Dim strPath2 As String
strPath2 = "c:\MiArchivo.txt"

Set fso = New FileSystemObject
Set fil1 = fso.GetFile(strPath2) ' strPath2 contiene el nombre
completo del fichero
Set ts = fil1.OpenAsTextStream(ForReading, TristateUseDefault)
Do Until ts.AtEndOfStream
Dim sTexto As String
sTexto = ts.ReadLine
Debug.Print sTexto
Loop
ts.Close
set ts= Nothing
Set fil1 = Nothing
Set fso = Nothing
End Sub
<pego>

Fíjate, que he usado un segundo parámetro para OpenAsTextStream. Sí lo
omites, como lo tenías tu, lo abre como un texto ASCII. El parámetro
TristateUseDefault usa la configuración del sistema.

Más información, en MSDN ;-). Sí tienes la ayuda de VS 6 (el clásico),
ahí lo tienes muy clarito.

Salu2
José Mª Fueyo
[MS MVP Access]

.

Respuesta Responder a este mensaje
#5 José Mª Fueyo
09/04/2010 - 14:04 | Informe spam
P.D.: ¿Por qué demonio colorao - por no decir otra cosa - no puedo publicar
desde OE o Live mail?



De un tiempo a ésta parte, las ñus están plagadas de meigas :-(

Abrazote
José Mª Fueyo
[MS MVP Access]
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida