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

#6 Eva
09/04/2010 - 15:03 | Informe spam
Pos yo no soy ;)

"José Mª Fueyo" wrote:

Mostrar la cita
#7 Patxi Sanz
09/04/2010 - 17:26 | Informe spam
Tendrás que saber primero con qué configuración (ANSI, Unicode, ...) se ha
guardado el archivo.

La forma más sencilla es abrir el archivo con Word. Cuando lo abres con este
programa, antes de cargarse aparece un diálogo donde podrás ver las
distintas posibilidades, y una vista previa de cómo queda el archivo si se
emplea la configuración seleccionada.

Un saludo,


Patxi Sanz
Tudela (NA)
http://www.pasa.es.tt/
#8 Eva
12/04/2010 - 11:28 | Informe spam
Hola Patxi

Unicode UTF-8 es lo que dice Word que abre

Gracias :)

"Patxi Sanz" wrote:

Mostrar la cita
#9 Patxi Sanz
13/04/2010 - 12:26 | Informe spam
Lo siento, me olvidé de un pequeño gran detalle :-(

El editor de VBA trabaja con la tabla de códigos ANSI, nunca Unicode. Por
eso, al pasar lo que estás leyendo del archivo a una variable de texto, ves
esos caracteres extraños, porque no hay conversión del carácter Unicode al
carácter ANSI.

Estoy intentando hacer alguna prueba, pero a lo más que llego es al mismo
resultado que tú, o a conseguir carateres en idiomas orientales (chino,
japonés o alguno similar).

Otra posibilidad, aunque puede llegar a ser fastidiosa, es cargar el texto y
luego reemplazar los caracteres extraños encontrados por los caracteres
deseados en ANSI:

à" -> Ó
...

Un saludo,


Patxi Sanz
Tudela (NA)
http://www.pasa.es.tt/
#10 EnricV
13/04/2010 - 14:53 | Informe spam
Yo lo primero que hago antes que nada, es dejar el fichero en
condiciones, es decir, convertido,

Aquí os dejo,. lo que alguien me dejó,


Saludos desde VLC






Public Function ConvertUTF8File(sUTF8File As String, sANSIFile As
String) As String
Dim iFile As Integer, bData() As Byte, sData As String, lSize As Long

' Get the incoming data size
lSize = FileLen(sUTF8File)
If lSize > 0 Then
ReDim bData(0 To lSize - 1)

' Read the existing UTF-8 file
iFile = FreeFile()
Open sUTF8File For Binary As #iFile
Get #iFile, , bData
Close #iFile

' Convert all the data to Unicode (all VB Strings are Unicode)
sData = sUTF8ToUni(bData)
Else
sData = ""
End If

' Now write it all out to the ANSI file
iFile = FreeFile()
Open sANSIFile For Output As #iFile
Print #iFile, sData
Close iFile
'ahora le llamo como al ansii, para pasarselo a la otra func
ConvertUTF8File = sANSIFile

End Function
Ads by Google
Search Busqueda sugerida