Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- Setlocal EnableDelayedExpansion
- rem fichier exemple
- (
- echo;jean;choco123;7f6fb32c-7e49-4f86-b23f-24a63d9cc0a3
- echo;pierre;lol147;e4b2c762-3194-4471-93b4-20f35ed47461
- echo;louis;mot de passe de la mort;65b0742c-bdbe-40f1-a8ab-07dc49d6e354
- echo;luc;oui;b9a59fd6-f041-4099-b456-dd8bcead1418
- )> mon_fichier.txt
- rem on créé une Table
- call :Table.Create ma_table_client ""Nom" "Mot de Passe" "ID""
- rem on importe notre fichier mon_fichier.txt (créé plus haut) dans notre Table
- call :Table.Import ma_table_client mon_fichier.txt
- rem on affiche notre Table pour voir un peu à quoi ça ressemble
- echo;Table Import From File :
- call :Table.Display ma_table_client
- rem on supprime le 3ème Item, ici le 3ème Item correspond à 2 (les indices commencent à 0)
- call :Table.DeleteFromIndex ma_table_client 2
- rem on nettoie tout
- call :Table.TidyIndex ma_table_client
- rem on affiche tout ça
- echo;Index 3 Deleted :
- call :Table.Display ma_table_client
- rem bon on va trier un peu ce bordel xD
- call :Table.SortBy ma_table_client 0 ma_table_client_triee
- rem on affiche tout ça
- echo;Table Sorted :
- call :Table.Display ma_table_client_triee
- rem et on sauvegarde tout ça :
- call :Table.SaveToCSV ma_table_client_triee mon_mega_fichier
- pause>nul&exit
- :Table.Create <Name> <Rows>
- for /f "tokens=1,* delims= " %%a in ('echo;%*') do (
- set "%%~a=%%~b"
- set %%~a.Rows.Length=0
- for %%i in (%%~b) do (
- set "%%~a.Rows[!%%~a.Rows.Length!]=%%~i"
- set /a %%~a.Rows.Length+=1
- )
- )
- set %~1.Length=0
- Exit /b
- :Table.CreateFromCSV <Name> <@File>
- set indexLine=0
- for /f "tokens=* delims=;" %%i in ('type "%~2"') do (
- set line=%%~i
- set line="!line:;=" "!"
- if not "!indexLine!"=="0" (
- set i=0
- for %%j in (!line!) do (
- if !i! LEQ !Rows.Length! (
- for %%u in ("%~1.Rows[!i!]") do set %~1[!%~1.Length!].!%%~u!=%%~j
- )
- set /a i+=1
- )
- set /a %~1.Length+=1
- ) else (
- call :Table.Create "%~1" "!line!"
- set /a Rows.Length=!%~1.Rows.Length!
- )
- set /a indexLine+=1
- )
- Exit /b
- :Table.Append <Name> <Data>
- for /f "tokens=1,* delims= " %%a in ('echo;%*') do (
- set Name=%%~a
- set Data=%%~b
- set Length=!%%~a.Length!
- set /a Rows.Length=!%~1.Rows.Length!-1
- set i=0
- for %%i in (!Data!) do (
- if !i! LEQ !Rows.Length! (
- for %%u in ("%~1.Rows[!i!]") do set "!Name![!Length!].!%%~u!=%%~i"
- )
- set /a i+=1
- )
- set /a %%~a.Length+=1
- )
- Exit /b
- :Table.Display <Name>
- set /a Length=!%~1.Length!-1
- set Display=
- for %%i in (!%~1!) do set "Display=!Display! - %%~i"
- echo;!Display:~3!
- echo;----------------------------
- for /l %%i in (0,1,!Length!) do (
- set Display=%%i
- for %%j in (!%~1!) do set "Display=!Display! - !%~1[%%i].%%~j!"
- echo;!Display!
- )
- echo;
- Exit /b
- :Table.DeleteFromIndex <Name> <Index>
- for %%i in (!%~1!) do (
- set %~1[%~2].%%~i={NULL}
- )
- Exit /b
- :Table.TidyIndex <Name>
- set /a Length=!%~1.Length!-1
- set /a Rows.Length=!%~1.Rows.Length!
- set newLength=0
- for /l %%i in (0,1,!Length!) do (
- set Null=0
- for %%j in (!%~1!) do (
- if "!%~1[%%i].%%~j!"=="{NULL}" set /a Null+=1
- )
- if not "!Null!"=="!Rows.Length!" (
- for %%j in (!%~1!) do (
- set "%~1[!newLength!].%%~j=!%~1[%%i].%%~j!"
- )
- set /a newLength+=1
- )
- )
- set %~1.Length=!newLength!
- Exit /b
- :Table.SortBy <Name> <RowID> <Output:Table>
- set /a Length=!%~1.Length!-1
- type nul > "%temp%\sortTemp"
- for /l %%i in (0,1,!Length!) do (
- for %%u in ("%~1.Rows[%~2]") do for %%v in ("!%%~u!") do echo;!%~1[%%i].%%~v! - %%i
- )>> "%temp%\sortTemp"
- type "%temp%\sortTemp" | sort > "%temp%\sortTemp2"
- set %~3.Length=0
- call :Table.Create %~3 "!%~1!"
- for /f "tokens=*" %%i in ('type "%temp%\sortTemp2"') do (
- for %%j in ('echo;%%i') do set index=%%~j
- set index=!index:~0,1!
- for %%j in (!%~1!) do (
- for %%u in (!index!) do set "%~3[!%~3.Length!].%%~j=!%~1[%%~u].%%~j!"
- )
- set /a %~3.Length+=1
- )
- Exit /b
- :Table.GetByIndex <Name> <Index> <Output:Table.Row>
- set %~3=
- for %%i in (!%~1!) do (
- set %~3=!%~3! "!%~1[%~2].%%~i!"
- )
- set %~3=!%~3:~1!
- Exit /b
- :Table.DisplayRow <Name> <Index>
- echo;%~1[%~2] :
- for %%i in (!%~1!) do (
- echo; - %%~i : !%~1[%~2].%%~i!
- )
- echo;
- Exit /b
- :Table.SaveToCSV <Name> <Output:@File>
- set /a Length=!%~1.Length!-1
- type nul > "%~2.csv"
- set Row=
- for %%j in (!%~1!) do (
- set Row=!Row!;%%~j
- )
- (
- echo;!Row:~1!
- )>> "%~2.csv"
- for /l %%i in (0,1,!Length!) do (
- set Row=
- for %%j in (!%~1!) do (
- set Row=!Row!;!%~1[%%i].%%~j!
- )
- (
- echo;!Row:~1!
- )>> "%~2.csv"
- )
- Exit /b
- :Table.Import <Name> <@File>
- set /a Rows.Length=!%~1.Rows.Length!-1
- for /f "tokens=* delims=;" %%i in ('type "%~2"') do (
- set line=%%~i
- set line="!line:;=" "!"
- set i=0
- for %%j in (!line!) do (
- if !i! LEQ !Rows.Length! (
- for %%u in ("%~1.Rows[!i!]") do set %~1[!%~1.Length!].!%%~u!=%%~j
- )
- set /a i+=1
- )
- set /a %~1.Length+=1
- )
- Exit /b
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement