Mostrare in un Oggetto di testo il contenuto di un file trascinandolo e rilasciandolo senza l'uso delle specifiche risorse di Gambas del Drag&Drop
Da Gambas-it.org - Wikipedia.
Versione del 20 nov 2024 alle 15:13 di Vuott (Discussione | contributi) (Creata pagina con "E' possibile far mostrare il contenuto di un file all'interno di un Oggetto di testo, trascinandovi e rilasciandovi il file medesimo, <SPAN Style="text-decoration:underline">s...")
E' possibile far mostrare il contenuto di un file all'interno di un Oggetto di testo, trascinandovi e rilasciandovi il file medesimo, senza l'uso delle specifiche risorse di Gambas del Drag&Drop. [nota 1]
Mostriamo di seguito un esempio pratico generico, che offre la possibilità appunto di mostrare il contenuto di un file all'interno di una TextArea, trascinandovi e rilasciandovi il file predetto.
Public Sub TextArea1_Change() Dim c As Short Dim s As String ' Impedisce che dopo il rilascio del file sulla "TextArea", venga ulteriormente sollevato l'Evento "_Change()": Object.Lock(TextArea1) c = RInStr(TextArea1.Text, "file:///") s = Right(TextArea1.Text, Len(TextArea1.Text) - c - 6) TextArea1.Text = File.Load(Trim(FromUrl(s))) ' Ripristina la capacità della "TextArea" di sollevare qualsiasi Evento: Object.Unlock(TextArea1) End
Nel seguente codice, più elaborato, se il charset dei file html non è UTF-8, esso viene convertito. [nota 2]
Public Sub TextArea1_Change() Dim s, s2, s3, sChar As String Dim i As Integer s = Trim(TextArea1.Text) Object.Lock(TextArea1) i = RInStr(s, "file:/") If i > 0 Then s2 = FromUrl(Trim(Mid(s, i + 7))) Print s2 Try s3 = File.Load(s2) If Right(s, 4) = "html" Then sChar = Charset(s3) If sChar <> "UTF-8" Then Try s3 = Conv$(s3, sChar, "UTF-8") Endif If Error Then s3 = "#ERRORE N° " & Error.Code & " - " & Error.Text TextArea1.Text = s3 Endif Finally Object.Unlock(TextArea1) End Private Function Charset(value As String) As String Dim ss As String[] Dim s, r As String Dim i, il As Integer ss = Split(value, "\n") For Each s In ss If s Like "*charset=*" Then il = RInStr(s, "charset=") For i = (il + 8) To Len(s) If Mid(s, i, 1) = "\"" Then r = Mid(s, (il + 8), i - (il + 8)) Return r Endif Next Endif Next End
Note
[1] In effetti è possibile mostrare con rappresentazione testuale dei caratteri ASCII il contenuto di qualsiasi tipo di file.
[2] Il codice è stato scritto dal membro Gianluigi del forum www.gambas-it.org .