Gambas-it

Gambas3 => Programmazione => Topic aperto da: Cocirio - 14 Aprile 2015, 19:55:56

Titolo: [RISOLTO] vocali accentate illeggibili in TextArea
Inserito da: Cocirio - 14 Aprile 2015, 19:55:56
Salve. Sto testando un progetto suggerito dalla guida per principianti di Emanuele La Torre. Il progetto prevede la lettura di un file di testo su una TextArea, dove tutte le vocali accentate risultano illeggibili. Per esempio, ecco uno spezzone del testo: "che per� non � l'oggetto".
Lo stesso file di testo, letto da un normale editor di testo, non ha difetti. Inoltre se le vocali 'ingarbugliate' vengono corrette dall'utente, appaiono giuste. Il file' così corretto può anche essere salvato, ma la successiva rilettura ripresenta gli stessi inconvenienti.
Esiste una soluzione? Purtroppo io non ne ho sapute trovare. Grazie.
 
Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: vuott - 14 Aprile 2015, 20:10:27
Scusa, puoi mostrarci la parte essenziale del codice, ossia le istruzioni utilizzate per leggere il file di testo e quelle successive per l'assegnamento dei dati alla TextArea ?
Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: Cocirio - 15 Aprile 2015, 09:27:37
Ok. Ecco qua tutta la parte iniziale del codice:
' Gambas class file

sCurrentFileName As String
sCurrentFileLength As Integer

Public Sub Form_Open()
Dim sInputLine As String
Dim hFileIn As File
Dim sAppPath As String
Dim sDataPath As String
sAppPath = Application.Path
sDataPath = sAppPath & "/" & "FileOps" & "/"
sCurrentFileName = "Raven.txt"
If Exist(sDataPath & sCurrentFileName) Then
  hFileIn = Open sDataPath & sCurrentFileName For Read
  sCurrentFileLength = Lof(hFileIn) 'to show how to get file size
  Form1.Caption = " " & sCurrentFileName & ", size: " & Str(sCurrentFileLength) & " bytes."
  While Not Eof(hFileIn)
    Line Input #hFileIn, sInputLine
    TextArea1.Text = TextArea1.Text & Chr(13) & Chr(10) & sInputLine
  Wend
  Close hFileIn
Else
  Message.Info("File " & sCurrentFileName & " does not exist.")
  FileOpenItem_Click() ' force a file to be picked if no default.
Endif
End

Aggiungo, per inciso, che qualche giorno fa avevo installato la versione 3.7 di Gambas e che, proprio ora, mi sono accorto di non riuscire a utilizzare la console, volendo conoscere il codice ascii dei caratteri rappresentati come punto interrogativo su fondo nero. L'ho dovuto guardare su vb6, dove risultano 63 decimale.
Grazie.
Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: Gianluigi - 15 Aprile 2015, 10:41:32
...
Aggiungo, per inciso, che qualche giorno fa avevo installato la versione 3.7 di Gambas e che, proprio ora, mi sono accorto di non riuscire a utilizzare la console, volendo conoscere il codice ascii dei caratteri rappresentati come punto interrogativo su fondo nero. L'ho dovuto guardare su vb6, dove risultano 63 decimale.
Grazie.


Ti rispondo con una istantanea...
Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: vuott - 15 Aprile 2015, 10:55:06
...tutte le vocali accentate risultano illeggibili. Per esempio, ecco uno spezzone del testo: "che per� non � l'oggetto".
 
Suppongo che quella parte di testo sia " che però non è l'oggetto ".
Ho verificato il tuo codice, anche con altre istruzioni utili alla lettura di un file di testo, assegnando poi quel testo alla TextArea. Devo dire che non ho avuto alcun problema: la TextArea ha mostrato correttamente il carattere " ò " ed il carattere " è ".   :-\
Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: Gianluigi - 15 Aprile 2015, 11:16:08
Alla luce di quanto da vuott affermato mi sorge un dubbio, prima di installare Gambas3 3.7 stabile hai completamente cancellato dal sistema il vecchio Gambas? Questo è molto importante io non so se sono in grado di capire ma potresti postare il risultato di System informations..., lo trovi nel menu Aiuto, lo copi e poi l'incolli fra i tag code.
Però non ti prometto nulla...
 :ciao:
Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: Cocirio - 15 Aprile 2015, 17:23:32
Risposte:
1) All'istantanea di Gianluigi: Ho provato a scrivere lì, ma non ho visto il risultato di Asc("�"). Ora ci ho riprovato (dopo aver chiuso il programma in esecuzione  :D) ed è uscito 239. Grazie. Interessante la differenza con il 63 (=?) rilevato in vb6 da una copia del file in ambiente Windows.
2) Al secondo intervento di  Gianluigi: non so che vuol dire "tra i tag code". Riferisco le informazioni che credo più importanti in questo caso: Gambas 3.7.0,
Architecture x86, Theme QGtk, Language it_IT.UTF-8. Poi ci sono 11 librerie: Cairo, Curl, DBus, GStreamer (2 volte), GTK+3, GTK, OpenGl, Popper, Gt4, SDL.
Per la disinstallazione di Gambas 3.1 avevo seguito il consiglio di un sito che non mi ricordo: prima disinstallare solo il pacchetto principale e poi dare il comanto a terminale sudo apt-get autoremove.
3) A vuott: io, da qualcosa che ho letto, comincio a pensare che il problema sia dell'encoding dei caratteri. Spero che le informazioni del punto 2 possano servire a individuare il problema. Io non saprei dove mettere le mani.
Grazie a tutti.
Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: vuott - 15 Aprile 2015, 17:59:07
...comincio a pensare che il problema sia dell'encoding dei caratteri. Spero che le informazioni del punto 2 possano servire a individuare il problema.

