probleme pour retirer le chemin d'un fichier - VB/VBA/VBS - Programmation
Marsh Posté le 21-12-2002 à 17:27:19
En QB, je fais
texte$ = "c:\windows\test.wav"
iPosS% = 0
DO
' positon du dernier antislash rencontré
iPosAv% = iPosS%
' recherche du prochain antislash
iPosS% = INSTR(iPosS% + 1, texte$, "\" )
' y en a plus, on quitte
IF (iPosS% = 0) THEN EXIT DO
LOOP
' où est le point d'extension si y a ?
iPosP% = INSTR(iPosAv% + 1, texte$, "." )
' si pas de point, valeur artificielle
if (iPosP% = 0) then iPosP% = LEN(texte$) + 1
Chaine$ = MID$(texte$, iPosAv% + 1, iPosP% - iPosAv% - 1)
' puis pour vérifier l'algo
PRINT Chaine$
On peut aussi utiliser certaines API Windows qui extraient le chemin, le nom, .. (je n'ai pas leurs noms sous la main, ni en tête)
Marsh Posté le 21-12-2002 à 17:31:57
Spiritu4L a écrit : bonjour , excusez moi de vou déranger pour une question aussi idiote mais est ce que vous auriez le code pour retirer le chemin d'un fichier d'une listbox ? |
Sub test()
temp = "c:\windows\toto\test.xls"
c = 0
For i = 1 To Len(temp)
tt = Right(temp, i)
If Left(tt, 1) = "\" Then
cc = i
GoTo sortie
End If
Next
sortie:
cc = cc - 1
resultat = Mid(temp, Len(temp) - cc + 1, cc - 4)
'
MsgBox (resultat)
End Sub
Marsh Posté le 21-12-2002 à 17:37:31
Oui je suis dacord ca marche , mais moi je voudrais utiliser un code InStr(Left) vous comprennez ? que ca marche pour tout en fait
Marsh Posté le 21-12-2002 à 17:57:16
Spiritu4L a écrit : Oui je suis dacord ca marche , mais moi je voudrais utiliser un code InStr(Left) vous comprennez ? que ca marche pour tout en fait |
comprend pas
ça marche pour tout ,tu veux dire avoir un parametre ds ta procedure ?
Marsh Posté le 21-12-2002 à 18:01:06
bah non , en fait je veu just que quand on selectionne un fichier dans la list , on voit le labeltitre.caption avec comme caption le titre du wav c tout
Marsh Posté le 21-12-2002 à 18:10:10
Une copie d'écran avec info sur quoi doit être où.
Ze comprends pas trop (fatigue trop grande ?).
Sub NomIsole$(texte$)
iPosS% = 0
DO
' positon du dernier antislash rencontré
iPosAv% = iPosS%
' recherche du prochain antislash
iPosS% = INSTR(iPosS% + 1, texte$, "\" )
' y en a plus, on quitte
IF (iPosS% = 0) THEN EXIT DO
LOOP
' où est le point d'extension si y a ?
iPosP% = INSTR(iPosAv% + 1, texte$, "." )
' si pas de point, valeur artificielle
if (iPosP% = 0) then iPosP% = LEN(texte$) + 1
NomIsole$ = MID$(texte$, iPosAv% + 1, iPosP% - iPosAv% - 1)
END SUB
Si on cherche le nom correspondant à la ligne sélectionnée, on récupère le tout, le passe comme paramètre à la fonction NomIsole$ et on a alors le nom tout seul. Suffit de l'afficher où on veut comme caption.
Le labeltitrecaption, c'est la barre de titre de la feuille ???
Une copie d'écran, une copie d'écran !!! Vaut mieux un dessin que de longs discours.
NB : si le prog n'est pas écrit par soi-même, tintin pour modifier sa façon de se comporter !!
Marsh Posté le 21-12-2002 à 16:45:03
bonjour , excusez moi de vou déranger pour une question aussi idiote mais est ce que vous auriez le code pour retirer le chemin d'un fichier d'une listbox ?
Voyez j'ai un ptit programe de recherche celui ci recherche les .wav et les ajoute dans un listbox Mais le probleme est que dans le listbox on voit tout le chemin du fichier + son type : C:\Windows\test.wav
j'aimerais que sur un label soit ecris just le nom du fichier , ex : "test" lorsqu'on selectione un fichier dans la list c possible ?
---------------
º°) SkabsnowsurF Board Free Style (°º