Private cuentafilas As Integer
Public Sub Form_Open()
With grdTabla
.Header = GridView.Both
.Columns.Count = 3
.Rows.Count = 0
.Columns[0].Title = "Texto original"
.Columns[0].W = 350
.Columns[1].Title = "Codificación"
.Columns[1].w = 150
.Columns[1].Alignment = Align.Center
.Columns[2].Title = "Texto convertido a UTF-8"
.Columns[2].W = 350
.Columns[2].Alignment = Align.Center
End With
End
Public Sub rellenarGridView(nombrefichero As String, datos As String[])
Dim jc As String
Dim conversion As String
For Each jc In datos
grdTabla.Rows.Count = cuentafilas + 1
grdTabla[cuentafilas, 0].Alignment = Align.Left
grdTabla[cuentafilas, 0].Text = nombrefichero
grdTabla[cuentafilas, 1].Alignment = Align.Center
grdTabla[cuentafilas, 1].Text = jc
grdTabla[cuentafilas, 2].Alignment = Align.Center
Try conversion = Conv(nombrefichero, jc, "UTF-8")
If Not IsNull(conversion) Then grdTabla[cuentafilas, 2].Text = conversion
If Error Then
'No cuentes fila
Continue
Else
cuentafilas += 1
Endif
Next
Label1.Text = "Total de conversiones: " & Str(cuentafilas + 1)
End
Public Sub Button1_Click()
Dim archivo As String
Dim juegodec As New String[]
Dim tiposdecodificacion As String
'conv de gambas es un intermediario del comando iconv del sistema
'pasamos todos los códigos de página que existe a la variable
Try Exec ["iconv", "--list"] To tiposdecodificacion
'Copiado y pegado directamente el nombre del archivo en el editor de Gambas
'No puedo pasar el archivo, ya que no tengo seguridad si es libre
archivo = "Benito Prerz Gald¢s - Los Ayacuchos.epub"
juegodec = Split(tiposdecodificacion, "\n", "//", True)
rellenarGridView(archivo, juegodec)
'Esto salta siempre al final. No sé si es un error que viene del relleno del gridview
'He tenido que anular su ejecución
'If Error Then Message.Warning("No tienes instalado iconv en tu sistema!")
End
Private cuentafilas As Integer
Public Sub Form_Open()
With grdTabla
.Header = GridView.Both
.Columns.Count = 3
.Rows.Count = 0
.Columns[0].Title = "Texto original"
.Columns[0].Alignment = Align.Left
.Columns[0].W = 350
.Columns[1].Title = "Codificación"
.Columns[1].w = 150
.Columns[1].Alignment = Align.Center
.Columns[2].Title = "Texto convertido a UTF-8"
.Columns[2].W = 350
.Columns[2].Alignment = Align.Center
End With
End
Public Sub rellenarGridView(nombrefichero As String, datos As String[])
Dim jc As String
Dim conversion, s As String
Dim n As Integer
grdTabla.Rows.Count = datos.count
For n = 0 To datos.max
grdTabla[n, 0].Text = nombrefichero
grdTabla[n, 1].Text = datos[n]
Try conversion = Conv(nombrefichero, datos[n], "UTF-8")
If Error Then
conversion = Error.Text
Else
Inc cuentafilas
Endif
grdTabla[cuentafilas, 2].Text = conversion
Next
Label1.Text = "Total de conversiones: " & Str(cuentafilas + 1)
End
Public Sub Button1_Click()
Dim archivo As String
Dim juegodec As New String[]
Dim tiposdecodificacion As String
'conv de gambas es un intermediario del comando iconv del sistema
'pasamos todos los códigos de página que existe a la variable
Try Exec ["iconv", "--list"] To tiposdecodificacion
'Copiado y pegado directamente el nombre del archivo en el editor de Gambas
'No puedo pasar el archivo, ya que no tengo seguridad si es libre
archivo = "Benito Prerz Gald¢s - Los Ayacuchos.epub"
juegodec = Split(tiposdecodificacion, "\n", "//", True)
rellenarGridView(archivo, juegodec)
'Esto salta siempre al final. No sé si es un error que viene del relleno del gridview
'He tenido que anular su ejecución
'If Error Then Message.Warning("No tienes instalado iconv en tu sistema!")
End
(17-07-2022, 19:23)Shordi escribió: Lo primero que me ha llamado la atención es que dispone el sistema (al menos el mío) de 1.178 codificaciones y en el gridview sólo me aparecen 656. Así que he modificado tu código para que me salgan todos:
(17-07-2022, 19:23)Shordi escribió: Pero esto no soluciona el problema, sólo te indica qué conversiones generaron error y cuales generaron cadenas inimprimibles (las que están en blanco).
(17-07-2022, 19:23)Shordi escribió: Creo que el nombre del archivo es el resultado de una conversión errónea, por lo que no tiene nada que ver con ninguna en concreto. Es decir, alguien lo creó con acentos, alguien se encontró con que no le salían y trató de convertirlos, con lo que convirtió un caracter extraño en otro caracter extraño distinto y ese segundo par de caracteres extraños es el que se quedó por no ser convertibles.
(17-07-2022, 19:23)Shordi escribió: A mí pasó algo así hace mucho tiempo con un puñado de archivos .pdf importados de la red. Me volvieron loco y al final tuve que, simplemente, eliminar todo caracter extraño de los nombres de archivos. Mejor Benito Prez Galds que nada... o no.
Cita:
-O CHARSET specify a character encoding for DOS, Windows and OS/2 archives
-I CHARSET specify a character encoding for UNIX and other archives
Y además:
-U use escapes for all non-ASCII Unicode
-UU ignore any Unicode fields