Pbl Format Date VBs/wsh Attributes

Pbl Format Date VBs/wsh Attributes - VB/VBA/VBS - Programmation

Marsh Posté le 25-10-2007 à 09:54:11    

Bonjour a tous :)  
 
Je ne connais pas le VBs, je commence a mettre le bout du nez dedans . Merci de me guider.
 
Mon probleme :??:  
 
InputBox("Nom :",chemin, Year(Date()) & "" & Day(Date()) & "" & Month(Date()) & "_" & Hour(Time()) & "" & Minute(Time()) )
Cela donne par exemple  2007910_99    pour le 10/09/2007 a 09h09
 
Comment argumenter pour que cela done  070910_0909
Merci d'avance :hello:


Message édité par rehties le 27-10-2007 à 09:50:18
Reply

Marsh Posté le 25-10-2007 à 09:54:11   

Reply

Marsh Posté le 25-10-2007 à 10:06:32    

Il te faut utiliser la fonction Format$() qui permet de garder les zéros non significatifs entre autres.
Par exemple : Format$(Hour(Time()), "00" ), renverra 09 dans ton cas.
Et Format$(Year(Date()); "yy" ), renverra 07


Message édité par tegu le 25-10-2007 à 10:09:38
Reply

Marsh Posté le 25-10-2007 à 10:22:46    

InputBox("Nom :",chemin, Format$(Year(Date()); "yy" ) & "" & Day(Date()) & "" & Month(Date()) & "_" & Hour(Time()) & "" & Minute(Time()) )
et
InputBox("Nom:",chemin, Format$(Year(Date()) & "" & Day(Date()) & "" & Month(Date()) & "_" & Hour(Time()) & "" & Minute(Time()) ); "yyddmm" )
 
cela fonctionne pas

Reply

Marsh Posté le 25-10-2007 à 10:49:35    


Dans   http://fr.wikibooks.org/wiki/Programmation_VBscript   :)  
 
On peut voir dans Format de date :
vbLongDate  1  Date complète  :??:  
 
Cet argument correspond t-il à ce que je cherche ? Comment l'utilise t on ?

Reply

Marsh Posté le 25-10-2007 à 11:36:19    

InputBox("Nom :",chemin, Format$(Year(Date()), "yy" ) & "" & Day(Date()) & "" & Month(Date()) & "_" & Hour(Time()) & "" & Minute(Time()) )

fonctionne.
Mais toi tu as mis un point-virgule dans ta formule avec le "yy" et ça plante effectivement.
Et cette formule ne formate pas les heures et les minutes.

Reply

Marsh Posté le 25-10-2007 à 13:47:55    

Merci Tegu
 
J'ai trouvé une reponse
http://www.vbfrance.com/infomsg_VB [...] 98825.aspx
 
Function Pad2(Str)
   If Len(Str) = 1 Then
       Pad2 = "0" & Str
   Else
       Pad2 = Str
   End If
End Function
 
Function FormatTri(vsDate)
 FormatTri = Pad2(Right(Year(vsDate), 2)) & _
             Pad2(Month(vsDate)) & _
             Pad2(Day(vsDate)) & _
                 "_" & _
             Pad2(Hour(vsDate)) & _
             Pad2(Minute(vsDate)) & _
             Pad2(Second(vsDate))
End Function
 
FormatTri(Now)

Reply

Marsh Posté le 25-10-2007 à 14:12:36    

Sérieusement, j'espère que tu vas utiliser Format$() au lieu de ce... truc que tu nous montres, qui réinvente la roue, en moins bien.
Renseigne-toi aussi sur les fonctions Space$() et String$() (pas le type de données, la fonction).

Reply

Marsh Posté le 25-10-2007 à 15:18:55    

Oki je prend note de ton conseil, je vais continuer a chercher car meme avec la virgule cela fonctionne pas..
 
Maintenant de decouvre tout juste ... :love:  le VBS comme le batch c'est juste pour comblé les manques de MS et des logiciels que j utilise (repeter toujours la meme manip... :non: )
 
Copier et dater du clic droit / menu contextuel MsXp

Code :
  1. Set args  = Wscript.Arguments
  2. Set fso   = WScript.CreateObject("Scripting.FileSystemObject" )
  3. nom=InputBox("Nom du sous-répertoire à créer :",chemin, ("Nom :",chemin, Format$(Year(Date()), "yy" ) & "" & Day(Date()) & "" & Month(Date()) & "_" & Hour(Time()) & "" & Minute(Time()) ) 
  4. chemin=args(0)
  5. If not fso.FolderExists(chemin)  Then
  6. If fso.FileExists(chemin) Then
  7.  chemin=fso.GetParentFolderName(chemin)
  8. else wscript.quit
  9.     End If
  10. End If
  11. newdoss=fso.BuildPath(chemin,nom)
  12. fso.CreateFolder(newdoss)
  13. WScript.quit


 
 

Reply

Marsh Posté le 25-10-2007 à 16:37:40    

Mea culpa.
Il semblerait que la fonction Format$() ne soit pas dispo telle quelle en VBS, contrairement à VB6 et VBA (ce qui est une ânerie sans nom de plus à mettre à l'actif de MS).
Et les fonctions FormatCurrency(), FormatDateTime(), FormatNumber(), DatePart(), etc., ne me semblent pas plus adaptées.
Space() et String() (sans le $) existent cependant, mais ça revient au... truc que tu as posté avant :)

 


Message édité par tegu le 25-10-2007 à 16:37:59
Reply

Marsh Posté le 26-10-2007 à 12:34:35    

:pt1cable:  un autre probleme pour declarer les attributs du fichier  Destop.ini  
 
 :fou:  code 800A01B6
          ne gere pas cette propriete ou cette methode: textnewfichier.Attributes
 
Mais cela fonctionne pour les attributs du repertoire ?? :pt1cable:  
 

Code :
  1. Function Pad2(Str)
  2.    If Len(Str) = 1 Then
  3.        Pad2 = "0" & Str
  4.    Else
  5.        Pad2 = Str
  6.    End If
  7. End Function
  8. Function FormatTri(vsDate)
  9. FormatTri = Pad2(Right(Year(vsDate), 2)) & _
  10.              Pad2(Month(vsDate)) & _
  11.              Pad2(Day(vsDate)) & _
  12.                  "_" & _
  13.              Pad2(Hour(vsDate)) & _
  14.              Pad2(Minute(vsDate))       
  15. End Function
  16. Set args  = Wscript.Arguments
  17. Set fso   = WScript.CreateObject("Scripting.FileSystemObject" )
  18. nomfichier=("Desktop.ini" )
  19. nomrep=InputBox("Nom du sous-répertoire à créer :",chemin, FormatTri(Now))
  20. chemin=args(0)
  21. If not fso.FolderExists(chemin)  Then
  22. If fso.FileExists(chemin) Then
  23.  chemin=fso.GetParentFolderName(chemin)
  24. else wscript.quit
  25.     End If
  26. End If
  27. newdoss=fso.BuildPath(chemin,nomrep)
  28. set attrdoss=fso.CreateFolder(newdoss)
  29. newfichier=fso.BuildPath(newdoss,nomfichier)
  30. set textnewfichier=fso.CreateTextFile(newfichier)
  31. textnewfichier.WriteLine ("[.ShellClassInfo]" )
  32. textnewfichier.WriteLine ("IconFile=%SystemRoot%\Resources\Icones\glass\GlassIso.ico" )
  33. textnewfichier.WriteLine ("IconIndex=0" )
  34. attrdoss.Attributes=4
  35. textnewfichier.Attributes=0
  36. WScript.quit


Reply

Marsh Posté le 26-10-2007 à 12:34:35   

Reply

Marsh Posté le 27-10-2007 à 09:31:54    

:hello:  voila reglé :
 

Code :
  1. Function Pad2(Str)
  2.    If Len(Str) = 1 Then
  3.        Pad2 = "0" & Str
  4.    Else
  5.        Pad2 = Str
  6.    End If
  7. End Function
  8. Function FormatTri(vsDate)
  9. FormatTri = Pad2(Right(Year(vsDate), 2)) & _
  10.              Pad2(Month(vsDate)) & _
  11.              Pad2(Day(vsDate)) & _
  12.                  "_" & _
  13.              Pad2(Hour(vsDate)) & _
  14.              Pad2(Minute(vsDate))       
  15. End Function
  16. Set args  = Wscript.Arguments
  17. Set fso   = WScript.CreateObject("Scripting.FileSystemObject" )
  18. nomfichier=("Desktop.ini" )
  19. nomrep=InputBox("Nom du sous-répertoire à créer :",chemin, FormatTri(Now))
  20. chemin=args(0)
  21. If not fso.FolderExists(chemin)  Then
  22. If fso.FileExists(chemin) Then
  23.  chemin=fso.GetParentFolderName(chemin)
  24. else wscript.quit
  25.     End If
  26. End If
  27. set folder=fso.CreateFolder(fso.BuildPath(chemin,nomrep))
  28. folder.Attributes=4
  29. set file=fso.CreateTextFile(fso.BuildPath(folder,nomfichier))
  30. file.WriteLine ("[.ShellClassInfo]" )
  31. file.WriteLine ("IconFile=%SystemRoot%\Resources\Icones\glass\GlassIso.ico" )
  32. file.WriteLine ("IconIndex=0" )
  33. If fSo.fileExists(folder & "\desktop.ini" ) then
  34. Set file = fSo.GetFile(folder & "\desktop.ini" )
  35. file.attributes = 2
  36. End if
  37. WScript.quit


 
Voila mais je ne comprend pas pourquoi je suis obligé de passer par (folder & "\desktop.ini" )   :pt1cable:
Comment peut on mettre une "variable(nomfichier)" :hello:  a la place de  & "\desktop.ini"  ...je ne trouve pas.
 
merci


Message édité par rehties le 27-10-2007 à 09:46:53
Reply

Sujets relatifs:

Leave a Replay

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