Differenze tra le versioni di "Conoscere il mime-type di un file mediante le sole risorse di Gambas"
Da Gambas-it.org - Wikipedia.
Riga 1: | Riga 1: | ||
− | Per conoscere il "''mime-type''" di un determinato file con le sole risorse native di Gambas, si potrà cercare la corrispondenza fra l'estensione di questo file con il ''mime-type'' riportata nell'ampia lista contenuta | + | Per conoscere il "''mime-type''" di un determinato file con le sole risorse native di Gambas, si potrà cercare la corrispondenza fra l'estensione di questo file con il ''mime-type'' riportata nell'ampia lista contenuta rispettivamente nei file di sistema "''/usr/share/mime/globs''" e "''/etc/mime.types''". |
Potremo adottare il seguente codice: | Potremo adottare il seguente codice: | ||
− | + | '''Public''' Sub Main() | |
+ | |||
+ | Dim percorsofile, ris As String | ||
+ | |||
+ | <FONT Color=gray>' ''Specifica il file di cui cercare il corrispondente "mime-type":''</font> | ||
+ | percorsofile = "<FONT Color=gray>''/percorso/del/file''</font>" | ||
+ | |||
+ | ris = ControllaGlobs(percorsofile) | ||
+ | If IsNull(ris) Then | ||
+ | ris = ControllaEtc(percorsofile) | ||
+ | Endif | ||
+ | |||
+ | If IsNull(ris) Then ris = "L'estensione del file non è presente nel database dei 'mime-type' !" | ||
+ | |||
+ | Print ris | ||
+ | |||
+ | '''End''' | ||
− | ''' | + | '''Private''' Function ControllaGlobs(perc As String) As String |
− | Dim | + | Dim gl, est, rit As String |
Dim ss As String[] | Dim ss As String[] | ||
Dim c As Short | Dim c As Short | ||
− | <FONT Color=gray>' '' | + | <FONT Color=gray>' ''Dapprima verifica il mime-type nel file "/usr/share/mime/globs":''</font> |
− | + | gl = File.Load("/usr/share/mime/globs") | |
− | + | est = ":*." & LCase(File.Ext(perc)) | |
− | |||
− | est = ":*." & LCase(File.Ext( | ||
<FONT Color=gray>' ''Verifica se l'estensione del file corrente sia comunque presente nel file "/usr/share/mime/globs":''</font> | <FONT Color=gray>' ''Verifica se l'estensione del file corrente sia comunque presente nel file "/usr/share/mime/globs":''</font> | ||
Riga 26: | Riga 40: | ||
If ss[c] Ends est Then | If ss[c] Ends est Then | ||
<FONT Color=gray>' ''Estrapola la prima parte della riga, ossia quella relativa al "mime-type" correlato all'estensione:''</font> | <FONT Color=gray>' ''Estrapola la prima parte della riga, ossia quella relativa al "mime-type" correlato all'estensione:''</font> | ||
− | + | rit = Scan(ss[c], "*:*")[0] | |
+ | Break | ||
+ | Endif | ||
+ | Next | ||
+ | Endif | ||
+ | |||
+ | Return rit | ||
+ | |||
+ | '''End''' | ||
+ | |||
+ | |||
+ | '''Private''' Function ControllaEtc(perc As String) As String | ||
+ | |||
+ | Dim et, est, rit As String | ||
+ | Dim ss As String[] | ||
+ | Dim c As Short | ||
+ | |||
+ | <FONT Color=gray>' ''Quindi verifica il mime-type nel file "/etc/mime.types":''</font> | ||
+ | et = File.Load("/etc/mime.types") | ||
+ | et = Replace(et, Chr(&09), Chr(&20)) | ||
+ | |||
+ | est = LCase(File.Ext(perc)) | ||
+ | |||
+ | <FONT Color=gray>' ''Verifica se l'estensione del file corrente sia comunque presente nel file "/etc/mime.types":''</font> | ||
+ | If InStr(et, est) Then | ||
+ | <FONT Color=gray>' ''Individua ogni riga componente il contenuto testuale del file "/etc/mime.types":''</font> | ||
+ | ss = Split(et, "\n") | ||
+ | For c = 0 To ss.Max | ||
+ | <FONT Color=gray>' ''Verifica quale riga del file "mime.types" possiede i caratteri della stringa, contenuta nella variabile "est", anticipati da almeno uno spazio:''</font> | ||
+ | If ss[c] Like "* " & est & "*" Then | ||
+ | <FONT Color=gray>' ''Estrapola la prima parte della riga, ossia quella relativa al "mime-type" correlato all'estensione:''</font> | ||
+ | rit = Scan(ss[c], "* *")[0] | ||
Break | Break | ||
Endif | Endif | ||
Next | Next | ||
Endif | Endif | ||
− | + | ||
− | + | Return rit | |
'''End''' | '''End''' |
Versione delle 11:50, 4 giu 2017
Per conoscere il "mime-type" di un determinato file con le sole risorse native di Gambas, si potrà cercare la corrispondenza fra l'estensione di questo file con il mime-type riportata nell'ampia lista contenuta rispettivamente nei file di sistema "/usr/share/mime/globs" e "/etc/mime.types".
Potremo adottare il seguente codice:
Public Sub Main() Dim percorsofile, ris As String ' Specifica il file di cui cercare il corrispondente "mime-type": percorsofile = "/percorso/del/file" ris = ControllaGlobs(percorsofile) If IsNull(ris) Then ris = ControllaEtc(percorsofile) Endif If IsNull(ris) Then ris = "L'estensione del file non è presente nel database dei 'mime-type' !" Print ris End Private Function ControllaGlobs(perc As String) As String Dim gl, est, rit As String Dim ss As String[] Dim c As Short ' Dapprima verifica il mime-type nel file "/usr/share/mime/globs": gl = File.Load("/usr/share/mime/globs") est = ":*." & LCase(File.Ext(perc)) ' Verifica se l'estensione del file corrente sia comunque presente nel file "/usr/share/mime/globs": If InStr(gl, est) Then ' Individua ogni riga componente il contenuto testuale del file "/usr/share/mime/globs": ss = Split(gl, "\n") For c = 0 To ss.Max ' Verifica quale riga del file "globs" termina con i caratteri della stringa contenuta nella variabile "est": If ss[c] Ends est Then ' Estrapola la prima parte della riga, ossia quella relativa al "mime-type" correlato all'estensione: rit = Scan(ss[c], "*:*")[0] Break Endif Next Endif Return rit End Private Function ControllaEtc(perc As String) As String Dim et, est, rit As String Dim ss As String[] Dim c As Short ' Quindi verifica il mime-type nel file "/etc/mime.types": et = File.Load("/etc/mime.types") et = Replace(et, Chr(&09), Chr(&20)) est = LCase(File.Ext(perc)) ' Verifica se l'estensione del file corrente sia comunque presente nel file "/etc/mime.types": If InStr(et, est) Then ' Individua ogni riga componente il contenuto testuale del file "/etc/mime.types": ss = Split(et, "\n") For c = 0 To ss.Max ' Verifica quale riga del file "mime.types" possiede i caratteri della stringa, contenuta nella variabile "est", anticipati da almeno uno spazio: If ss[c] Like "* " & est & "*" Then ' Estrapola la prima parte della riga, ossia quella relativa al "mime-type" correlato all'estensione: rit = Scan(ss[c], "* *")[0] Break Endif Next Endif Return rit End