salut,
voici quelques fonctions pour traiter les chaînes de caractères:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116 @echo off & setlocal enabledelayedexpansion enableextensions set str=%* if not defined str (set /p str=Entrez une chaine: %) echo. call :length "%str%" call :count "%str%" call :reverse "%str%" call :ucase "%str%" call :2hexa "%str%" call :cword "%str%" call :def "%str%" call :defRev "%str%" call :DecToHex1 2657 call :DecToHex2 2657 call :fileRev "my file.txt" set length set [ set reverse set ucase set hexa set cword set $hex1 set $hex2 pause & endlocal & goto:eof :length for /f "tokens=1* delims=[]" %%a in (' "%comspec% /u /c echo:%~1|more|find /n /v """ ') do set /a "length=%%a-4" goto:eof :count for /f %%: in (' "%comspec% /u /c echo:%~1|more|sort" ') do Set /A "[%%:]+=1" goto:eof :reverse for /f "tokens=1* delims=:" %%a in (' "%comspec% /u /c echo:%~1|more|findstr /o ." ') do set "reverse=%%b!reverse!" goto:eof :ucase for /f "tokens=1* delims=µ" %%a in (' "tree \µµµ%1|find ":\"" ') do set "ucase=%%b" goto:eof :2hexa <nul>$asc$ set/p"=%~1" for /l %%i in (1 1 %length%) do <nul>>$hex$ set/p"=µ" for /f "skip=1 tokens=3" %%i in ('fc /b $hex$ $asc$') do set "hexa=!hexa!%%i-" set "hexa=%hexa:~0,-1%" & del $asc$ $hex$ goto:eof :cword Set/Acword=0,cword=1+%str: =,cword+=1+% goto:eof :def for /l %%a in (0 1 %length%) do ( for /l %%i in (1 1 1000) do >nul ver <nul call Set/p"=%%str:~%%a,1%%" ) echo. goto:eof :defRev for /l %%a in (%length% -1 0) do ( for /l %%i in (1 1 1000) do >nul ver <nul call Set/p"=%%str:~%%a,1%%" ) echo. goto:eof :DecToHex1 :: : Idée de Carlos (voir source) :: set $hex1=0x0 for /f "tokens=1* delims=0=" %%a in ('"%comspec% /cexit/b %1&set;|find "^=ExitCode^=""') do Set $hex1=0x%%b goto :eof :DecToHex2 :: : Idée de 01MDM (voir source) :: for /f "tokens=1,3" %%i in ('^( reg add hkcu\console /v $hex2 /t reg_dword /d %1 /f ^& reg query hkcu\console /v $hex2 ^& reg delete hkcu\console /v $hex2 /f ^)^|find "REG_DWORD"') do Set %%i=%%j goto:eof :fileRev echo.&echo ##########[ BEGIN ]####################### echo. for /f "tokens=1* delims=][" %%s in ('find /n /v "" ^< %1') do ( Set "table[%%s]=%%t" if not defined table[%%s] set table[%%s]=µµµ Set nline=%%s ) for /l %%i in (%nline% -1 1) Do ( for /f "tokens=1* delims=µ=" %%o in ('"2>nul set table[%%i]"') do echo=%%p ) echo.&echo ##########[ END ]######################### echo. goto:eof
fonction Length: affiche le nombre de caractères saisie
fonction count: compte le nombre de lettre dans la chaine
fonction reverse: inverse la chaine
fonction ucase: transforme la chaîne en majuscule
fonction 2hexa: affiche la valeur hexadecimal de chaque lettre
fonction cword: compter les mots dans "une chaîne de caractères"
fonction def: défilement de la chaine de caractères
fonction defRev: défilement inverse de la chaine
fonction DecToHex1: Converti du decimal à l'hexadecimal
fonction DecToHex2: Converti du decimal à l'hexadecimal
fonction fileRev: lire un fichier à l'envers
Partager