FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  MembresMembres  Connexion  
Derniers sujets
» Logiciel de planétarium.
Choix d'un répertoire Emptypar Pedro Sam 23 Nov 2024 - 15:50

» Un autre pense-bête...
Choix d'un répertoire Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Choix d'un répertoire Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Choix d'un répertoire Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Choix d'un répertoire Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Choix d'un répertoire Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Choix d'un répertoire Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Choix d'un répertoire Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Choix d'un répertoire Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Choix d'un répertoire Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Choix d'un répertoire Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Choix d'un répertoire Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Choix d'un répertoire Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Choix d'un répertoire Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Choix d'un répertoire Emptypar leclode Ven 20 Sep 2024 - 19:02

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Novembre 2024
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
252627282930 
CalendrierCalendrier
Le Deal du moment : -17%
(Black Friday) Apple watch Apple SE GPS + Cellular ...
Voir le deal
249 €

 

 Choix d'un répertoire

Aller en bas 
2 participants
AuteurMessage
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Choix d'un répertoire Empty
MessageSujet: Choix d'un répertoire   Choix d'un répertoire EmptyDim 6 Juil 2008 - 22:31

A ma connaissance il n'existe pas dans Panoramic de fonction de choix d'un répertoire, j'ai fait le petit essai que voici, à modifier en fonction des besoins de chacun. Je pars de la racine du disque dur ( C: ) et je n'ai pas traité les autres volumes, ça doit pouvoir se rajouter assez facilement.
Code:
Rem ** SELECTR.BAS, choix d'un répertoire
Rem ** Clic gauche: affichage des sous-répertoires du répertoire cliqué
Rem ** Clic droit:  choix du répertoire et sortie
Rem ** Clic sur ".": retour à la racine
Rem ** Clic sur "..": retour au répertoire "parent"
Rem ** Sortie: rep$ = nom complet du répertoire choisi.
dim rep$, rd$, f$, Savcur$, csp$, rp$(198)
dim ini%, nr%, x%, y%, yd%, ym%, lf%, hf%, il%
dim xs%, ys%, nlc%, r%, c%, lc%, i%, j%, rng%, nbr%, maxtab%
dim mousel%, mouser%
label Re1, Reb, Sui, Term, Bcle, bcw, Fin, Iprep
label Boutg, Boutd, Posclic
rem ----------------------------------------------------
rep$ = "C:": rem ** répertoire de départ (racine du disque)
IF DIR_EXISTS(rep$) = 0 THEN GOTO Fin
csp$ = "."
Savcur$ = DIR_CURRENT$: Rem Sauvegarde répertoire actuel
il% = 13 : rem interligne
hf% = 994: lf% = 540 :rem ** fenêtre d'affichage
rem ** hauteur utile= hf-30 (bandeau)
lc% = lf%/3: rem largeur d'une colonne d'affichage (3 colonnes)
nlc% = INT((hf%-30) /il%): rem ** nombre de lignes par colonne
WIDTH 0, lf%
HEIGHT 0, hf%
COLOR 0, 255, 255, 192: rem jaune clair
BORDER_SMALL 0
2D_TARGET_IS 0
FONT_BOLD 0
maxtab% = 198: rem ** dimension maximum des tableaux (hélas!)

rem --------------- affichage des sous-répertoires ---------------------
Re1:
CLS
2D_LINE lc%-2, 0, lc%-2, hf%-1
2D_LINE 2*lc%-2, 0, 2*lc%-2, hf%-1
rem CAPTION 0,rep$
yd% = 0: ym% = yd% + nlc%*il%
y% = yd% - il%: x% = 1
rd$ = rep$: IF LEN(rd$) = 2 THEN rd$ = rd$ + "\"
DIR_CHANGE rd$
ini% = 0: nr% = 0
IF LEN(rep$) > 3
  f$ = csp$: GOSUB Iprep
  f$ = csp$ + csp$: GOSUB Iprep
END_IF
Reb:
IF ini% = 0 THEN f$ = FILE_FIND_FIRST$: ini% = 1: GOTO Sui
f$ = FILE_FIND_NEXT$
IF f$ = "??????" THEN GOTO Reb: rem par exemple à la fin de C:\Windows
Sui:
IF f$ = "_" THEN GOTO Term
IF FILE_EXISTS(rep$ + "\" + f$) = 1 THEN GOTO Reb
GOSUB Iprep
GOTO Reb
Term:
FILE_FIND_CLOSE
nbr% = nr%: IF rp$(1) = csp$ THEN nbr% = nbr% - 2
CAPTION 0, rep$ + " (" + STR$(nbr%) + " répertoires)"

rem --------------- boucle d'attente -----------------------------------
Bcle:
mousel% = MOUSE_LEFT_DOWN(0): mouser% = MOUSE_RIGHT_DOWN(0)
IF mousel% = 0 AND mouser% = 0 THEN GOTO bcw
IF mouser% = 1 THEN GOTO Boutd
Boutg:
rem *** clic gauche: sous-répertoire à parcourir
IF MOUSE_LEFT_DOWN(0) = 1 THEN WAIT 100: GOTO Boutg: rem attente relâchement
GOSUB Posclic: IF rng% = -1 THEN GOTO bcw
IF rp$(rng%) = csp$ THEN rep$ = LEFT$(rep$, 2): GOTO Re1: rem racine
IF rp$(rng%) = csp$ + csp$
  j% = 0: rem répertoire parent
  FOR i% = LEN(rep$) TO 1 STEP -1
    IF MID$(rep$, i%, 1) = "\" AND j% = 0 THEN j% = i%
  NEXT i%
  rep$ = LEFT$(rep$, j% - 1): GOTO Re1
END_IF
rep$ = rep$ + "\" + rp$(rng%): GOTO Re1

Boutd:
IF MOUSE_RIGHT_DOWN(0) = 1 THEN WAIT 100: GOTO Boutd: rem attente relâchement
rem *** clic droit: choix du répertoire
GOSUB Posclic: IF rng% = -1 THEN GOTO bcw
IF LEFT$(rp$(rng%), 1) = csp$ THEN GOTO bcw
rep$ = rep$ + "\" + rp$(rng%)
PRINT_LOCATE x%, y% + il%: PRINT " ******** Répertoire: ********"
PRINT_LOCATE x%, y% + 2 * il%: PRINT rep$: GOTO Fin
bcw:
WAIT 200
GOTO Bcle

Fin:
DIR_CHANGE Savcur$: rem Retour au répertoire d'origine
END

rem ------------ sous-programmes -------------------------------------
Posclic:
xs% = MOUSE_X_POSITION(0)
c% = INT(xs% / lc%): rem ** colonne cliquée (0 à 2)
ys% = MOUSE_Y_POSITION(0)
r% = INT((ys% - yd%) / il%): rem ** rangée cliquée
rng% = 1 + r% + c% * nlc%
IF rng% < 0 OR rng% > nr% THEN rng% = -1
RETURN

Iprep:
nr% = nr% + 1: IF nr% > maxtab% THEN RETURN
rp$(nr%) = f$
y% = y% + il%
IF y% >= ym% THEN x% = x% + lc%: y% = yd%
PRINT_LOCATE x%, y%
PRINT f$: rem ** affichage du répertoire
RETURN

Edit: quelques petites modifs...


Dernière édition par JL35 le Mar 8 Juil 2008 - 23:10, édité 1 fois
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

Choix d'un répertoire Empty
MessageSujet: Re: Choix d'un répertoire   Choix d'un répertoire EmptyMar 8 Juil 2008 - 19:29

Citation :
A ma connaissance il n'existe pas dans Panoramic de fonction de choix d'un répertoire

Il y a DIR_CHANGE
avec comme explication dans le fiche du Manuel de Référence:
Citation :
LE RÉPERTOIRE COURANT DEVIENT LE REPERTOIRE D

Cette commande DIR_CHANGE D change le répertoire courant, qui devient le répertoire D. D est le nom absolu ou relatif du répertoire.

Si D est un nom relatif, D est considéré comme un sous-répertoire du répertoire courant.

Le nom absolu du répertoire est le nom complet, par rapport à la racine du système de fichier (ex: "c:\temp\files\" ou "c:\temp\files").

Le nom relatif est le nom du répertoire par rapport au répertoire courant (ex: "files").

Mais je ne sais pas si cela répond à ton besoin, car il faut taper cette commande et cela fige le nom du répertoire.
Tu aurais besoin de quoi?
Revenir en haut Aller en bas
https://panoramic.1fr1.net
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Choix d'un répertoire Empty
MessageSujet: Re: Choix d'un répertoire   Choix d'un répertoire EmptyMar 8 Juil 2008 - 22:59

En fait c'était pour parcourir le volume et faire choisir un répertoire à l'utilisateur du programme (voir le topic précédent: "affichage des smileys d'un répertoire", j'avais mis le répertoire en dur, mais musicgames me demandait si on pouvait faire choisir le répertoire par l'utilisateur).
Je connais DIR_CHANGE, d'ailleurs je l'utilise dans mon code ci-dessus.

Le besoin c'était l'équivalent pour les répertoires (choix d'un répertoire) de OPEN_DIALOG pour les fichiers (choix d'un fichier).
Evidemment on pourrait demander à l'utilisateur de taper lui-même le répertoire dans une boîte de dialogue, mais c'est moins pratique et avec risque d'erreurs que de parcourir une liste et cliquer.

Mais ce n'est pas un besoin courant à mon avis, on peut se débrouiller par programme et je ne pense pas qu'il faille une commande particulière pour ça.
Comme toujours en programmation, il y a moyen de contourner l'obstacle !

Merci encore pour ta réactivité.
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

Choix d'un répertoire Empty
MessageSujet: Re: Choix d'un répertoire   Choix d'un répertoire EmptyMar 8 Juil 2008 - 23:49

OK.
Je suis réactif quand j'ai une liaison internet sous la main, ce qui n'est pas toujours le cas: ces derniers temps, je me déplace beaucoup pour des raisons professionnelles.
J'avoue que je n'avais pas regardé ton code. Mais je finis tôt ou tard par tout regarder en détail.
Revenir en haut Aller en bas
https://panoramic.1fr1.net
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Choix d'un répertoire Empty
MessageSujet: Re: Choix d'un répertoire   Choix d'un répertoire EmptyMer 9 Juil 2008 - 14:54

Incidemment tu pourras constater dans le code ci-dessus que FILE_FIND_FIRST et NEXT renvoient bien les fichiers ET les sous-répertoires.
Je teste si c'est un fichier qui existe, et si non, j'en déduis que c'est un répertoire. C'est un peu lourd, mais je n'ai pas trouvé de solution plus élégante.
Revenir en haut Aller en bas
Jack
Admin
Jack


Nombre de messages : 2394
Date d'inscription : 28/05/2007

Choix d'un répertoire Empty
MessageSujet: Re: Choix d'un répertoire   Choix d'un répertoire EmptyMer 9 Juil 2008 - 20:24

J'ai bien vu toutes tes remarques sur les fichiers et repertoires renvoyées par ces deux commandes. Dès que je redeviens disponible pour PANORAMIC, je regarde tout cela dans le détail et je fais le nécessaire.
En ce moment, je suis pris à 100% par d'autres activités et qui sont importantes : ellles font "bouillir la marmite".
Revenir en haut Aller en bas
https://panoramic.1fr1.net
JL35




Nombre de messages : 7112
Localisation : 77
Date d'inscription : 29/11/2007

Choix d'un répertoire Empty
MessageSujet: Re: Choix d'un répertoire   Choix d'un répertoire EmptyMer 9 Juil 2008 - 21:33

Je comprends bien que la mise au point de Panoramic pourrait être une activité à temps complet, alors si c'est en plus de l'activité professionnelle on ne peut qu'être admiratif pour le boulot fourni.

En ce qui concerne FILE_FIND..., ce n'est pas forcément une mauvaise chose, il faut bien un moyen aussi de trouver les répertoires. C'était simplement une remarque par rapport au manuel.
Revenir en haut Aller en bas
Contenu sponsorisé





Choix d'un répertoire Empty
MessageSujet: Re: Choix d'un répertoire   Choix d'un répertoire Empty

Revenir en haut Aller en bas
 
Choix d'un répertoire
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Liste (et choix) des fichiers d'un répertoire
» Choix de Police dans Choix et messages d'erreur parlants
» Paramètres ('Choix') de Panoramic_Editor
» Les choix de l'éditeur
» Ne cherchez plus vos couleurs grace à ma petite palette!

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC :: Vos sources, vos utilitaires à partager-
Sauter vers: