Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Décompression Sythaxe
Auteur Message
Répondre en citant
Message Décompression Sythaxe 
Salut !!

J'ai hésiter à poster ce sujet dans 'aide à oprogrammation' mais je suis incapable de faire des boucle for aussi complexe..

M'enfin bref, comme vous le savez, la synthaxe batbox à besoin d'être 'compresser' pour être rapide. Or sa donne lieu à des lignes beaucoup trop longue donc vraiment pas pratique.
Avant, ce que je faisais, c'était de simplement mettre le code non 'compresser' en commentaire. Mais à long terme, pour des modifications, sa reste limité.
J'ai alors eu l'idée d'un programme qui à l'aide de boucle for, décompresse ces fameuses lignes.

// EXEMPLE //

- On a le fichier magique.txt dans lequel on colle notre ligne compresser :
Code:

batbox /g 8 27 /c 0x07 /a 218 %ccec% %ccec% %ccec% %ccec% %ccec% /a 196 /a 196 /a 196 /a 196 /a 196 /a 196 /a 196 /a 196 /a 191 /g 8 28 /a 179 /d "  " /a 179 /d "  " /a 179 /d "  " /a 179 /d "  " /a 179 /d "  " /a 179 /c 0x0!colam! /d "Amelior" /a 130 /c 0x07 /a 179 /g 8 29 /c 0x07 /a 195 %cse% /a 193 %cse% /a 197 %bcac% %bcac% %cse% /a 180 /d "        " /a 179 /g 8 30 /a 179 /c 0x03 /d "Niv !level.maison!" /c 0x07 /a 179 /c 0x07 /d "+" /c 0x07 /d "!DailyMoney!$" /c 0x03 /d "/" /c 0x07 /d "j " /g 23 30 /a 179 /c 0x0!colam! /d "  !ameliorationPrice!$  " /c 0x07 /g 32 30 /a 179 /g 8 31 /a 192 %cse% %cse% /a 196 /a 193 %cse% %cse% %cse% /a 196 /a 196 /a 193 %cse% %cse% %cse% %cse% /a 217 /g 8 34 /c 0x07 /a 218 %cens% %cens% /a 196 /a 196 /a 194 %cens% %cens% %cens% /a 191 /g 8 35 /c 0x07 /a 179 /c 0x0!cchyp! /d "Hypoth" /a 130 /d "qu" /a 130 /c 0x07 /a 179 /c 0x0!ccchyp! /d "Gains: !gainsHypotheque!$" /c 0x07 /a 179 /g 8 36 /c 0x07 /a 195 %cens% %cens% /a 196 /a 196 /a 197 %cens% %cens% %cens% /a 180 /g 8 37 /c 0x07 /a 179 /c 0x0!chyp! /d "Rembourser" /c 0x07 /a 179 /c 0x0!chypt! /d "!rembourcementPrice!$/!hypotheque!j.max" /c 0x07 /a 179 /g 8 38 /c 0x07 /a 192 %cens% %cens% /a 196 /a 196 /a 193 %cens% %cens% %cens% /a 217 /g 8 41 /c 0x07 /a 218 %cens% %cens% /a 196 /a 196 /a 194 %cens% %cens% %cens% /a 191 /g 8 42 /c 0x07 /a 179 /c 0x0!cchypc! /d "  Vendre  " /c 0x07 /a 179 /c 0x0!ccchyp! /d "Gains: !reventePrice!$" /c 0x07 /a 179 /g 8 43 /c 0x07 /a 195 %cens% %cens% /a 196 /a 196 /a 197 %cens% %cens% %cens% /a 180 /g 8 44 /c 0x07 /a 179 /c 0x0!cchypc! /d " Supprim" /a 130 /d " " /c 0x07 /a 179 /c 0x0!clhyp! /d " Inventaire " /c 0x07 /a 179 /g 8 45 /c 0x07 /a 192 %cens% %cens% /a 196 /a 196 /a 193 %cens% %cens% %cens% /a 217


- Ensuite on lance le batch 'magique.bat' (c'est là que j'ai besoin de votre aide) et ..... TADA Exclamation

- On a donc un fichier 'magique.txt' totalement différent !
Code:

batbox /g 8 27 /c 0x07 /a 218 %ccec% %ccec% %ccec% %ccec% %ccec% /a 196 /a 196 /a 196 /a 196 /a 196 /a 196 /a 196 /a 196 /a 191
batbox /g 8 28 /a 179 /d "  " /a 179 /d "  " /a 179 /d "  " /a 179 /d "  " /a 179 /d "  " /a 179 /c 0x0!colam! /d "Amelior" /a 130 /c 0x07 /a 179
batbox /g 8 29 /c 0x07 /a 195 %cse% /a 193 %cse% /a 197 %bcac% %bcac% %cse% /a 180 /d "        " /a 179
batbox /g 8 30 /a 179 /c 0x03 /d "Niv !level.maison!" /c 0x07 /a 179 /c 0x07 /d "+" /c 0x07 /d "!DailyMoney!$" /c 0x03 /d "/" /c 0x07 /d "j "
batbox /g 23 30 /a 179 /c 0x0!colam! /d "  !ameliorationPrice!$  " /c 0x07
batbox /g 32 30 /a 179
batbox /g 8 31 /a 192 %cse% %cse% /a 196 /a 193 %cse% %cse% %cse% /a 196 /a 196 /a 193 %cse% %cse% %cse% %cse% /a 217
batbox /g 8 34 /c 0x07 /a 218 %cens% %cens% /a 196 /a 196 /a 194 %cens% %cens% %cens% /a 191
batbox /g 8 35 /c 0x07 /a 179 /c 0x0!cchyp! /d "Hypoth" /a 130 /d "qu" /a 130 /c 0x07 /a 179 /c 0x0!ccchyp! /d "Gains: !gainsHypotheque!$" /c 0x07 /a 179
batbox /g 8 36 /c 0x07 /a 195 %cens% %cens% /a 196 /a 196 /a 197 %cens% %cens% %cens% /a 180
batbox /g 8 37 /c 0x07 /a 179 /c 0x0!chyp! /d "Rembourser" /c 0x07 /a 179 /c 0x0!chypt! /d "!rembourcementPrice!$/!hypotheque!j.max" /c 0x07 /a 179
batbox /g 8 38 /c 0x07 /a 192 %cens% %cens% /a 196 /a 196 /a 193 %cens% %cens% %cens% /a 217
batbox /g 8 41 /c 0x07 /a 218 %cens% %cens% /a 196 /a 196 /a 194 %cens% %cens% %cens% /a 191
batbox /g 8 42 /c 0x07 /a 179 /c 0x0!cchypc! /d "  Vendre  " /c 0x07 /a 179 /c 0x0!ccchyp! /d "Gains: !reventePrice!$" /c 0x07 /a 179
batbox /g 8 43 /c 0x07 /a 195 %cens% %cens% /a 196 /a 196 /a 197 %cens% %cens% %cens% /a 180
batbox /g 8 44 /c 0x07 /a 179 /c 0x0!cchypc! /d " Supprim" /a 130 /d " " /c 0x07 /a 179 /c 0x0!clhyp! /d " Inventaire " /c 0x07 /a 179
batbox /g 8 45 /c 0x07 /a 192 %cens% %cens% /a 196 /a 196 /a 193 %cens% %cens% %cens% /a 217


Donc pour résumer, je voudrais un batch qui, dans un fichier texte, à chaque fois qu'il rencontre un /g, va à la ligne, et écrit un batbox devant lui et ainsi de suite.

J'èspère que cela est possible, en tout cas, sa pourrait m'être bien utile !!

(et aussi, sa serai génial de faire l'opération dans le sens inverse)




______________________________________________________
We're just an accident. We're just bad code. - Root
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Décompression Sythaxe 
Salut Mr. Green


Code:
@echo off
title magic.bat ^| Cr‚‚ par Flammrock ^| Version 1.0.0
setlocal EnableDelayedExpansion

if "%~1"=="" (
  echo;Vous devez glisser/d‚poser un ou plusieurs fichiers ^^!
) else (
  if not exist "%temp%\magic.js" call :magic.js
  echo;Choisissez un mode : compress, decompress-1 ou decompress-2
  echo;Exemple : decompress-1
  set /p "mode=-> "
  cscript //nologo "%temp%\magic.js" %* !mode! output.txt
  echo;Traitement termin‚ ^^!
  notepad output.txt
)

pause>nul
:magic.js
For %%b In (
    "666F722876617220617267733D575363726970742E417267756D656E74732C"
    "66736F3D6E657720416374697665584F626A6563742822536372697074696E67"
    "2E46696C6553797374656D4F626A65637422292C6D6F64653D61726773286172"
    "67732E6C656E6774682D32292C6F75747075743D6172677328617267732E6C65"
    "6E6774682D31292C693D303B693C617267732E6C656E6774682D323B692B2B29"
    "7B7661722074733D66736F2E4F70656E5465787446696C652861726773286929"
    "2C312C2131292C66696C655F636F6E74656E743D74732E52656164416C6C2829"
    "3B74732E636C6F736528292C226465636F6D70726573732D31223D3D6D6F6465"
    "26262866696C655F636F6E74656E743D66696C655F636F6E74656E742E726570"
    "6C616365282F5B5E5C5E5D5C262F672C66756E6374696F6E2865297B72657475"
    "726E20652E737562737472696E6728302C31292B225C725C6E227D292E726570"
    "6C616365282F5C2F672F672C225C725C6E222B66696C655F636F6E74656E742E"
    "73706C697428222022295B305D2B22202F6722292E737562737472696E672866"
    "696C655F636F6E74656E742E73706C697428222022295B305D2E6C656E677468"
    "2B31292E7265706C61636528225C725C6E222C222229292C226465636F6D7072"
    "6573732D32223D3D6D6F646526262866696C655F636F6E74656E743D66696C65"
    "5F636F6E74656E742E7265706C616365282F5B5E5C5E5D5C262F672C66756E63"
    "74696F6E2865297B72657475726E20652E737562737472696E6728302C31292B"
    "225C725C6E227D292E7265706C616365282F5C2F672F672C225E5C725C6E202F"
    "672229292C22636F6D7072657373223D3D6D6F646526262866696C655F636F6E"
    "74656E743D66696C655F636F6E74656E742E7265706C616365282F5C5E5C723F"
    "5C6E2F672C66756E6374696F6E2865297B72657475726E20652E737562737472"
    "696E672831297D292E7265706C616365282F5C6E5B5E205D2B2F672C2222292E"
    "7265706C616365282F5B5C725C6E5D2A2F672C222229293B766172206F74663D"
    "66736F2E4F70656E5465787446696C65286F75747075742C322C2130293B6F74"
    "662E57726974652866696C655F636F6E74656E74292C6F74662E436C6F736528"
    "297D"
) Do >> "magic.j_" (Echo.For b=1 To len^(%%b^) Step 2
Echo WScript.StdOut.Write Chr^(Clng^("&H"^&Mid^(%%b,b,2^)^)^) : Next)
Cscript /b /e:vbs "magic.j_" > "%temp%\magic.js"
Del "magic.j_" >nul 2>&1
goto :eof



Le principe du code est simple, tu fais un glisser/déposer de un ou plusieurs fichiers,
ensuite tu dois choisir le "mode" (compress, decompress-1 ou decompress-2)

Voici la différence entre decompress-1 et decompress-2 :

decompress-1 :
Code:
batbox /g 8 27 /c 0x07 /a 218 %ccec% %ccec% %ccec% %ccec% %ccec% /a 196 /a 196 /a 196 /a 196 /a 196 /a 196 /a 196 /a 196 /a 191
batbox /g 8 28 /a 179 /d "  " /a 179 /d "  " /a 179 /d "  " /a 179 /d "  " /a 179 /d "  " /a 179 /c 0x0!colam! /d "Amelior" /a 130 /c 0x07 /a 179
batbox /g 8 29 /c 0x07 /a 195 %cse% /a 193 %cse% /a 197 %bcac% %bcac% %cse% /a 180 /d "        " /a 179
batbox /g 8 30 /a 179 /c 0x03 /d "Niv !level.maison!" /c 0x07 /a 179 /c 0x07 /d "+" /c 0x07 /d "!DailyMoney!$" /c 0x03 /d "/" /c 0x07 /d "j "
batbox /g 23 30 /a 179 /c 0x0!colam! /d "  !ameliorationPrice!$  " /c 0x07
batbox /g 32 30 /a 179
batbox /g 8 31 /a 192 %cse% %cse% /a 196 /a 193 %cse% %cse% %cse% /a 196 /a 196 /a 193 %cse% %cse% %cse% %cse% /a 217
batbox /g 8 34 /c 0x07 /a 218 %cens% %cens% /a 196 /a 196 /a 194 %cens% %cens% %cens% /a 191
batbox /g 8 35 /c 0x07 /a 179 /c 0x0!cchyp! /d "Hypoth" /a 130 /d "qu" /a 130 /c 0x07 /a 179 /c 0x0!ccchyp! /d "Gains: !gainsHypotheque!$" /c 0x07 /a 179
batbox /g 8 36 /c 0x07 /a 195 %cens% %cens% /a 196 /a 196 /a 197 %cens% %cens% %cens% /a 180
batbox /g 8 37 /c 0x07 /a 179 /c 0x0!chyp! /d "Rembourser" /c 0x07 /a 179 /c 0x0!chypt! /d "!rembourcementPrice!$/!hypotheque!j.max" /c 0x07 /a 179
batbox /g 8 38 /c 0x07 /a 192 %cens% %cens% /a 196 /a 196 /a 193 %cens% %cens% %cens% /a 217
batbox /g 8 41 /c 0x07 /a 218 %cens% %cens% /a 196 /a 196 /a 194 %cens% %cens% %cens% /a 191
batbox /g 8 42 /c 0x07 /a 179 /c 0x0!cchypc! /d "  Vendre  " /c 0x07 /a 179 /c 0x0!ccchyp! /d "Gains: !reventePrice!$" /c 0x07 /a 179
batbox /g 8 43 /c 0x07 /a 195 %cens% %cens% /a 196 /a 196 /a 197 %cens% %cens% %cens% /a 180
batbox /g 8 44 /c 0x07 /a 179 /c 0x0!cchypc! /d " Supprim" /a 130 /d " " /c 0x07 /a 179 /c 0x0!clhyp! /d " Inventaire " /c 0x07 /a 179
batbox /g 8 45 /c 0x07 /a 192 %cens% %cens% /a 196 /a 196 /a 193 %cens% %cens% %cens% /a 217




decompress-2 :
Code:
batbox ^
 /g 8 27 /c 0x07 /a 218 %ccec% %ccec% %ccec% %ccec% %ccec% /a 196 /a 196 /a 196 /a 196 /a 196 /a 196 /a 196 /a 196 /a 191 ^
 /g 8 28 /a 179 /d "  " /a 179 /d "  " /a 179 /d "  " /a 179 /d "  " /a 179 /d "  " /a 179 /c 0x0!colam! /d "Amelior" /a 130 /c 0x07 /a 179 ^
 /g 8 29 /c 0x07 /a 195 %cse% /a 193 %cse% /a 197 %bcac% %bcac% %cse% /a 180 /d "        " /a 179 ^
 /g 8 30 /a 179 /c 0x03 /d "Niv !level.maison!" /c 0x07 /a 179 /c 0x07 /d "+" /c 0x07 /d "!DailyMoney!$" /c 0x03 /d "/" /c 0x07 /d "j " ^
 /g 23 30 /a 179 /c 0x0!colam! /d "  !ameliorationPrice!$  " /c 0x07 ^
 /g 32 30 /a 179 ^
 /g 8 31 /a 192 %cse% %cse% /a 196 /a 193 %cse% %cse% %cse% /a 196 /a 196 /a 193 %cse% %cse% %cse% %cse% /a 217 ^
 /g 8 34 /c 0x07 /a 218 %cens% %cens% /a 196 /a 196 /a 194 %cens% %cens% %cens% /a 191 ^
 /g 8 35 /c 0x07 /a 179 /c 0x0!cchyp! /d "Hypoth" /a 130 /d "qu" /a 130 /c 0x07 /a 179 /c 0x0!ccchyp! /d "Gains: !gainsHypotheque!$" /c 0x07 /a 179 ^
 /g 8 36 /c 0x07 /a 195 %cens% %cens% /a 196 /a 196 /a 197 %cens% %cens% %cens% /a 180 ^
 /g 8 37 /c 0x07 /a 179 /c 0x0!chyp! /d "Rembourser" /c 0x07 /a 179 /c 0x0!chypt! /d "!rembourcementPrice!$/!hypotheque!j.max" /c 0x07 /a 179 ^
 /g 8 38 /c 0x07 /a 192 %cens% %cens% /a 196 /a 196 /a 193 %cens% %cens% %cens% /a 217 ^
 /g 8 41 /c 0x07 /a 218 %cens% %cens% /a 196 /a 196 /a 194 %cens% %cens% %cens% /a 191 ^
 /g 8 42 /c 0x07 /a 179 /c 0x0!cchypc! /d "  Vendre  " /c 0x07 /a 179 /c 0x0!ccchyp! /d "Gains: !reventePrice!$" /c 0x07 /a 179 ^
 /g 8 43 /c 0x07 /a 195 %cens% %cens% /a 196 /a 196 /a 197 %cens% %cens% %cens% /a 180 ^
 /g 8 44 /c 0x07 /a 179 /c 0x0!cchypc! /d " Supprim" /a 130 /d " " /c 0x07 /a 179 /c 0x0!clhyp! /d " Inventaire " /c 0x07 /a 179 ^
 /g 8 45 /c 0x07 /a 192 %cens% %cens% /a 196 /a 196 /a 193 %cens% %cens% %cens% /a 217

p.s: c'est + optimisé que decompress-1


Et lorsqu'on compresse (compress) :
Code:
batbox /g 8 27 /c 0x07 /a 218 %ccec% %ccec% %ccec% %ccec% %ccec% /a 196 /a 196 /a 196 /a 196 /a 196 /a 196 /a 196 /a 196 /a 191 /g 8 28 /a 179 /d "  " /a 179 /d "  " /a 179 /d "  " /a 179 /d "  " /a 179 /d "  " /a 179 /c 0x0!colam! /d "Amelior" /a 130 /c 0x07 /a 179 /g 8 29 /c 0x07 /a 195 %cse% /a 193 %cse% /a 197 %bcac% %bcac% %cse% /a 180 /d "        " /a 179 /g 8 30 /a 179 /c 0x03 /d "Niv !level.maison!" /c 0x07 /a 179 /c 0x07 /d "+" /c 0x07 /d "!DailyMoney!$" /c 0x03 /d "/" /c 0x07 /d "j " /g 23 30 /a 179 /c 0x0!colam! /d "  !ameliorationPrice!$  " /c 0x07 /g 32 30 /a 179 /g 8 31 /a 192 %cse% %cse% /a 196 /a 193 %cse% %cse% %cse% /a 196 /a 196 /a 193 %cse% %cse% %cse% %cse% /a 217 /g 8 34 /c 0x07 /a 218 %cens% %cens% /a 196 /a 196 /a 194 %cens% %cens% %cens% /a 191 /g 8 35 /c 0x07 /a 179 /c 0x0!cchyp! /d "Hypoth" /a 130 /d "qu" /a 130 /c 0x07 /a 179 /c 0x0!ccchyp! /d "Gains: !gainsHypotheque!$" /c 0x07 /a 179 /g 8 36 /c 0x07 /a 195 %cens% %cens% /a 196 /a 196 /a 197 %cens% %cens% %cens% /a 180 /g 8 37 /c 0x07 /a 179 /c 0x0!chyp! /d "Rembourser" /c 0x07 /a 179 /c 0x0!chypt! /d "!rembourcementPrice!$/!hypotheque!j.max" /c 0x07 /a 179 /g 8 38 /c 0x07 /a 192 %cens% %cens% /a 196 /a 196 /a 193 %cens% %cens% %cens% /a 217 /g 8 41 /c 0x07 /a 218 %cens% %cens% /a 196 /a 196 /a 194 %cens% %cens% %cens% /a 191 /g 8 42 /c 0x07 /a 179 /c 0x0!cchypc! /d "  Vendre  " /c 0x07 /a 179 /c 0x0!ccchyp! /d "Gains: !reventePrice!$" /c 0x07 /a 179 /g 8 43 /c 0x07 /a 195 %cens% %cens% /a 196 /a 196 /a 197 %cens% %cens% %cens% /a 180 /g 8 44 /c 0x07 /a 179 /c 0x0!cchypc! /d " Supprim" /a 130 /d " " /c 0x07 /a 179 /c 0x0!clhyp! /d " Inventaire " /c 0x07 /a 179 /g 8 45 /c 0x07 /a 192 %cens% %cens% /a 196 /a 196 /a 193 %cens% %cens% %cens% /a 217





______________________________________________________
la vie est trop courte pour retirer le périphérique USB en toute sécurité...
Si la statue de la liberté lève le bras depuis 125 ans, c'est parce qu'elle cherche du réseau sur son Blackberry Torches...
Grâce à mon nouveau correcteur automatiste sur mon téléphage, je ne fais plus aucune faute d'orthodontie.
Quelqu'un a t il déjà demandé au drapeau japonais ce qu'il enregistre depuis tout ce temps ?
Visiter le site web du posteur
Répondre en citant
Message Décompression Sythaxe 
Mmmmh, t'a utilisé du java si j'ai bien compris. J'avoue que sa aurais été compliqué de faire sa qu'avec du batch.

Seulement le problème : c'est que ton code fonctionne pas Sad
Ou plutôt, te connaissant, il fonctionne mais j'arrive pas à l'utiliser.

J'ai beau tout essayer mais soit, il se passe rien quand je fait glisser le fichier sur le batch (il se ferme juste) .. soit sa m'ouvre mon fichier avec le notepad mais y a absolument aucune modification.

Donc y aurais moyen d'arranger sa ?

(
Et j'ai modifier cette partie du code vue que je suis un flemmard ^^

Code:

  echo Choisissez un mode : compress [1] ^| decompress-1 [2] ^| decompress-2 [3] ^|
 
  choice /c 123 /n
  If %errorlevel%==3 set mode=decompress-2
  If %errorlevel%==2 set mode=decompress-1
  If %errorlevel%==1 set mode=compress

)




______________________________________________________
We're just an accident. We're just bad code. - Root
Répondre en citant
Message Décompression Sythaxe 
Pourquoi faire compliqué quand on peut faire simple :
Code:
:: compress.bat file.bat > out.bat

@Echo off
setlocal enabledelayedexpansion

<nul set /p "=batbox "
for /f "tokens=1,* eol=" %%A in (%~1) do (
   <nul set /p "=%%B "
)
Code:
:: decompress.bat < file.bat > out.bat

@Echo off
setlocal enabledelayedexpansion
set /p line=

for %%A in (!line!) do (
   if "%%A" EQU "/g" (
      echo.
      <nul set /p "=batbox "
   )
   <nul set /p "=%%A "
)


(il y a des soucis avec la décompression de longues lignes à cause des limites de cmd)




______________________________________________________
Partager permet le savoir. Le savoir permet de partager de nouveau savoirs.
Répondre en citant
Message Décompression Sythaxe 
TSnake41 a écrit:
Pourquoi faire compliqué quand on peut faire simple :
Code:
:: compress.bat file.bat > out.bat

@Echo off
setlocal enabledelayedexpansion

<nul set /p "=batbox "
for /f "tokens=1,* eol=" %%A in (%~1) do (
   <nul set /p "=%%B "
)
Code:
:: decompress.bat < file.bat > out.bat

@Echo off
setlocal enabledelayedexpansion
set /p line=

for %%A in (!line!) do (
   if "%%A" EQU "/g" (
      echo.
      <nul set /p "=batbox "
   )
   <nul set /p "=%%A "
)


(il y a des soucis avec la décompression de longues lignes à cause des limites de cmd)


Wow, sa m'étonne que se soit possible de faire aussi simple !

Sa s'utilise comment concrètement ??




______________________________________________________
We're just an accident. We're just bad code. - Root
Message Décompression Sythaxe 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch