Decoupage de chaîne[Resolu]

Decoupage de chaîne[Resolu] - Shell/Batch - Programmation

Marsh Posté le 06-07-2004 à 14:32:35    

Il faut que je convertisse une adresse mac qui m'est livrée sans les ":" qui doivent normalement séparer chaque groupe de 2 hexas, pour obtenir cette même adresse avec les ":".
 
ex : 0050FC701D7C >>>> 00:50:FC:70:1D:7C
 
Une idée simple ?


Message édité par vsmetal le 08-07-2004 à 13:35:29
Reply

Marsh Posté le 06-07-2004 à 14:32:35   

Reply

Marsh Posté le 06-07-2004 à 14:53:09    

%var~1,2
 
ou un truc du style. permet de récupérer 2 caractères depuis l'indice 1


Message édité par jagstang le 06-07-2004 à 14:53:23

---------------
What if I were smiling and running into your arms? Would you see then what I see now?  
Reply

Marsh Posté le 06-07-2004 à 16:27:03    

Code :
  1. #!/usr/bin/python
  2. import re
  3. import sys
  4. class Parser( object ):
  5. def __init__( self ):
  6.  res = re.sub( r'[\w]{2}' , self.repl, sys.argv[ 1 ] )
  7.  print res[ :-1 ]
  8. def repl( self, data ):
  9.  return data.group( 0 ) + ':'
  10. if __name__ == '__main__' :
  11. p1 = Parser()


 
Si ça peut aider...

Reply

Marsh Posté le 06-07-2004 à 16:46:27    

Oups, juste une précision, c'est malheureusement un batch Dos NT :)

Reply

Marsh Posté le 07-07-2004 à 09:53:47    

Bonjour,  
 
Je travail aussi sur ce problème. J'ai fait ça, mais ça marche une fois sur trois !! Quelqu'un à une explication ?
 
Voilà le premier fichier contenant la liste de SN + MAC ADDRESS :
 

Code :
  1. SERIAL NUMBER;MAC ADDRESS
  2. 00750421500721;009064F543AD
  3. 00750421500722;009064F543B0


 
et voici mon batch :
 

Code :
  1. @ECHO ON
  2. del out.txt
  3. Set PARSEARG="eol= tokens=1,2 delims=; skip=1"
  4. For /F %PARSEARG% %%a in (mac@.csv) Do (
  5. SET SN=%%a
  6. SET MAC=%%b
  7. SET NEWMAC=%MAC:~0,2%:%MAC:~2,2%:%MAC:~4,2%:%MAC:~6,2%:%MAC:~8,2%:%MAC:~10,2%
  8. echo %SN%;%NEWMAC%>>out.txt
  9. )


 
Merci
 
AntOinE

Reply

Marsh Posté le 08-07-2004 à 12:26:51    

Bonjour,
 
Pour que cela fonctionne, il fallait créer deux fichiers :
 
le fichier run.cmd :
 

Code :
  1. @ECHO ON
  2.  
  3. del out.txt
  4.  
  5. Set PARSEARG="eol= tokens=1,2 delims=; skip=1"
  6.  
  7. For /F %PARSEARG% %%a in (mac@.csv) Do (
  8. SET SN=%%a
  9. SET MAC=%%b
  10. CALL Convert.cmd
  11. )


 
et le fichier Convert.cmd
 

Code :
  1. SET NEWMAC=%MAC:~0,2%:%MAC:~2,2%:%MAC:~4,2%:%MAC:~6,2%:%MAC:~8,2%:%MAC:~10,2%
  2. echo %SN%;%NEWMAC%>>out.txt


 
A +
 
AntOinE

Reply

Marsh Posté le 08-07-2004 à 12:27:50    

Yes, bien cool, sujet RÉ-SO-LU :)

Reply

Marsh Posté le 08-07-2004 à 13:35:54    

merci de ne pas mettre le "[Resolu]" en début de titre la prochaine fois ; ça empêche l'affichage du nom de la sous-catégorie :o

Reply

Sujets relatifs:

Leave a Replay

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