none
Escribir palabras acentuadas desde ms-dos RRS feed

  • Pregunta

  • Hola.

        Private Sub BtnBuscar_Click() Handles BtnBuscar.Click
            Try
                TextBox2.Clear()
                Dim psi As New System.Diagnostics.ProcessStartInfo()
                With psi
                    .WindowStyle = ProcessWindowStyle.Hidden
                    .FileName = "cmd.exe"
                    .Arguments = "/c cd c:\&c:&attrib index.dat /s>""" & Application.StartupPath & """\indexdat.txt"
                End With
    
                Dim prc As New System.Diagnostics.Process()
                With prc
                    .StartInfo = psi
                End With
                prc.Start()
                prc.WaitForExit()
    
            Catch ex As Exception
                TextBox2.Text = ex.Message
            End Try
        End Sub

    Cuando abro el archivo indexdat.txt, las lineas que deberian contener los lombres de los archivos con acentos se escriben de la siguiente forma

    'l .txt = lá.txt
    'l‚.txt = lé.txt
    'l¡.txt = lí.txt
    'l¢.txt = ló.txt
    'l£.txt = lú.txt

    Conocen algun metodo para que se escriban, en el archivo, las direcciones con letras acentuadas de forma correcta?

    Gracias por su ayuda.

    martes, 29 de diciembre de 2015 20:12

Respuestas

  • [...] que se escriban, en el archivo, las direcciones con letras acentuadas de forma correcta?

    El problema está en la expresión "de forma correcta". No existe UNA forma correcta de grabar un fichero .txt, sino que se puede grabar con distintas codificaciones y juegos de caracteres, todos ellos correctos. Lógicamente, si lo guardas con una codificación y luego lo lees con otra distinta, pues el resultado que observas aparenta no ser correcto. Es necesario leerlo usando la misma codificación con la que se escribió.

    En el caso concreto del código que estás usando, mandas que el archivo lo grabe el propio command prompt, con lo que queda grabado con el juego Windows-1252. Para leerlo desde un programa en .NET puedes usar la codificación System.Text.Encoding.GetEncoding(1252).

    martes, 29 de diciembre de 2015 22:14

Todas las respuestas

  • [...] que se escriban, en el archivo, las direcciones con letras acentuadas de forma correcta?

    El problema está en la expresión "de forma correcta". No existe UNA forma correcta de grabar un fichero .txt, sino que se puede grabar con distintas codificaciones y juegos de caracteres, todos ellos correctos. Lógicamente, si lo guardas con una codificación y luego lo lees con otra distinta, pues el resultado que observas aparenta no ser correcto. Es necesario leerlo usando la misma codificación con la que se escribió.

    En el caso concreto del código que estás usando, mandas que el archivo lo grabe el propio command prompt, con lo que queda grabado con el juego Windows-1252. Para leerlo desde un programa en .NET puedes usar la codificación System.Text.Encoding.GetEncoding(1252).

    martes, 29 de diciembre de 2015 22:14
  • Gracias Alberto Poblacion.

     Dim R As IO.StreamReader = New IO.StreamReader(Application.StartupPath & "\indexrfm.txt", Encoding.GetEncoding(850))

    Pero no consigo, con el código expresado en la pregunta inicial, escribir en el archivo con codificacion 850?
    • Editado RafaelFM miércoles, 30 de diciembre de 2015 1:35
    miércoles, 30 de diciembre de 2015 1:17
  • Debera usar un metodo de codificacion 

    ASC11
    Unicode
    UTF7
    UTF8

    etc.

    como te indica Alberto Poblacion.


    Angel R. Jimenez G.
    Santo Domingo
    Republica Dominicana
    Blog

    miércoles, 30 de diciembre de 2015 2:01
  • Debera usar un metodo de codificacion 

    ASC11
    Unicode
    UTF7
    UTF8

    etc.

    como te indica Alberto Poblacion.


    Angel R. Jimenez G.
    Santo Domingo
    Republica Dominicana
    Blog


    Gracias.

    Pero el problema es que no se como usar ese metodo.

    miércoles, 30 de diciembre de 2015 2:15