Differenze tra le versioni di "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.
 
Riga 1: Riga 1:
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">senza l'uso</span> delle specifiche risorse di Gambas del ''Drag&Drop''.
+
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">senza l'uso</span> delle specifiche risorse di Gambas del ''Drag&Drop''. <SUP>&#091;[[#Note|nota 1]]&#093;</sup>
  
Mostriamo di seguito un esempio pratico <SUP>&#091;[[#Note|nota 1]]&#093;</sup>, che offre la possibilità appunto di mostrare il contenuto di un file <SUP>&#091;[[#Note|nota 2]]&#093;</sup> all'interno di una ''TextArea'', trascinandovi e rilasciandovi il file predetto. Se il ''charset'' dei file html non è UTF-8, esso viene convertito.
+
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
 +
 +
<FONT Color=gray>' ''Impedisce che dopo il rilascio del file sulla "TextArea", venga ulteriormente sollevato l'Evento "_Change()":''</font>
 +
  Object.Lock(TextArea1)
 +
 +
  c = RInStr(TextArea1.Text, "file:///")
 +
 +
  s = Right(TextArea1.Text, Len(TextArea1.Text) - c - 6)
 +
 +
  TextArea1.Text = File.Load(Trim(FromUrl(s)))
 +
 +
<FONT Color=gray>' ''Ripristina la capacità della "TextArea" di sollevare qualsiasi Evento:''</font>
 +
  Object.Unlock(TextArea1)
 +
 +
End
 +
Nel seguente codice, più elaborato, se il ''charset'' dei file html non è UTF-8, esso viene convertito. <SUP>&#091;[[#Note|nota 2]]&#093;</sup>
 
  Public Sub TextArea1_Change()
 
  Public Sub TextArea1_Change()
 
   
 
   
Riga 52: Riga 71:
  
 
=Note=
 
=Note=
[1] Il codice è stato scritto dal membro [http://www.gambas-it.org/smf/index.php?action=profile;u=1249 Gianluigi] del forum www.gambas-it.org .
+
[1] In effetti è possibile mostrare con rappresentazione testuale dei caratteri ASCII il contenuto di qualsiasi tipo di file.
  
[2] In effetti è possibile mostrare con rappresentazione testuale dei caratteri ASCII il contenuto di qualsiasi tipo di file.
+
[2] Il codice è stato scritto dal membro [http://www.gambas-it.org/smf/index.php?action=profile;u=1249 Gianluigi] del forum www.gambas-it.org .

Versione attuale delle 09:20, 5 ago 2023

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 .