Extraire l'extension d'un fichier dans une chaine

cs_rober Messages postés 86 Date d'inscription vendredi 29 novembre 2002 Statut Membre Dernière intervention 21 septembre 2010 - 20 déc. 2003 à 22:04
JoePatent Messages postés 171 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 20 juillet 2008 - 21 déc. 2003 à 21:54
Rober
Bonjour,
voila j'ai une chaine:"c:\tata\tot\titi\montruc.drw.56"
je voudrais savoir si l'estension du fichier est bien ".drw"
comment puis verifier cela?
Merci de votre aide et soyez indulgents je debute alors commentez vos explications

10 réponses

cs_guifr Messages postés 105 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 19 mai 2005
20 déc. 2003 à 23:18
Ton truc est louche, car ci ton fichier se nomme machin.drw.56 son extention est ".56"
est-ce qu'il y a toujours un chiffre après le ".drw" ? si oui peut être une technique...
0
JoePatent Messages postés 171 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 20 juillet 2008
20 déc. 2003 à 23:47
http://www.joepatent.comJoe Patent

L'extension d'un fichier avec windows est toujours composées des caractères qui suivent le dernier point du nom du fichier. Si le fichier le comporte aucun point dans son nom, alors il est sans extension.

Donc l'exemple donné si haut donne l'extension "56" qui n'est pas egal a drw.

Peut-on avoir plus d'information afin de vous aider ?
0
cs_rober Messages postés 86 Date d'inscription vendredi 29 novembre 2002 Statut Membre Dernière intervention 21 septembre 2010
21 déc. 2003 à 00:11
Rober
ce n'est pas louche du tout
ce type d'extension est utilise dans un logiciel de CAO pour permettre de remonter dans les differentes sauvegardes
un fichier tata.drw.1 est sauvegarde il devient tata.drw.2 puis tata.drw.3 .......
ce qui defini le type de fichier est bien l'extention .drw
0
JoePatent Messages postés 171 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 20 juillet 2008
21 déc. 2003 à 06:40
Voici un exemple de fonction, il existe surement plus simple et plus fiable.

si votre fichier porte le nom ".drw.allo.com" l'extension sera vu comme etant DRW.

A vous de completer le code selon votre niveau de validation.

Function estDSW(nomFic As String) As Long
Dim pos As Long ' Conserve la position de l'extension dans la chaine
Dim sortir As Boolean 'pour sortir de la boucle
Dim ext As String ' Extension a rechercher

ext = ".drw"
pos = 0

If Len(nomFic) > 5 Then ' "x.DSW" donc au moins 5 caracteres avant de traiter la chaine
Do
sortir = True ' par defaut
pos = InStr(pos + 1, nomFic, ext, 1) ' On cherche [ext] dans la chaine
If pos > 0 Then ' Si aucun ".DSW" n'est trouve
' On sait que le fichier doit avoir au moins 5 caracteres
If Len(nomFic) > (pos + 3) Then ' Si [ext] est pas a la fin de la chaine
If Mid(nomFic, pos + 4, 1) <> "." Then 'Si le point ne suit pas [ext]
sortir = False ' Ce n'est pas l'extension, on continue de chercher
End If
End If '
End If
Loop While Not sortir
End If 'Longueur minimal du nom de fichier

estDSW = pos ' On retourne la position de l'extension dans le nom de fichier. 0=pas trouvé

End Function

Tant mieux si ca peut vous aider.
http://www.joepatent.comJoe Patent
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Arsena Messages postés 190 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 27 septembre 2005
21 déc. 2003 à 10:11
si j'ai bien compris
tu peut essayer ça aussi

Option Explicit

Private Sub Form_Load()
Dim Chaine As String, ChaineAExtraire As String, i As Integer
Chaine = "c:\tata\tot\titi\montruc.drw.56"
ChaineAExtraire = ".drw"
If InStr(1, Chaine, ChaineAExtraire) <> 0 Then
MsgBox "l'extension du fichier est : [ " & ChaineAExtraire & " ]"
Else
MsgBox "l'extension [ " & ChaineAExtraire & " ] " & _
"ne figure pas dans la chaine [ " & Chaine & " ]"
End If
End
End Sub


Bonne Prog et A+
MD
0
cs_guifr Messages postés 105 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 19 mai 2005
21 déc. 2003 à 12:32
Arsena :

heu je pense pas que ce soit tjs très correct ça, si ton fichier est sauvegardé dans "c:\mes fichiers drw" si ton fihier se nomme "liste.txt", et ce n'est donc pas un drw, il sera quand même considéré comme étant un drw....
0
cs_guifr Messages postés 105 Date d'inscription jeudi 13 février 2003 Statut Membre Dernière intervention 19 mai 2005
21 déc. 2003 à 12:39
juste une petite précision, vis à vis de mon message, dans le cas que g cité, le code donné par Arsena marchera, il devrait y avoir pb lorsque le dossier se nomme "mes fichiers .drw", une bonne solution serait de ne faire la recherche de ".drw" dans le nom du fichier uniquement, en le séparant du reste de la chaîne, certe ça ne résoudra pas tous les problèmes, mais d'ici à ce qu'un fichier se nomme "PasUn.drw.txt", ça laisse une marge de maneuvre...
0
Arsena Messages postés 190 Date d'inscription lundi 24 mars 2003 Statut Membre Dernière intervention 27 septembre 2005
21 déc. 2003 à 14:16
En effet guifr la recherche par la fin de la chaine(nom du fichier) serait plus fiable

'recherche du debut du nom de fichier
INST = InStrRev(Chaine, "")
'recherche a partir de INST (debut du nom
If InStr(INST, Chaine, ChaineAExtraire) <> 0 Then...

MD
0
cs_rober Messages postés 86 Date d'inscription vendredi 29 novembre 2002 Statut Membre Dernière intervention 21 septembre 2010
21 déc. 2003 à 16:20
Rober
je vous remercie tous votre aide a ete precieuse et le pd a ete resolu
Merci
0
JoePatent Messages postés 171 Date d'inscription jeudi 30 janvier 2003 Statut Membre Dernière intervention 20 juillet 2008
21 déc. 2003 à 21:54
Il y a toujours des raisons pour lesquelles on complique un code.

La solution proposé ne doit pas confondre ".DRW" et ".DRWx". "x" pouvant être remplacé par n'importe quelle chaine de caractères... C'etait la raison de ma boucle... Je poursuivais la recherche dans la chaine...

Bien content que le probleme soit maintenant résolu.

http://www.joepatent.com
0
Rejoignez-nous