Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: LCD_DISCO_F429ZI mbed BSP_DISCO_F429ZI
Scripslua/autoLettre.lua@15:3874758e8f7d, 2019-04-22 (annotated)
- Committer:
- ascheriit
- Date:
- Mon Apr 22 13:48:44 2019 +0000
- Revision:
- 15:3874758e8f7d
- Child:
- 16:b1bf03ee2878
+script;
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| ascheriit | 15:3874758e8f7d | 1 | /* |
| ascheriit | 15:3874758e8f7d | 2 | #!/usr/local/bin/lua |
| ascheriit | 15:3874758e8f7d | 3 | |
| ascheriit | 15:3874758e8f7d | 4 | function convertFichTable(fichier) --tranforme un fichier en table lua |
| ascheriit | 15:3874758e8f7d | 5 | local tab={} |
| ascheriit | 15:3874758e8f7d | 6 | local f=io.open(fichier,"r") |
| ascheriit | 15:3874758e8f7d | 7 | local num=1 |
| ascheriit | 15:3874758e8f7d | 8 | local flag=true |
| ascheriit | 15:3874758e8f7d | 9 | while f and flag do |
| ascheriit | 15:3874758e8f7d | 10 | local lign=f:read() |
| ascheriit | 15:3874758e8f7d | 11 | if lign==nil then |
| ascheriit | 15:3874758e8f7d | 12 | flag=false |
| ascheriit | 15:3874758e8f7d | 13 | else |
| ascheriit | 15:3874758e8f7d | 14 | tab[num]=lign |
| ascheriit | 15:3874758e8f7d | 15 | end |
| ascheriit | 15:3874758e8f7d | 16 | num=num+1 |
| ascheriit | 15:3874758e8f7d | 17 | end |
| ascheriit | 15:3874758e8f7d | 18 | if f then f:close() end |
| ascheriit | 15:3874758e8f7d | 19 | return tab |
| ascheriit | 15:3874758e8f7d | 20 | end |
| ascheriit | 15:3874758e8f7d | 21 | |
| ascheriit | 15:3874758e8f7d | 22 | function convertTableFich(tabl,path) --permet d'enregistrer les une table en un fichier |
| ascheriit | 15:3874758e8f7d | 23 | f=io.open(path,"w") |
| ascheriit | 15:3874758e8f7d | 24 | for i=1,#tabl do |
| ascheriit | 15:3874758e8f7d | 25 | f:write(tostring(tabl[i])..'\n') |
| ascheriit | 15:3874758e8f7d | 26 | end |
| ascheriit | 15:3874758e8f7d | 27 | if #tabl==0 then |
| ascheriit | 15:3874758e8f7d | 28 | f:write(" ") |
| ascheriit | 15:3874758e8f7d | 29 | end |
| ascheriit | 15:3874758e8f7d | 30 | f:close() |
| ascheriit | 15:3874758e8f7d | 31 | end |
| ascheriit | 15:3874758e8f7d | 32 | |
| ascheriit | 15:3874758e8f7d | 33 | function convertSTDout(tabl) --permet d'afficher une table dans stdOut |
| ascheriit | 15:3874758e8f7d | 34 | for i=1,#tabl do |
| ascheriit | 15:3874758e8f7d | 35 | io.write(tostring(tabl[i])..'\n') |
| ascheriit | 15:3874758e8f7d | 36 | end |
| ascheriit | 15:3874758e8f7d | 37 | if #tabl==0 then |
| ascheriit | 15:3874758e8f7d | 38 | io.write(" ") |
| ascheriit | 15:3874758e8f7d | 39 | end |
| ascheriit | 15:3874758e8f7d | 40 | end |
| ascheriit | 15:3874758e8f7d | 41 | |
| ascheriit | 15:3874758e8f7d | 42 | function PBMlecture(tabFich) |
| ascheriit | 15:3874758e8f7d | 43 | local ret={} |
| ascheriit | 15:3874758e8f7d | 44 | local tailleX=tonumber(tabFich[3]:sub(1,2)) --on annalyse les dimmentions pour préparer la table |
| ascheriit | 15:3874758e8f7d | 45 | local tailleY=0 |
| ascheriit | 15:3874758e8f7d | 46 | if tailleX>9 then |
| ascheriit | 15:3874758e8f7d | 47 | tailleY=tonumber(tabFich[3]:sub(4,5)) |
| ascheriit | 15:3874758e8f7d | 48 | else |
| ascheriit | 15:3874758e8f7d | 49 | tailleY=tonumber(tabFich[3]:sub(3,4)) |
| ascheriit | 15:3874758e8f7d | 50 | end |
| ascheriit | 15:3874758e8f7d | 51 | local rawString=tabFich[4] --on met tous les 0 et les 1 à la suite pour simplifier la lecture |
| ascheriit | 15:3874758e8f7d | 52 | local i=5 |
| ascheriit | 15:3874758e8f7d | 53 | while tabFich[i] do |
| ascheriit | 15:3874758e8f7d | 54 | rawString=rawString..tabFich[i] |
| ascheriit | 15:3874758e8f7d | 55 | i=i+1 |
| ascheriit | 15:3874758e8f7d | 56 | end |
| ascheriit | 15:3874758e8f7d | 57 | --print(rawString, tailleX,tailleY) |
| ascheriit | 15:3874758e8f7d | 58 | |
| ascheriit | 15:3874758e8f7d | 59 | return rawString,tailleX,tailleY --on revoie la chaine de caractère et les dimmentionsrawString,tailleX,tailleY |
| ascheriit | 15:3874758e8f7d | 60 | end |
| ascheriit | 15:3874758e8f7d | 61 | |
| ascheriit | 15:3874758e8f7d | 62 | function lettreAutoLettre(nom,fichierEntree,FichierSortie) |
| ascheriit | 15:3874758e8f7d | 63 | local tab=convertFichTable(fichierEntree) |
| ascheriit | 15:3874758e8f7d | 64 | local sortie={"matrice *"..nom.."(){"," matrice* ret = (matrice*) malloc(sizeof(matrice));"," (*ret).tailleX="..tostring(#tab[1])..";"," (*ret).tailleY="..tostring(#tab)..";"} |
| ascheriit | 15:3874758e8f7d | 65 | for y=1,#tab do |
| ascheriit | 15:3874758e8f7d | 66 | sortie[#sortie+1]="" |
| ascheriit | 15:3874758e8f7d | 67 | for x=1,#tab[y] do |
| ascheriit | 15:3874758e8f7d | 68 | if tab[y]:sub(x,x)=="1" then |
| ascheriit | 15:3874758e8f7d | 69 | sortie[#sortie]=sortie[#sortie].." (*ret).tableau["..tostring(y-1).."]["..tostring(x-1).."]=1;" |
| ascheriit | 15:3874758e8f7d | 70 | else |
| ascheriit | 15:3874758e8f7d | 71 | sortie[#sortie]=sortie[#sortie].." (*ret).tableau["..tostring(y-1).."]["..tostring(x-1).."]=0;" |
| ascheriit | 15:3874758e8f7d | 72 | end |
| ascheriit | 15:3874758e8f7d | 73 | end |
| ascheriit | 15:3874758e8f7d | 74 | end |
| ascheriit | 15:3874758e8f7d | 75 | sortie[#sortie+1]=" return ret;" |
| ascheriit | 15:3874758e8f7d | 76 | sortie[#sortie+1]="}" |
| ascheriit | 15:3874758e8f7d | 77 | if FichierSortie then |
| ascheriit | 15:3874758e8f7d | 78 | convertTableFich(sortie,FichierSortie) |
| ascheriit | 15:3874758e8f7d | 79 | else |
| ascheriit | 15:3874758e8f7d | 80 | convertSTDout(sortie) |
| ascheriit | 15:3874758e8f7d | 81 | end |
| ascheriit | 15:3874758e8f7d | 82 | end |
| ascheriit | 15:3874758e8f7d | 83 | |
| ascheriit | 15:3874758e8f7d | 84 | function lettreAuto(nom,fichierEntree,FichierSortie) --transforme le PBM en une table de O et de 1 formatée correctement |
| ascheriit | 15:3874758e8f7d | 85 | local rawString,tailleX,tailleY=PBMlecture(convertFichTable(fichierEntree)) |
| ascheriit | 15:3874758e8f7d | 86 | local tab={} |
| ascheriit | 15:3874758e8f7d | 87 | for y=1,tailleY do |
| ascheriit | 15:3874758e8f7d | 88 | tab[y]=rawString:sub(tailleX * (y-1) +1,tailleX * (y-1) + tailleX) |
| ascheriit | 15:3874758e8f7d | 89 | end |
| ascheriit | 15:3874758e8f7d | 90 | convertTableFich(tab,"/tmp/autoLettre") |
| ascheriit | 15:3874758e8f7d | 91 | lettreAutoLettre(nom,"/tmp/autoLettre",FichierSortie) |
| ascheriit | 15:3874758e8f7d | 92 | end |
| ascheriit | 15:3874758e8f7d | 93 | |
| ascheriit | 15:3874758e8f7d | 94 | lettreAuto(arg[1],arg[2],arg[3]) |
| ascheriit | 15:3874758e8f7d | 95 | */ |
