Salve a tutti
c'è un modo per recuperare il formato di un file oltre a fare
In quanto formati più lunghi di tre caratteri, tipo jpeg, verrebbero troncati?codice:Right(nomeFile, 4)
Grazie a tutti
Salve a tutti
c'è un modo per recuperare il formato di un file oltre a fare
In quanto formati più lunghi di tre caratteri, tipo jpeg, verrebbero troncati?codice:Right(nomeFile, 4)
Grazie a tutti
Personalmente proverei usando StrReverse per poi cercherei il '.' con InStr
Un'idea potrebbe essere questa :
codice:Private Sub Command1_Click() Call fileext(Text1.Text) End Sub Function fileext(nomefile As String) As String Dim ext As String Dim pos As String len_string = Len(nomefile) pos = InStr(1, nomefile, ".") ext = Mid(nomefile, pos, len_string) MsgBox ext End Function
E' corretta, ma come ha fatto notare Sspintux è meglio effettuare la ricerca del punto partendo da destra. Questo perchè se un file ha 2 o + estensioni, quella che conta è l'ultima (l'icona viene rappresentata in base alla prima estensione, ma il programma viene associato in base all'ultima).Originariamente inviato da yyzyyz
Un'idea potrebbe essere questa :
codice:Private Sub Command1_Click() Call fileext(Text1.Text) End Sub Function fileext(nomefile As String) As String Dim ext As String Dim pos As String len_string = Len(nomefile) pos = InStr(1, nomefile, ".") ext = Mid(nomefile, pos, len_string) MsgBox ext End Function
Quindi al posto di InStr conviene utilizzare InStrRev
Grazie mille a tutti
dopo il suggerimento di sspintux ho fatto così e mi va benissimo
solo una perplessità... è scorretto o potrebbe portare a qualche errore andare a riscrivere sulla stessa variabile lungFormato una volta fatto il reverse?codice:Dim lungFormato As String lungFormato = StrReverse(nomeFile) lungFormato = InStr(1, lungFormato, ".") Dim formato as String formato = Right(nomeFile, lungFormato)
considerando che l'estensione sono tutti i caratteri successivi all'ultimo punto
con un *.torrent non ci facevate una bella figuracodice:Extension = UCase$(Mid$(percorsofile, InStrRev(percorsofile, ".") + 1))
Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te
il metodo che usa InStrRev (di cui non mi ricordavo) mi piace di piùOriginariamente inviato da zorro77
Grazie mille a tutti
dopo il suggerimento di sspintux ho fatto così e mi va benissimo
solo una perplessità... è scorretto o potrebbe portare a qualche errore andare a riscrivere sulla stessa variabile lungFormato una volta fatto il reverse?codice:Dim lungFormato As String lungFormato = StrReverse(nomeFile) lungFormato = InStr(1, lungFormato, ".") Dim formato as String formato = Right(nomeFile, lungFormato)
X luciano79 : Non ci avevo pensato, cmq ke ne dici se faccio cosi:
ps. so gia' ke le altre routine sono sicuramente meglio.codice:Function fileext(nomefile As String) As String Dim ext As String Dim len_rev As String len_rev = StrReverse(nomefile) ext = Mid(len_rev, 1, (InStr(1, len_rev, ".") - 1)) ext = StrReverse(ext) MsgBox ext End Function
pss. differenza tra InStr e InStrRev ?
instr va dal primo carattere all'ultimoOriginariamente inviato da yyzyyz
pss. differenza tra InStr e InStrRev ?
instrrev fa il contrario
Vascello fantasma dei mentecatti nonchè baronetto della scara corona alcolica, piccolo spuccello di pezza dislessico e ubriaco- Colui che ha modificato l'orribile scritta - Gran Evacuatore Mentecatto - Tristo Mietitore Mentecatto chi usa uTonter danneggia anche te
grazie xegallo, adesso è l'ora di punirmi x questa domanda ...