Io credo che si debba approfondire la questione posta ed il percorso indicato da Gianluigi.
Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: Gianluigi - 15 Aprile 2015, 19:52:13
...
2) Al secondo intervento di  Gianluigi: non so che vuol dire "tra i tag code". Riferisco le informazioni che credo più importanti in questo caso: Gambas 3.7.0,
Architecture x86, Theme QGtk, Language it_IT.UTF-8. Poi ci sono 11 librerie: Cairo, Curl, DBus, GStreamer (2 volte), GTK+3, GTK, OpenGl, Popper, Gt4, SDL.
Per la disinstallazione di Gambas 3.1 avevo seguito il consiglio di un sito che non mi ricordo: prima disinstallare solo il pacchetto principale e poi dare il comanto a terminale sudo apt-get autoremove.
...
Grazie a tutti.

Ad esempio questo è il mio (ho copiato da System informations e poi cliccando sul cancelletto...):
Codice: [Seleziona]
[System]
Gambas=3.7.1
OperatingSystem=Linux
Kernel=3.13.0-49-generic
Architecture=x86_64
Distribution=Ubuntu 14.04.2 LTS
Desktop=GNOME
Theme=QGtk
Language=it_IT.UTF-8
Memory=4961M
[Libraries]
Cairo=libcairo.so.2.11301.0
Curl=libcurl.so.4.3.0
DBus=libdbus-1.so.3.7.6
GStreamer=libgstreamer-0.10.so.0.30.0
GStreamer=libgstreamer-1.0.so.0.204.0
GTK+3=libgtk-3.so.0.1000.8
GTK+=libgtk-x11-2.0.so.0.2400.23
OpenGL=libGL.so.1.2.0
Poppler=libpoppler.so.44.0.0
Qt4=libQtCore.so.4.8.6
SDL=libSDL-1.2.so.0.11.4
:ciao:
Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: Cocirio - 16 Aprile 2015, 09:24:50
Ok. Ci provo, ora che ho visto il cancelletto con tooltip "inserisci codice":
Codice: [Seleziona]
[System]
Gambas=3.7.0
OperatingSystem=Linux
Kernel=3.13.0-37-generic
Architecture=x86
Distribution=Linux Mint 17.1 Rebecca
Desktop=MATE
Theme=QGtk
Language=it_IT.UTF-8
Memory=3282M
[Libraries]
Cairo=libcairo.so.2.11301.0
Curl=libcurl.so.4.3.0
DBus=libdbus-1.so.3.7.6
GStreamer=libgstreamer-0.10.so.0.30.0
GStreamer=libgstreamer-1.0.so.0.204.0
GTK+3=libgtk-3.so.0.1000.8
GTK+=libgtk-x11-2.0.so.0.2400.23
OpenGL=libGL.so.1.2.0
Poppler=libpoppler.so.44.0.0
Qt4=libQtCore.so.4.8.6
SDL=libSDL-1.2.so.0.11.4

Ecco fatto.  :-* (bacio da una foglia di cicoria, fa lo stesso?)  :)
Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: Gianluigi - 16 Aprile 2015, 11:31:37
Non vedo nulla di irregolare per quanto ne capisco e lo puoi vedere da te confrontando con il mio.

Se scrivi questo codice la console ti dovrebbe restituire due UTF-8 prova un po.
Codice: gambas [Seleziona]
Public Sub Form_Open()
 
  Print Desktop.Charset
  Print System.Charset 

End

 :ciao:
Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: Cocirio - 16 Aprile 2015, 18:42:38
Esatto. UTF-8 sia per desktop che per system.
Che propone Vuott per approfondire?
E tu?
Io sono pronto anche a disinstallare tutto e a reinstallare, nell'ipotesi che sia rimasto qualcosa della versione precedente di Gambas. Posso anche disinstallare e reinstallare Linux-Mint ed. mate e provarne un'altra.
Ah, ora che mi ricordo, ho anche un altro difettuccio: il background del controllo button non si colora mai, con nessuno dei componenti alternativi possibili delle proprietà del progetto (gtk, gui o qt4).
A presto.
Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: vuott - 16 Aprile 2015, 19:56:06
Ah, ora che mi ricordo, ho anche un altro difettuccio: il background del controllo button non si colora mai, con nessuno dei componenti alternativi possibili delle proprietà del progetto (gtk, gui o qt4).

