Inversser les slashes dans un chemin de fichier

Inversser les slashes dans un chemin de fichier - VB/VBA/VBS - Programmation

Marsh Posté le 13-01-2008 à 09:59:35    

Bonjour, j'avai fait un script batch qui inversser les slashs dans un chemin de fichier contenu dans un variable:
 

Code :
  1. set VarChemCop=C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier
  2. set VarChemCop=%%VarChemCop:\=/%%
  3. echo %VarChemCop%


Je voudrai exactement la même chose en VBS, pourie vous me donner un exemple ?

Reply

Marsh Posté le 13-01-2008 à 09:59:35   

Reply

Marsh Posté le 13-01-2008 à 14:53:24    

Une petite boucle :

' ==================================================
' Remplace les anti-slashs par des slashs
' ou inversement
' ==================================================
 
VarChemCop = "C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier"
 
wscript.echo "VarChemCop=" & VarChemCop & "."
 
NewVarChemCop = ""
For i = 1 To Len(VarChemCop)
  c = Mid(VarChemCop, i, 1)
  If (c = "/" ) Then
     c = "\"
  Else
    If (c = "\" ) Then
       c = "/"
    End If
  End If
  NewVarChemCop = NewVarChemCop & c
Next
wscript.echo "NewVarChemCop=" & NewVarChemCop & "."

(Programme testé qui marche)

Reply

Marsh Posté le 13-01-2008 à 15:03:12    

Bonjour et merci beaucoup ;)
 
Mais je voudrai juste inverser le shlass, pas inverssement, c'est pour ajouter dans un long script et il me faudrai quelque chose de simple

Reply

Marsh Posté le 13-01-2008 à 15:07:29    

Les boucles sont simples, mais elles font toujours peur à certains programmeurs. Je ne sais pas pourquoi.
Bon voici une solution avec quelques lignes en moins :

VarChemCop = "C:\Documents and Settings\Kookatix\Bureau\Nouveau dossier"  
NewVarChemCop = ""  
For i = 1 To Len(VarChemCop)  
  c = Mid(VarChemCop, i, 1)  
  If (c = "\" ) Then c = "/"  
  NewVarChemCop = NewVarChemCop & c  
Next  
VarChemCop = NewVarChemCop


Reply

Marsh Posté le 13-01-2008 à 15:09:54    

Replace me semble plus appriorié, je sais qu'elle existe en VB/VBA et a priori aussi en VBS. A essayer donc :

Code :
  1. str_dest = Replace(str_orig,"\","/" );

Reply

Marsh Posté le 13-01-2008 à 15:14:01    

Merci beaucoup ;)

Reply

Marsh Posté le 13-01-2008 à 15:15:24    

J'ai donc modifier un peut le script, au lieu de prendre le chemin du fichier dans une variable, je récupére le chemin du fichier glisser deposer sur le vbs, et j'ai rajouter un code pour copier le chemin dans le press papier, mais rien dans le presse papier, pourait tu m'aider a résoudre ce probléme ?
 

Code :
  1. Set objArgs = WScript.Arguments
  2.      For I = 0 to objArgs.Count - 1
  3.         vrRcpChmFchOuDoss = objArgs(I)
  4. Next
  5. NewVarChemCop = "" 
  6. For i = 1 To Len(vrRcpChmFchOuDoss) 
  7.   c = Mid(vrRcpChmFchOuDoss, i, 1) 
  8.   If (c = "\" ) Then c = "/" 
  9.   NewVarChemCop = NewVarChemCop & c 
  10. Next 
  11. VarChemCop = NewVarChemCop
  12. wscript.echo NewVarChemCop
  13. Class cClipBoard
  14.     Private objIE
  15.     Public Property Get Data()
  16.         Data = objIE.Document.ParentWindow.ClipboardData.GetData("Text" )
  17.     End Property
  18.     Public Property Let Data ( Value )
  19.         objIE.Document.ParentWindow.ClipboardData.SetData "Text" , Value
  20.     End Property
  21.     Public Sub Clear()
  22.         objIE.Document.ParentWindow.ClipboardData.ClearData()
  23.     End Sub
  24.     Private Sub Class_Initialize
  25.         Set objIE = CreateObject("InternetExplorer.Application" )
  26.         objIE.Navigate ("about:blank" )
  27.     End Sub 
  28.     Private Sub Class_Terminate
  29.         objIE.Quit
  30.         Set objIE = Nothing
  31.     End Sub
  32. End Class
  33. Dim ClipBoard
  34. Set Clipboard = New cClipBoard
  35. ClipBoard.Clear
  36. ClipBoard.Data = NewVarChemCop



Message édité par Coolnut le 13-01-2008 à 17:14:41
Reply

Marsh Posté le 13-01-2008 à 15:16:46    

dreameddeath a écrit :

Replace me semble plus appriorié, je sais qu'elle existe en VB/VBA et a priori aussi en VBS. A essayer donc :

Code :
  1. str_dest = Replace(str_orig,"\","/" );



 
Mais le code n'est pas complet la, je ne sais pas comment faire ?

Reply

Marsh Posté le 14-01-2008 à 23:14:34    

Code :
  1. NewVarChemCop = replace(vrRcpChmFchOuDoss,"\","/" )

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed