JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Un petit diaporama Mer 13 Jan 2010 - 16:04 | |
| Voici un petit diaporama très simple, qui tourne en boucle une fois lancé. Je n'ai pas voulu le compliquer avec des boutons, libre à chacun de le faire. Usage: - il faut mettre dans rep$ un répertoire qui contient des images jpg (peut-être redimensionner img$() au besoin). - la variable we contient la largeur de la fenêtre d'affichage. A régler au choix. - la variable wt conditionne l'intervalle d'affichage, en millisecondes. Commandes au clavier: - flèche gauche: image précédente - flèche droite: image suivante - Echap: quitter - Une touche quelconque (espace): pause/play Remarque: le s/p Convac sert à normaliser les noms de fichier qui contiennent des lettres accentuées et qui pourraient provoquer une erreur. - Code:
-
' Diaporama
Dim rep$, fm$, f$, a$, we, he, wt, nf, i, j, k, ex, sc Dim a1$, a2$, c$ Dim img$(500) Label preced, attente, Rebouc, Fin, Convac, zac
rep$ = "C:\Photos\Venise2\" fm$ = "C:\Temp\Dir" we = 800: he = INT(we*3/4): ' fenêtre d'affichage de l'image (format 4:3) wt = 2000: ' intervalle en ms (ici 2s)
EXECUTE_WAIT "cmd.exe /c DIR " + rep$ + "*.jpg /B >" + fm$ File_Open_Read 2, fm$: nf = 0 While File_Eof(2) = 0 nf = nf + 1: File_ReadLn 2, a$: Gosub Convac: img$(nf) = a$ End_While File_Close 2: File_Delete fm$
Width 0, we+20: Height 0, he+60 Picture 1: Width 1, we: Height 1, he
Rebouc: For i = 1 to nf preced: f$ = rep$ + img$(i) Print_Locate 5, he+2: print str$(i) + " " + f$ + " " File_Load 1, f$ Stretch_On 1 ex = 0 for j = 1 to wt/200 Wait 200 sc = Scancode: If sc <> 0 then ex = 1: exit_for Next j if ex = 1 Select sc case 27: GOTO Fin: Exit_For: ' Echap, fin case 37: i = i - 1: if i < 1 then i = 1 goto preced: ' flèche gauche: image précédente case 39: i = i + 1: if i > nf then i = nf goto preced: ' flèche droite: image suivante end_Select end_if a$ = inkey$ if a$ <> "" : ' touche espace (ou quelconque): pause/play attente: wait 500 if inkey$ = "" then goto attente end_if Next i Goto Rebouc End
Fin: Terminate
Convac: ' conversion des lettres accentuées éventuelles dans a$ a1$ = chr$(130)+chr$(131)+chr$(133)+chr$(135)+chr$(136)+chr$(137)+chr$(138) a1$ = a1$ + chr$(139)+chr$(140)+chr$(144)+chr$(147)+chr$(148)+chr$(150)+chr$(151) a2$ = "éâàçêëèïîÉôöûù" For i = 1 to Len(a1$) c$ = mid$(a1$, i, 1) zac: k = INSTR(a$, c$) if k > 0 a$ = left$(a$, k-1) + mid$(a2$,i,1)+right$(a$, len(a$)-k): Goto zac end_if Next i Return | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Mmm Mer 13 Jan 2010 - 23:50 | |
| Encore notre spécialiste des execute et execute_wait qui nous fait des surprises ! Alors, (ligne 13) ça veut dire quoi ---> /B Ceci dit, joli petit visualisateur de diaporama ! | |
|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Un petit diaporama Jeu 14 Jan 2010 - 10:27 | |
| Elémentaire mon cher Watson ! - Code:
-
EXECUTE_WAIT "cmd.exe /c DIR " + rep$ + "*.jpg /B >" + fm$ c'est tout simplement l'exécution d'une commande MsDos parmi tant d'autres: DIR qui donne la liste (filtrée: ici seulement les .jpg) des fichiers et sous-répertoires d'un répertoire donné, le résultat étant envoyé dans le fichier fm$. - Pour connaître la syntaxe (et les paramètres) d'une commande MsDos donnée, taper simplement le nom de la commande suivi de /? en ligne de commande. - Pour avoir la liste des commandes MsDos avec leur usage succinct, taper 'Help' en ligne de commande. What else ? comme dirait l'autre. EDIT pardon jjn4 je n'avais pas bien lu ton message. /B dans la commande DIR ça veut dire édition simplifiée: juste la liste des noms de fichiers (sans la taille ni la date ni rien d'autre. | |
|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: + Ven 15 Jan 2010 - 12:37 | |
| Merci de ta réponse, maître Obi-Wan-35. | |
|
Contenu sponsorisé
| Sujet: Re: Un petit diaporama | |
| |
|