Per questo problema ti rinvio alla seguente discussione:

    http://www.gambas-it.org/smf/index.php?topic=1906.0

Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: Gianluigi - 16 Aprile 2015, 21:22:02
...
Io sono pronto anche a disinstallare tutto e a reinstallare, nell'ipotesi che sia rimasto qualcosa della versione precedente di Gambas. Posso anche disinstallare e reinstallare Linux-Mint ed. mate e provarne un'altra.
...
Veramente l'esperto di Mint è vuott  e io non sono esperto e basta quindi regolati :)
A essere sincero non so cosa consigliarti, certo è che se Gambas non funziona bene...
Dovresti andare su impostazioni di sistema > software e aggiornamenti e vedere che repository hai installato se inizia come questo: http://ppa.launchpad.net/gambas-team/gambas3... allora il repository è quello giusto e allora ti posso dire quello che farei io personalmente e gradirei molto che vuott desse il suo parere:
Per prima cosa disinstallerei l'attuale Gambas e siccome non funziona bene proverei a farlo con questi comandi da terminale:
~$ sudo apt-get --purge remove gambas*
~$ sudo apt-get autoremove gambas*
Non sono certo al cento per cento ma credo che questo cancelli qualunque cosa abbia a che fare con Gambas quindi ti conviene fare una copia dei programmi Gambas eventualmente installati.

Poi reinstallerei:
~$ sudo apt-get update
~$ sudo apt-get install gambas3
~$ gambas3
Nota (che già saprai): "~$" non li devi copiare stanno solo a indicare l'utente normale, la password sembra che il terminale non la pigli ma tu devi digitarla tutta e precisa.
 :ciao:
Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: vuott - 16 Aprile 2015, 23:19:32
Veramente l'esperto di Mint è vuott ...
.... gradirei molto che vuott desse il suo parere:

"esperto" è una parolona: io uso semplicemente Mint, non sono un esperto di Mint.

Riguardo alla disinstallazione ed installazione di Gambas, poi, v'è da dire che io utilizzo l'installazione e l'aggiornamento via SVN. ...non so se lui utilizza questa  modalità

Mi pare, ad ogni modo, abbastanza chiaro che il problema del nostro amico Cocirio non deriva - mi pare - da un bug di Gambas in sé, dato che quel problema è sollevato soltanto da Cocirio.   :-\
Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: Gianluigi - 17 Aprile 2015, 11:05:55
Io cercavo conforto  :) soprattutto riguardo ai comandi di disinstallazione che qui poi sono quelli più importanti, poi se uno preferisce compilare...  :-\
Comunque posso per quanto mi è possibile garantire che almeno su Ubuntu 14.04 gli eseguibili da PPA funzionano allo stesso modo di quelli compilarti.
 :ciao:
Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: Cocirio - 17 Aprile 2015, 13:45:11
Calma ragazzi, va tutto bene... salvo il mio computer che si va deteriorando riguardo all'hardware. Ma questo non c'entra.
Invece il problema dei bottoni che non si coloravano è risolto grazie al consiglio di vuott, che ho seguito pari pari. Ora ho una piccola collezione di bottoni colorati  :).
E, udite udite, anche il problema delle vocali accentate è risolto, a parte una spiegazione precisa che non ho ancora.
Stamattina ho scritto un testo qualunque con vocali accentate usando l'editor di testo di mint, l'ho sottoposto al mio progettino e ho visto tutte le vocali accentate! Poi l'ho modificato, salvato e riletto e le vocali si vedono sempre.
Che vuol dire? Che il file di testo che usavo prima lo avevo preso da una partizione NTFS di Windows, ed evidentemente questo non piace a Gambas. E non gli piace nemmeno quando lo modifico e lo rileggo! Il fenomeno credo che sia uguale a quello sperimentato l'altro ieri quando ho trasportato uno dei punti interrogativi su losanga nera nel sistema Windows XP e ne ho preso il codice ascii 63: era diventato un punto interrogativo senza fondo nero, anche se appariva come un quadratino vuoto! Certamente tutto questo deve dipendere dalla diversa gestione dei due filesystem da parte dei due sistemi operativi. Ma non so come. Grazie di tutto. A presto
 :ciao:
Titolo: Re: vocali accentate illeggibili in TextArea
Inserito da: Gianluigi - 03 Aprile 2018, 11:24:41
...Certamente tutto questo deve dipendere dalla diversa gestione dei due filesystem da parte dei due sistemi operativi. Ma non so come. Grazie di tutto. A presto

Sono incappato in questa discussione dove malgrado il [Risolto] rimaneva il mistero del perché importando del testo dal sistema Windows alcuni caratteri fossero illegibili a Gambas.
Questo accade quando i sistemi che devono dialogare con Gambas (che usa UTF-8) hanno differenti set di caratteri, in questo caso specifico windows-1252.
Pertanto sarebbe bastato convertire con la funzione di Gambas CONV il file da importare, ad esempio:
Codice: [Seleziona]
Public Sub Form_Open()

  Dim sPath As String = "/percorso/del/file/windows.txt"
  Dim sFile As String

  sFile = File.Load(sPath)
  sFile = Conv(sFile, "windows-1252", "UTF-8")
  TextArea1.Text = sFile

End