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
» trop de fichiers en cours
Outil d'archivage "desk-top" Emptypar lepetitmarocain Aujourd'hui à 10:43

» Aide de PANORAMIC
Outil d'archivage "desk-top" Emptypar papydall Aujourd'hui à 4:21

» Je teste PANORAMIC V 1 beta 1
Outil d'archivage "desk-top" Emptypar papydall Aujourd'hui à 4:17

» select intégrés
Outil d'archivage "desk-top" Emptypar jjn4 Hier à 18:33

» PANORAMIC V 1
Outil d'archivage "desk-top" Emptypar Klaus Hier à 9:53

» bouton dans autre form que 0
Outil d'archivage "desk-top" Emptypar leclode Lun 6 Mai 2024 - 13:59

» KGF_dll - nouvelles versions
Outil d'archivage "desk-top" Emptypar Klaus Lun 6 Mai 2024 - 11:41

» Gestion d'un système client-serveur.
Outil d'archivage "desk-top" Emptypar Klaus Lun 6 Mai 2024 - 10:23

» Editeur EliP 6 : Le Tiny éditeur avec 25 onglets de travail
Outil d'archivage "desk-top" Emptypar Froggy One Jeu 2 Mai 2024 - 11:16

» @Jack
Outil d'archivage "desk-top" Emptypar Jack Mar 30 Avr 2024 - 20:40

» Une calculatrice en une ligne de programme
Outil d'archivage "desk-top" Emptypar jean_debord Dim 28 Avr 2024 - 8:47

» Form(résolu)
Outil d'archivage "desk-top" Emptypar leclode Sam 27 Avr 2024 - 17:59

» Bataille navale SM
Outil d'archivage "desk-top" Emptypar jjn4 Ven 26 Avr 2024 - 17:39

» Les maths du crocodile
Outil d'archivage "desk-top" Emptypar jean_debord Jeu 25 Avr 2024 - 10:37

» Naissance de Crocodile Basic
Outil d'archivage "desk-top" Emptypar jean_debord Jeu 25 Avr 2024 - 8:45

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Mai 2024
LunMarMerJeuVenSamDim
  12345
6789101112
13141516171819
20212223242526
2728293031  
CalendrierCalendrier
-20%
Le deal à ne pas rater :
Ecran PC GIGABYTE 28″ LED M28U 4K ( IPS, 1 ms, 144 Hz, FreeSync ...
399 € 499 €
Voir le deal

 

 Outil d'archivage "desk-top"

Aller en bas 
2 participants
AuteurMessage
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Outil d'archivage "desk-top" Empty
MessageSujet: Outil d'archivage "desk-top"   Outil d'archivage "desk-top" EmptySam 11 Fév 2012 - 0:33

Pour les besoins, j'ai créé un petit outil d'archivage de documents que je mets à disposition su ça peut intéresser certains parmi vous.

L'outil se présente comme un fichier source Panoramic qui est à compiler en EXE. Cet EXE sera placé à l'endroit qui vous convient, puis il faut placer un raccourci vers cet EXE sur le bureau. D'ailleurs, dans le source, il y aune ligne de paramétrage du répertoire qu'il faut adapter, bien sûr. C'est la ligne 48
Code:
  dim version_klaus% : version_klaus% = 1  : ' mettre 0 normalement !
Si vous mettez la valeur à zéro ce qui est prévu comme configuration normale, le programme va chercher et/ou créer ses fichiers dans le répertoire où se trouve l'exécutable. Si vous laissez la ligne 48 telle qu'elle est, vous devez adapter la ligne 54:
Code:
  dim rep1$  : rep1$  = "c:\documents and settings\klaus\mes documents\mes projets panoramic\repertoire\"
en y mettant le chemin complet vers un répertoire où se trouveront les fichiers de l'application. Attention: pas de "\" à la fin de cette chaîne !

Le programme utilise 3 fichiers, et en leur absence, il les crée automatiquement, vides, avec juste une première ligne contenant === Répertoire ===. Cette ligne servira d'estampillage (modeste).

Le programme permet de mémoriser des fichiers de tout type et de les classer de deux façons: d'une part on peut les regrouper par "rubriques", c'est-à-dire des cqtégories, et d'autre part, on peut affecter des drapeaux aux fichiers. On peut utiliser simultanément jusqu'à 20 rubriques et jusqu'à 10 drapeaux. Un fichier peut appartenir à plusieurs rubriques à la fois, ou à aucune, et peut posséder plusieurs drapeaux ou aucun. Les rubriques et drapeaux sont de simples libellés qui peuvent être maintenus et gérés par le programme lui-même; ils sont déposés dans les fichiers rubriques.txt et flags.txt qui peuvent aussi être simplement modifiés par un éditeur de texte, mais attention à ne pas produire de décalages de lignes: le programme se repère à la position dans le fichier pour affecter un libellé à un drapeau ou une rubrique.

Au niveau de l'archivage, le programme ne recopie évidemment pas physiquement les fichiers. Il crée un fichier repertoire.txt dans lequel il dépose une ligne par fichier, contenant le chemin complet vers ce fichier, un intitulé, la date de mémorisation, les drapeaux et les rubriques sous forme de suites caractères "0" et "1". Tout est lisible dans un éditeur de texte. Les champs sont séparés par des tabulations chr$(9).

Alors, pour mémoriser un fichier, on le fait simplement glisser sur son icône placée sur le bureau. On peut aussi le lancer à partir d'un programme Panoramic par EXECUTE repertoire.exe xxxxx.yyy. Le fichier sera mémorisé avec la date du jour, l'intitulé est le nom du fichier sans le chemin, et toutes les rubriques et drapeaux sont désactivés.

A tout moment, on peut lancer ce programme en mode interactif, simplement en double-cliquant sur son icône. Un écran apparaît alors qui montre dans sa partie gauche les intitulés de tous les fichiers répertoriés. Toutes les fonctions sont alors gérées par un menu. Un clic sur une ligne dans la liste sélectionne ce fichier, et ses informations sont affichées dans un cadre à droite pour son intitulé, ses rubriques et ses drapeaux, et dans un cadre en bas pour le chemin complet. Ce chemin complet est aussi copié dans le presse-papier dès qu'on sélectionne un fichier.

Une fois un fichier sélectionné, on peut modifier ses attributs (fonction dans le menu "édition". On peut affecter ou enlever des rubriques et/ou des drapeaux, et on peut changer l'intitulé. Les modifications sont effectives en cliquant sur Valider, ou oubliées en cliquant sur Annuler.

L'intérêt principal du programme, c'est qu'on peut faire des filtrages ! Dans le menu Edition, il y a une fonction Filtrage. La partie de droite avec les attributs change alors de sens: ce n'est plus l'affichage des attributs d'un fichier, mais un masque de comparaison qu'un définit pour filtrer la liste existante. Le sens est un OU logique: si l'on coche la rubrique 1 et le drapeau 3, on retiendra les fichiers appartenant, entre autres, à la rubrique 3, ou les fichiers portant, entre autres, le drapeau 3. On peut aussi placer une chaine de caractères dans l'intitulé: le critère est alors vrai si l'on trouve cette chaîne quelque part dans l'intitulé d'un fichier. Par exemple: on place Panoramic dans l'intitulé, on trouvera "Documents pour Panoramic", "Sources Panoramic de Klaus", mais on ne trouvera pas "Modules panoramic".

Pour filtrer, il faut donc constituer le critère de filtrage, puis cliquer sur Validation. Dans la fenêtre de gauche n'apparaîtront alors plus que les fichiers répondant aux critères. On peut revenir dans le filtrage et changer les critères, et la validation affichera d'autres résultats. Pour récupérer la liste complète, utiliser le bouton Tout qui construit un critère sélectionnant tous les fichiers, puis faire Validation. Pour la simplicité, le bouton Rien efface le critère Tout - ceci évite de manuellement décocher chaque case.

Bon, assez da baratin, voici le source V1.05 du 12/2/2012:
Code:
' *********************************
' *        repertoire.bas        *
' *********************************

' ce programme gère un répertoire évolué de
' documents de tout type. Il a deux mode opératoires:
' - mode batch: repertoire fichier
' - mode interactif
' en mode batch, il inclut le fichier dans son archive
' en mode iinteractif, il permet de donner des attributs
' aux fichiers archivés, ou de faire des recheches
' selon des critères variés.
' On n'archive pas physiquement les fichiers, mais
' uniquement leur chemin d'accès complet avec une
' collection d'attributs.
' Structure d'un enregistrement: champs séparés par des TAB.
' Liste des champs:
'    chemin complet | libellé | flags | date | rubriques |
' Les flags sont une liste de 10 valeurs 0/1.
' les rubriques sont une liste de 20 valeurs 0/1.

hide 0
label labels : gosub labels
gosub variables
gosub form0
gosub GUI
gosub initialisations
gosub cmdline
show 0

end

labels:
  label variables, form0, GUI, initialisations
  label cmdline, champ, choix, sortir, a_propos, executer, defaut
  label nouveau_fichier, nouveau_URL, nouvelle_ligne
  label supprimer, supprimer_tout, clic_titre
  label m_rubriques, fermer_m_rub, select_m_rub, change_nom_rub, clic_nom_rub
  label m_drapeaux, fermer_m_flg, select_m_flg, change_nom_flg, clic_nom_flg
  label valider_ligne, m_attributs, annuler_ligne
  label filtrer, annuler_filtrage, valider_filtrage
  label tout_filtrage, rien_filtrage, remplacer_rep
  label a_propos_close, a_propos_site, aide, aide_aide
  label annuler_defaut, valider_defaut, load_base
  return
 
variables:
  dim s$, file$, rep$, i%, j%, k%, no%, p%, prog$, champ$
  dim modif%, n_select%, modif_rubs%, modif_flags%, n_select_ligne%
  dim mod_rubriques$, mod_flags$, n_select_ligne_f%, trouve%
  dim def_flags$, def_rubs$, aide_flag%, url$
 
  dim version_klaus% : version_klaus% = 1  : ' mettre 0 normalement !
  dim base$  : base$  = "repertoire.txt"
  dim rubs$  : rubs$  = "rubriques.txt"
  dim flags$  : flags$  = "flags.txt"
  dim defaut$ : defaut$ = "defaut.txt"
  dim tab$    : tab$    = chr$(9)
  dim c$      : c$      = chr$(13) + chr$(10)
  dim header$ : header$ = "=== Répertoire ==="
  dim rep1$  : rep1$  = "c:\documents and settings\klaus\mes documents\mes projets panoramic\repertoire\"

 
  dim no_liste%    : ' numéro d'objet de la liste affichée
  dim no_liste_t%  : ' numéro d'objet de la liste affichée contenant tout
  dim no_dlist_t%  : ' numéro d'objet de la dlist contenant tout
  dim no_dlist%    : ' numéro d'objet de la dlist sousjacente
  dim no_dlist_i%  : ' numéro d'objet de la dlist filtrée avec indexes
  dim no_flags%    : ' numéro d'objet de la dlist flags sousjacente
  dim no_date%    : ' numéro d'objet de la dlist date sousjacente
  dim no_rubs%    : ' numéro d'objet de la dlist rubriques sousjacente
  dim no_info_fic% : ' numéro d'objet d'affichage du nom du fichier
  dim no_info_lib% : ' numéro d'objet d'affichage du libellé du fichier
  dim no_info_typ% : ' numéro d'objet d'affichage du type du fichier
  dim no_cont_det% : ' numéro d'objet du container des infos de détail
  dim no_lib%      : ' numéro d'objet du libellé d'une ligne
  dim no_det_rub%  : ' numéro d'objet de la première rubrique d'une ligne
  dim no_det_flg%  : ' numéro d'objet du premier flag d'une ligne

  dim no_cont_rub% : ' numéro d'objet du container de maintenance des rubriques
  dim no_m_rub%    : ' numéro d'objet de la list des rubriques pour modification
  dim no_m_r_nom%  : ' numéro d'objet de l'edit du nom d'une rubrique
  dim no_cont_flg% : ' numéro d'objet du container de maintenance des drapeaux
  dim no_m_flg%    : ' numéro d'objet de la list des flags pour modification
  dim no_m_f_nom%  : ' numéro d'objet de l'edit du nom d'un drapeau

  dim no_cont_flt% : ' numéro d'objet du container pour le filtrage des éléments
  dim no_lib_f%    : ' numéro d'objet du libellé d'une ligne
  dim no_det_rub_f%  : ' numéro d'objet de la première rubrique d'une ligne
  dim no_det_flg_f%  : ' numéro d'objet du premier flag d'une ligne
  dim no_ann_flt%  : ' numéro d'objet du bouton Annuler du container de filtrage
  dim no_val_flt%  : ' numéro d'objet du bouton Valider du container de filtrage
 
  dim no_a_propos% : ' numéro d'objet de la form A_Propos
  dim no_aide%    : ' numéro d'objet de la form Aide
  dim no_open_dialog% : ' numéro objet du open_dialog

  return

form0:
  caption 0,"Répertoire V1.0"
  height 0,600 : width 0,800
  top 0,(screen_y-600)/2
  left 0,(screen_x-800)/2
  on_close 0,sortir
  return

GUI:
  no% = no% + 1 : list no%  : no_liste% = no%
    height no%,400 : width no%,200 : no_liste% = no%
    on_click no%, choix
  no% = no% + 1 : dlist no% : no_liste_t% = no%
  no% = no% + 1 : dlist no% : no_dlist_t% = no%
  no% = no% + 1 : dlist no% : no_dlist_i% = no%
  no% = no% + 1 : dlist no% : no_dlist% = no%
  no% = no% + 1 : dlist no% : no_flags% = no%
  no% = no% + 1 : dlist no% : no_date%  = no%
  no% = no% + 1 : dlist no% : no_rubs% = no%
  no% = no% + 1 : open_dialog no% : no_open_dialog% = no%

  no% = no% + 1 : container no% : top no%,430 : left no%,10 : j% = no%
    height no%,110 : width no%,770 : caption no%,"Informations"
  no% = no% + 1 : alpha no% : parent no%,j% : top no%,20 : left no%,10
    caption no%,"Fichier:"
  no% = no% + 1 : alpha no% : parent no%,j% : top no%,20 : left no%,10
    no_info_fic% = no%
  no% = no% + 1 : alpha no% : parent no%,j% : top no%,40 : left no%,10
    no_info_lib% = no%
  no% = no% + 1 : alpha no% : parent no%,j% : top no%,40 : left no%,400
    no_info_typ% = no%

 no% = no% + 1 : container no% : top no%,40 : left no%,230 : j% = no% : hide no%
    height no%,390 : width no%,550 : caption no%,"Rubriques" : no_cont_rub% = no%
  no% = no% + 1 : list no% : parent no%,j% : top no%,20 : left no%,10
    on_click no%, select_m_rub : width no%, 200 : height no%, 350 : no_m_rub% = no%
  no% = no% + 1 : alpha no% : parent no%,j% : top no%,20 : left no%,240
    caption no%,"Nom de la rubrique:"
  no% = no% + 1 : edit no% : parent no%,j% : top no%,50 : left no%,240
    no_m_r_nom% = no% : on_change no%, change_nom_rub : on_click no%, clic_nom_rub
  no% = no% + 1 : button no% : parent no%,j% : top no%,360 : left no%,470
    caption no%,"Fermer" : on_click no%, fermer_m_rub

 no% = no% + 1 : container no% : top no%,40 : left no%,230 : j% = no% : hide no%
    height no%,390 : width no%,550 : caption no%,"Drapeaux" : no_cont_flg% = no%
  no% = no% + 1 : list no% : parent no%,j% : top no%,20 : left no%,10
    on_click no%, select_m_flg : width no%, 200 : height no%, 350 : no_m_flg% = no%
  no% = no% + 1 : alpha no% : parent no%,j% : top no%,20 : left no%,240
    caption no%,"Nom du drapeau:"
  no% = no% + 1 : edit no% : parent no%,j% : top no%,50 : left no%,240
    no_m_f_nom% = no% : on_change no%, change_nom_flg : on_click no%, clic_nom_flg
  no% = no% + 1 : button no% : parent no%,j% : top no%,360 : left no%,470
    caption no%,"Fermer" : on_click no%, fermer_m_flg

  no% = no% + 1 : container no% : top no%,40 : left no%,230 : j% = no% : inactive no%
    height no%,390 : width no%,550 : caption no%,"Détail des attributs" : no_cont_det% = no%
  no% = no% + 1 : alpha no% : top no%,30 : left no%,10
    caption no%,"Intitulé:" : parent no%,j%
  no% = no% + 1 : edit no% : top no%,30 : left no%,60 : no_lib% = no%
    width no%,460 : parent no%,j%  : on_click no%,clic_titre
  no% = no% + 1 : container no% : top no%,60 : left no%,10 : k% = no%
    height no%,290 : width no%,350 : caption no%,"Rubriques" : parent no%,j%
  no_det_rub% = no%+1
  for i%=1 to 10
    no% = no% + 1 : check no% : top no%,30+20*i% : left no%,10
      width no%,160 : caption no%,"Rubrique "+str$(i%) : parent no%,k%
    no% = no% + 10 : check no% : top no%,30+20*i% : left no%,170
      width no%,160 : caption no%,"Rubrique "+str$(i%+10) : parent no%,k%
    no% = no% - 10
  next i%
  no% = no% + 10
 
  no% = no% + 1 : container no% : top no%,60 : left no%,370 : k% = no%
    height no%,290 : width no%,150 : caption no%,"Drapeaux" : parent no%,j%
  no_det_flg% = no%+1
  for i%=1 to 10
    no% = no% + 1 : check no% : top no%,30+20*i% : left no%,10
      width no%,130 : caption no%,"Drapeau "+str$(i%) : parent no%,k%
  next i%

  no% = no% + 1 : button no% : parent no%,j% : top no%,360 : left no%,270
    caption no%,"Annuler" : on_click no%, Annuler_ligne
  no% = no% + 1 : button no% : parent no%,j% : top no%,360 : left no%,470
    caption no%,"Valider" : on_click no%, valider_ligne

  no% = no% + 1 : container no% : top no%,40 : left no%,230 : j% = no% : hide no%
    height no%,390 : width no%,550 : caption no%,"Filtrage par attributs" : no_cont_flt% = no%
  no% = no% + 1 : alpha no% : top no%,30 : left no%,10
    caption no%,"Intitulé:" : parent no%,j%
  no% = no% + 1 : edit no% : top no%,30 : left no%,60 : no_lib_f% = no%
    width no%,460 : parent no%,j%
  no% = no% + 1 : container no% : top no%,60 : left no%,10 : k% = no%
    height no%,290 : width no%,350 : caption no%,"Rubriques" : parent no%,j%
  no_det_rub_f% = no%+1
  for i%=1 to 10
    no% = no% + 1 : check no% : top no%,30+20*i% : left no%,10
      width no%,160 : caption no%,"Rubrique "+str$(i%) : parent no%,k%
    no% = no% + 10 : check no% : top no%,30+20*i% : left no%,170
      width no%,160 : caption no%,"Rubrique "+str$(i%+10) : parent no%,k%
    no% = no% - 10
  next i%
  no% = no% + 10

  no% = no% + 1 : container no% : top no%,60 : left no%,370 : k% = no%
    height no%,290 : width no%,150 : caption no%,"Drapeaux" : parent no%,j%
  no_det_flg_f% = no%+1
  for i%=1 to 10
    no% = no% + 1 : check no% : top no%,30+20*i% : left no%,10
      width no%,130 : caption no%,"Drapeau "+str$(i%) : parent no%,k%
  next i%

  no% = no% + 1 : button no% : parent no%,j% : top no%,360 : left no%,10
    caption no%,"Tout" : on_click no%, tout_filtrage
  no% = no% + 1 : button no% : parent no%,j% : top no%,360 : left no%,110
    caption no%,"Rien" : on_click no%, rien_filtrage
  no% = no% + 1 : button no% : parent no%,j% : top no%,360 : left no%,270
    caption no%,"Annuler" : on_click no%, Annuler_filtrage : no_ann_flt% = no%
  no% = no% + 1 : button no% : parent no%,j% : top no%,360 : left no%,470
    caption no%,"Valider" : on_click no%, valider_filtrage : no_val_flt% = no%

  no% = no% + 1 : form no% : hide no% : no_a_propos% = no% : j% = no%
    top no%,(screen_y-height(no%))/2 : left no%,(screen_x-width(no%))/2
    caption no%,"A propos de Répertoire" : on_close no%,a_propos_close
  no% = no% + 1 : alpha no% : parent no%,j% : top no%,30 : left no%,90
    caption no%,s$ : font_name no%,"Arial" : font_size no%,10
  no% = no% + 1 : button no% : parent no%,j% : width no%,100
    top no%,height(j%)-90 : left no%,(width(j%)-width(no%))/2
      caption no%,"Site du forum" : on_click no%,a_propos_site

  no% = no% + 1 : picture no% : no_aide% = no% : j% = no% : hide no%
    width no%,20 : height no%,35 : color no%,255,255,0
    top no%,0 : left no%,width(0)-width(no%)-10
    font_name no%,"Arial" : font_size no%,24 : font_bold no%
    2d_target_is no% : 2d_fill_color 255,255,0
    print_target_is no% : print "?"

  no% = no% + 1 : main_menu no% : j% = no%
    no% = no% + 1 : sub_menu no% : parent no%,j% : k% = no% : caption no%,"Fichiers"
      no% = no% + 1 : sub_menu no% : parent no%,k% : caption no%,"Nouveau fichier"
        on_click no%,nouveau_fichier
      no% = no% + 1 : sub_menu no% : parent no%,k% : caption no%,"Nouvelle URL"
        on_click no%,nouveau_URL
      no% = no% + 1 : sub_menu no% : parent no%,k% : caption no%,"Exécuter"
        on_click no%,executer
      no% = no% + 1 : sub_menu no% : parent no%,k% : caption no%,"---------"
      no% = no% + 1 : sub_menu no% : parent no%,k% : caption no%,"Sortir"
        on_click no%,sortir

    no% = no% + 1 : sub_menu no% : parent no%,j% : k% = no% : caption no%,"Edition"
      no% = no% + 1 : sub_menu no% : parent no%,k% : caption no%,"Modifier les attributs"
        on_click no%,m_attributs
      no% = no% + 1 : sub_menu no% : parent no%,k% : caption no%,"Filtrer les éléments"
        on_click no%,filtrer
      no% = no% + 1 : sub_menu no% : parent no%,k% : caption no%,"--------------------"
      no% = no% + 1 : sub_menu no% : parent no%,k% : caption no%,"Remplacer par son répertoire"
        on_click no%,remplacer_rep
      no% = no% + 1 : sub_menu no% : parent no%,k% : caption no%,"--------------------"
      no% = no% + 1 : sub_menu no% : parent no%,k% : caption no%,"Supprimer cet élément"
        on_click no%,supprimer
      no% = no% + 1 : sub_menu no% : parent no%,k% : caption no%,"Supprimer TOUS les éléments affichés"
        on_click no%,supprimer_tout
      no% = no% + 1 : sub_menu no% : parent no%,k% : caption no%,"--------------------"
      no% = no% + 1 : sub_menu no% : parent no%,k% : caption no%,"Attributs par défaut"
        on_click no%,defaut
    no% = no% + 1 : sub_menu no% : parent no%,j% : k% = no% : caption no%,"Options"
      no% = no% + 1 : sub_menu no% : parent no%,k% : caption no%,"Rubriques"
        on_click no%,m_rubriques
      no% = no% + 1 : sub_menu no% : parent no%,k% : caption no%,"Drapeaux"
        on_click no%,m_drapeaux

    no% = no% + 1 : sub_menu no% : parent no%,j% : k% = no% : caption no%,"Aide"
      on_click no%,aide_aide
    no% = no% + 1 : sub_menu no% : parent no%,j% : k% = no% : caption no%,"?"
      on_click no%, a_propos


  return
 
initialisations:
  clear no_liste% : clear no_dlist%
  clear no_liste_t% : clear no_dlist_i%
  prog$ = param_value$(0)
  prog$ = file_extract_path$(prog$)
  if version_klaus%=1
    base$ = rep1$ + base$
    rubs$ = rep1$ + rubs$
    flags$ = rep1$ + flags$
    defaut$ = rep1$ + defaut$
  else
    base$ = prog$ + base$
    rubs$ = prog$ + rubs$
    flags$ = prog$ + flags$
    defaut$ = prog$ + defaut$
  end_if
  if file_exists(defaut$)=1
    file_open_read 1,defaut$
    file_readln 1,s$
    if s$=header$
      file_readln 1,s$
      gosub champ
      def_flags$ = champ$
      gosub champ
      def_rubs$ = champ$
    else
      def_flags$ = string$(10,"0")
      def_rubs$ = strings$(20,"0")
    end_if
    file_close 1
  else
    def_flags$ = string$(10,"0")
    def_rubs$ = string$(20,"0")
  end_if
  if file_exists(rubs$)=0
    file_open_write 1,rubs$
    file_writeln 1,header$
    for i%=1 to 20
      file_writeln 1,str$(i%)+": "
    next i%
    file_close 1
  end_if
  if file_exists(flags$)=0
    file_open_write 1,flags$
    file_writeln 1,header$
    for i%=1 to 10
      file_writeln 1,str$(i%)+": "
    next i%
    file_close 1
  end_if
  if file_exists(base$)=0
    file_open_write 1,base$
    file_writeln 1,header$
    file_close 1
  end_if
  file_open_read 1,rubs$
  file_readln 1,s$
  if s$=header$
    i% = 0
    while file_eof(1)=0
      file_readln 1,s$
      item_add no_m_rub%,s$
      caption no_det_rub%+i%,s$
      caption no_det_rub_f%+i%,s$
      i% = i% + 1
    end_while
  end_if
  file_close 1
  file_open_read 1,flags$
  file_readln 1,s$
  if s$=header$
    i% = 0
    while file_eof(1)=0
      file_readln 1,s$
      item_add no_m_flg%,s$
      caption no_det_flg%+i%,s$
      caption no_det_flg_f%+i%,s$
      i% = i% + 1
    end_while
  end_if
  file_close 1
  gosub load_base
  return
 
load_base:
  file_open_read 1,base$
  file_readln 1,s$
  if s$=header$
    while file_eof(1)=0
      file_readln 1,s$
      gosub nouvelle_ligne
    end_while
  else
    message "Répertoire non reconnu !"
    terminate
  end_if
  file_close 1
  return
 
champ:
  i% = instr(s$,tab$)
  champ$ = left$(s$,i%-1)
  s$ = mid$(s$,i%+1,len(s$)) + tab$
  return
 
choix:
  if aide_flag%=1
    s$ = "Liste des fichiers."+c$+c$
    s$ = s$ + "Par défaut, on voit ici tous les fichiers répertoriés."+c$
    s$ = s$ + "Après utilisation du filtrage (menu Edition), cette liste montre le résultat du filtrage."+c$
    s$ = s$ + "Un clic dans cette liste sélectionne le fichier de la ligne correspondante."+c$
    s$ = s$ + "Les attributs du fichier sélectionné seront affichés à droite."+c$
    s$ = s$ + "la modification des attributs se fait par le menu Edition."+c$
    s$ = s$ + "Le menu Edition permet aussi de supprimer le fichier sélectionné."+c$
    message s$
    goto aide
  end_if
  n_select_ligne% = item_index(no_liste%)
  n_select_ligne_f% = val(item_read$(no_dlist_i%,n_select_ligne%))
  s$ = item_read$(no_dlist_t%,n_select_ligne_f%)
  gosub champ
  caption no_info_fic%,champ$
  clipboard_string_copy champ$
  if file_exists(champ$)=1
    caption no_info_typ%,"Fichier Existant"
  else
    if dir_exists(champ$)=1
      caption no_info_typ%,"Répertoire Existant"
    else
      if instr(champ$,"http://")=1
        caption no_info_typ%,"URL existante"
      else
        caption no_info_typ%,"Fichier, Répertoire ou URL Manquant"
      end_if
    end_if
  end_if
  champ$ = item_read$(no_liste%,n_select_ligne%)
  gosub champ
  caption no_info_lib%,champ$
  text no_lib%,champ$
  champ$ = item_read$(no_flags%,n_select_ligne_f%)
  for i%=1 to 10
      if mid$(champ$,i%,1)="1"
          mark_on no_det_flg%+i%-1
      else
          mark_off no_det_flg%+i%-1
      end_if
  next i%
  champ$ = item_read$(no_rubs%,n_select_ligne_f%)
  for i%=1 to 20
      if mid$(champ$,i%,1)="1"
          mark_on no_det_rub%+i%-1
      else
          mark_off no_det_rub%+i%-1
      end_if
  next i%
  return
 
cmdline:
  if param_number=0
    show 0
    return
  end_if
  for p%=1 to param_number
    s$ = lower$(trim$(param_value$(p%)))
    if len(s$)=0 then return
    file$ = file_extract_name$(s$)
    rep$ = file_extract_path$(s$)
    file_open_append 1,base$
    file_writeln 1,s$+tab$+file$+tab$+def_flags$+tab$+date$+tab$+def_rubs$+tab$
    file_close 1
  next p%
  terminate
 
m_rubriques:
  if aide_flag%=1
    s$ = "Modificaction des rubriques."+c$+c$
    s$ = s$ + "Cette fonction permet de modifier les titres des rubriques."+c$+c$
    s$ = s$ + "ATTENTION: cela change les titres des rubriques pour TOUS les fichiers répertoriés !"+c$
    message s$
    goto aide
  end_if
  hide no_cont_det%
  hide no_cont_flg%
  hide no_cont_flt%
  show no_cont_rub%
  inactive no_liste%
  return

fermer_m_rub:
  if aide_flag%=1
    s$ = "Modificaction des rubriques."+c$+c$
    s$ = s$ + "Ce bouton valide la modification des rubriques."+c$+c$
    s$ = s$ + "Les modifications faites dans les titres des rubriques sont imposées à tous les fichiers."+c$
    message s$
    goto aide
  end_if
  hide no_cont_rub%
  hide no_cont_flg%
  show no_cont_det%
  active no_liste%
  return

select_m_rub:
  if aide_flag%=1
    s$ = "Modificaction des rubriques."+c$+c$
    s$ = s$ + "Un clic dans cette liste sélectionne une rubrique dont le titre pourra être modifié."+c$
    message s$
    goto aide
  end_if
  off_change no_m_r_nom%
  n_select% = item_index(no_m_rub%)
  text no_m_r_nom%,item_read$(no_m_rub%,n_select%)
  on_change no_m_r_nom%,change_nom_rub
  return

clic_nom_rub:
  if aide_flag%=1
    s$ = "Modificaction des rubriques."+c$+c$
    s$ = s$ + "On peut saisir ici le titre de la rubrique sélectionnée dans la liste à gauche."+c$
    message s$
    goto aide
  end_if
  return

change_nom_rub:
  item_delete no_m_rub%,n_select%
  item_insert no_m_rub%,n_select%,text$(no_m_r_nom%)
  caption no_det_rub%+n_select%-1,text$(no_m_r_nom%)
  modif_rubs% = 1
  return
 
m_drapeaux:
  if aide_flag%=1
    s$ = "Modificaction des drapeaux."+c$+c$
    s$ = s$ + "Cette fonction permet de modifier les titres des drapeaux."+c$+c$
    s$ = s$ + "ATTENTION: cela change les titres des drapeaux pour TOUS les fichiers répertoriés !"+c$
    message s$
    goto aide
  end_if
  hide no_cont_det%
  hide no_cont_rub%
  show no_cont_flg%
  hide no_cont_flt%
  inactive no_liste%
  return
 
fermer_m_flg:
  if aide_flag%=1
    s$ = "Modificaction des drapeaux."+c$+c$
    s$ = s$ + "Ce bouton valide la modification des drapeaux."+c$+c$
    s$ = s$ + "Les modifications faites dans les titres des drapeaux sont imposées à tous les fichiers."+c$
    message s$
    goto aide
  end_if
  hide no_cont_flg%
  hide no_cont_rub%
  show no_cont_det%
  active no_liste%
  return

select_m_flg:
  if aide_flag%=1
    s$ = "Modificaction des drapeaux."+c$+c$
    s$ = s$ + "Un clic dans cette liste sélectionne un drapeau dont le titre pourra être modifié."+c$
    message s$
    goto aide
  end_if
  off_change no_m_f_nom%
  n_select% = item_index(no_m_flg%)
  text no_m_f_nom%,item_read$(no_m_flg%,n_select%)
  on_change no_m_f_nom%,change_nom_flg
  return

clic_nom_flg:
  if aide_flag%=1
    s$ = "Modificaction des drapeaux."+c$+c$
    s$ = s$ + "On peut saisir ici le titre du drapeau sélectionné dans la liste à gauche."+c$
    message s$
    goto aide
  end_if
  return

change_nom_flg:
  item_delete no_m_flg%,n_select%
  item_insert no_m_flg%,n_select%,text$(no_m_f_nom%)
  caption no_det_flg%+n_select%-1,text$(no_m_f_nom%)
  modif_flags% = 1
  return
 
m_attributs:
  if aide_flag%=1
    s$ = "Modificaction des attributs."+c$+c$
    s$ = s$ + "Cette fonction permet la modification des attributs du fichier sélectionné."+c$+c$
    s$ = s$ + "On peut modifier les rubriques et/ou les drapeaux affectés à ce fichier"+c$
    s$ = s$ + "Le bouton Annuler laisse les attributs dans leur état d'origine."+c$
    s$ = s$ + "Le bouton Valider remplace les attributs du fichier sélectionné."+c$
    message s$
    goto aide
  end_if
  if n_select_ligne%=0 then return
  hide no_cont_flg%
  hide no_cont_flt%
  show no_cont_rub%
  show no_cont_det%
  active no_cont_det%
  return
 
supprimer_tout:
  if aide_flag%=1
    s$ = "Suppression de TOUS les fichiers."+c$+c$
    s$ = s$ + "Cette fonction permet d'effectuer la suppression de TOUS les fichiers listés à gauche."+c$+c$
    s$ = s$ + "Par défaut, il s'agit de l'ensemble des fichiers archivés."+c$
    s$ = s$ + "Si un filtrage a été effectué, cette fonction supprime le résultat du filtrage,"+c$
    s$ = s$ + "  en laissant tous les fichiers non sélectionnés intacts."+c$+c$
    s$ = s$ + "ATTENTION ! Cette fonction est irréversible et supprime les fichiers du répertoire !"+c$
    message s$
    goto aide
  end_if
  if count(no_dlist_i%)=0 then return
  s$ = "Voulez-vous vraiment supprimer tous ces fichiers ?"
  if message_confirmation_yes_no(s$)<>1 then return
  s$ = "ATTENTION ! Cette suppression est définitive !" + c$ + c$
  s$ = s$ + "Voulez-vous vraiment procéder à la suppression ?"
  if message_confirmation_yes_no(s$)<>1 then return
  for i%=count(no_dlist_i%) to 1 step -1
    item_delete no_dlist_t%,val(item_read$(no_dlist_i%,i%))
  next i%
  file_open_write 1,base$
  file_writeln 1,header$
  if count(no_dlist_t%)>0
    for i%=1 to count(no_dlist_t%)
      file_writeln 1,item_read$(no_dlist_t%,i%)
    next i%
  end_if
  file_close 1
  clear no_liste% : clear no_dlist%
  clear no_liste_t% : clear no_dlist_i%
  clear no_flags%
  clear no_date%
  clear no_rubs%
  gosub load_base
  modif% = 0
  return
 
supprimer:
  if aide_flag%=1
    s$ = "Suppression du fichiers sélectionné."+c$+c$
    s$ = s$ + "Cette fonction permet de supprimer le fichier sélectionné dans la liste à gauche."+c$+c$
    s$ = s$ + "ATTENTION ! Cette fonction est irréversible et supprime le fichier du répertoire !"+c$
    message s$
    goto aide
  end_if
  if n_select_ligne%=0 then return
  hide no_cont_flg%
  hide no_cont_flt%
  show no_cont_rub%
  show no_cont_det%
  s$ = "Voulez-vous vraiment supprimer ce fichier:" + c$ + c$
  s$ = s$ + item_read$(no_liste_t%,n_select_ligne_f%)
  if message_confirmation_yes_no(s$)=1
    item_delete no_dlist_t%,n_select_ligne_f%
    file_open_write 1,base$
    file_writeln 1,header$
    for i%=1 to count(no_dlist_t%)
      file_writeln 1,item_read$(no_dlist_t%,i%)
    next i%
    file_close 1
    clear no_liste% : clear no_dlist%
    clear no_liste_t% : clear no_dlist_i%
    clear no_flags%
    clear no_date%
    clear no_rubs%
    gosub load_base
    modif% = 0
  end_if
  return
 
clic_titre:
  if aide_flag%=1
    s$ = "Modification des attributs."+c$+c$
    s$ = s$ + "On peut saisir le titre du fichier séléctionné dans la liste à gauche."+c$
    s$ = s$ + "Le nouveau titre sera mis en place par le bouton Valider."+c$
    message s$
    goto aide
  end_if
  return
 
valider_ligne:
  if aide_flag%=1
    s$ = "Modification des attributs."+c$+c$
    s$ = s$ + "Cette fonction valide les modifications des attributs"+c$
    s$ = s$ + "du fichier sélectionné dans la liste à gauche,"+c$
    s$ = s$ + "en remplaçant ses attributs par ceux affichés dans la partie droite."+c$
    message s$
    goto aide
  end_if
  inactive no_cont_det%
  modif% = 1
  mod_rubriques$ = ""
  for i%=1 to 20
      mod_rubriques$ = mod_rubriques$ + str$(checked(no_det_rub%+i%-1))
  next i%
  mod_flags$ = ""
  for i%=1 to 10
      mod_flags$ = mod_flags$ + str$(checked(no_det_flg%+i%-1))
  next i%
  item_delete no_rubs%, n_select_ligne_f%
  item_insert no_rubs%, n_select_ligne_f%, mod_rubriques$
  item_delete no_flags%, n_select_ligne_f%
  item_insert no_flags%, n_select_ligne_f%, mod_flags$

  item_delete no_liste%,n_select_ligne%
  item_insert no_liste%,n_select_ligne%,text$(no_lib%)
  item_delete no_liste_t%,n_select_ligne_f%
  item_insert no_liste_t%,n_select_ligne_f%,text$(no_lib%)

  s$ = item_read$(no_dlist_t%,n_select_ligne_f%)
  gosub champ
  s$ = champ$ + tab$
  s$ = s$ + item_read$(no_liste%,n_select_ligne%) + tab$
  s$ = s$ + item_read$(no_flags%,n_select_ligne_f%) + tab$
  s$ = s$ + item_read$(no_date%,n_select_ligne_f%) + tab$
  s$ = s$ + item_read$(no_rubs%,n_select_ligne_f%) + tab$
  item_delete no_dlist%,n_select_ligne%
  item_insert no_dlist%,n_select_ligne%,s$
  item_delete no_dlist_t%,n_select_ligne_f%
  item_insert no_dlist_t%,n_select_ligne_f%,s$

  return

annuler_ligne:
  if aide_flag%=1
    s$ = "Modification des attributs."+c$+c$
    s$ = s$ + "Cette fonction annule les modifications des attributs"+c$
    s$ = s$ + "du fichier sélectionné dans la liste à gauche."+c$
    s$ = s$ + "Ses attributs resteront inchangés."+c$
    message s$
    goto aide
  end_if
  inactive no_cont_det%
  return

filtrer:
  on_click no_ann_flt%,annuler_filtrage
  on_click no_val_flt%,valider_filtrage
  if aide_flag%=1
    s$ = "Filtrage des fichiers."+c$+c$
    s$ = s$ + "Cette fonction permet de filtrer la liste des fichiers selon certains critères."+c$+c$
    s$ = s$ + "Les critères comprennent les rubriques et les drapeaux,"+c$
    s$ = s$ + "mais aussi une chaîne de caractères dont la présence sera cherchée dans le titre des fichiers."+c$
    s$ = s$ + "Un fichier sera sélectionné si au moins un des critères est vrai (OU logique)."+c$
    message s$
    goto aide
  end_if
  hide no_cont_det%
  hide no_cont_rub%
  hide no_cont_flg%
  show no_cont_flt%
  return
 
defaut:
  if aide_flag%=1
    s$ = "Attributs par défaut."+c$+c$
    s$ = s$ + "Cette fonction permet de définir les attributs par défaut."+c$+c$
    s$ = s$ + "Cela concerne le ajouts de fichiers dans le répertoire,"+c$
    s$ = s$ + "Ils seront répertoriés avec les attributs par défaut."+c$
    s$ = s$ + "Ces attributs peuvent être changés par la suite (menu Edition)."+c$
    s$ = s$ + "Initialement, les attributs par défaut sont <aucune rubrique> et <aucun drapeau>."+c$
    message s$
    goto aide
  end_if
  hide no_cont_det%
  hide no_cont_rub%
  hide no_cont_flg%
  on_click no_ann_flt%,annuler_defaut
  on_click no_val_flt%,valider_defaut
  caption no_cont_flt%,"Attributs par défaut"
  show no_cont_flt%
  return

annuler_defaut:
  if aide_flag%=1
    s$ = "Attributs par défaut."+c$+c$
    s$ = s$ + "Ce bouton annule les modifications des attributs par défaut."+c$+c$
    s$ = s$ + "Les attributs par défaut resteront dans leur état d'origine,"+c$
    message s$
    goto aide
  end_if
  hide no_cont_flt%
  on_click no_ann_flt%,annuler_filtrage
  on_click no_val_flt%,valider_filtrage
  caption no_cont_flt%,"Filtrage par attributs"
  show no_cont_det%
  return

valider_defaut:
  if aide_flag%=1
    s$ = "Attributs par défaut."+c$+c$
    s$ = s$ + "Ce bouton valide les modifications des attributs par défaut."+c$+c$
    s$ = s$ + "Les attributs par défaut seront remplacés par ceux affichés à droite,"+c$
    message s$
    goto aide
  end_if
  s$ = ""
  for i%=1 to 10
    s$ = s$ + str$(checked(no_det_flg_f%+i%-1))
  next i%
  s$ = s$ + tab$
  for i%=1 to 20
    s$ = s$ + str$(checked(no_det_rub_f%+i%-1))
  next i%
  s$ = s$ + tab$
  file_open_write 1,defaut$
  file_writeln 1,header$
  file_writeln 1,s$
  file_close 1
  hide no_cont_flt%
  on_click no_ann_flt%,annuler_filtrage
  on_click no_val_flt%,valider_filtrage
  caption no_cont_flt%,"Filtrage par attributs"
  show no_cont_det%
  return

tout_filtrage:
  if aide_flag%=1
    s$ = "Sélection des attributs."+c$+c$
    s$ = s$ + "Ce bouton sélection TOUS les attributs."+c$+c$
    s$ = s$ + "Cette fonction est utile en filtrage pour retrouver la liste de tous les fichiers,"+c$
    message s$
    goto aide
  end_if
  for i%=1 to 20
    mark_on no_det_rub_f%+i%-1
  next i%
  for i%=1 to 10
    mark_on no_det_flg_f%+i%-1
  next i%
  text no_lib_f%,"*"
  return
 
rien_filtrage:
  if aide_flag%=1
    s$ = "Sélection des attributs."+c$+c$
    s$ = s$ + "Ce bouton dé-sélection TOUS les attributs."+c$+c$
    s$ = s$ + "Cette fonction est utile en filtrage pour retrouver une liste vierge des attributs,"+c$
    message s$
    goto aide
  end_if
  for i%=1 to 20
    mark_off no_det_rub_f%+i%-1
  next i%
  for i%=1 to 10
    mark_off no_det_flg_f%+i%-1
  next i%
  text no_lib_f%,""
  return

annuler_filtrage:
  if aide_flag%=1
    s$ = "Filtrage des fichiers."+c$+c$
    s$ = s$ + "Ce bouton annule le filtrage."+c$+c$
    s$ = s$ + "La liste de gauche restera inchangée,"+c$
    message s$
    goto aide
  end_if
  hide no_cont_flt%
  show no_cont_det%
  return
 
valider_filtrage:
  if aide_flag%=1
    s$ = "Filtrage des fichiers."+c$+c$
    s$ = s$ + "Ce bouton valide le filtrage par les critères choisis."+c$+c$
    s$ = s$ + "La liste de gauche contiendra les fichiers"+c$
    s$ = s$ + "  correspondant aux attributs à droite,"+c$
    message s$
    goto aide
  end_if
  clear no_liste%
  clear no_dlist_i%
  for i%=1 to count(no_dlist_t%)
    trouve% = 0
    champ$ = item_read$(no_rubs%,i%)
    for j%=1 to 20
      if checked(no_det_rub_f%+j%-1)=1
        if mid$(champ$,j%,1)="1" then trouve%=1
      end_if
    next j%
    champ$ = item_read$(no_flags%,i%)
    for j%=1 to 10
      if checked(no_det_flg_f%+j%-1)=1
        if mid$(champ$,j%,1)="1" then trouve%=1
      end_if
    next j%
    s$ = trim$(text$(no_lib_f%))
    if len(s$)>0
      if s$="*"
        trouve% = 1
      else
        if instr(item_read$(no_dlist%,i%),s$)>0 then trouve%=1
      end_if
    end_if
    if trouve%=1
      item_add no_liste%,item_read$(no_liste_t%,i%)
      item_add no_dlist_i%,str$(i%)
    end_if
  next i%
  hide no_cont_flt%
  show no_cont_det%
  return

a_propos:
  if aide_flag%=1
    s$ = "A-propos."+c$+c$
    s$ = s$ + "Cette fonction affiche des informations sur le programme."+c$+c$
    s$ = s$ + "Les informations comprennent date, version et auteur."+c$
    s$ = s$ + "Il y a aussi un bouton qui conduit vers le forum Panoramic."+c$
    message s$
    goto aide
  end_if
  s$ = "REPERTOIRE V1.06" +c$+c$
  s$ = s$ + "Auteur: Klaus" + c$+c$
  s$ = s$ + "Réalisé en Panoramic" +c$
  s$ = s$ + "le 13 Février 2012"
  caption no_a_propos%+1,s$
  show no_a_propos%
  return
 
a_propos_close:
  hide no_a_propos%
  return

a_propos_site:
  if aide_flag%=1
    s$ = "A-propos."+c$+c$
    s$ = s$ + "Ce bouton ouvre le forum Panoramic sans l'exporateur par défaut."+c$+c$
    s$ = s$ + "Cette page contient aussi un lien vers le site officiel."+c$
    s$ = s$ + "Une version stable de Panoramic peut être tétéchargée sur le site officiel,"+c$
    s$ = s$ + "  et des versions instantanées sont diponibles dans le forum,"+c$
    s$ = s$ + "  dans le fil de discussion <Ce qui est en cours>."
    message s$
    goto aide
  end_if
  execute "http://panoramic.1fr1.net/"
  return
 
aide_aide:
  if aide_flag%=1
    s$ = "Aide."+c$+c$
    s$ = s$ + "Cette fonction affiche une aide sur le prochain objet cliqué."+c$
    message s$
  end_if
aide:
  aide_flag% = 1 - aide_flag%
  if aide_flag% =1
    show no_aide%
    to_foreground no_a_propos%
  else
    hide no_aide%
  end_if
  return
 
executer:
  if aide_flag%=1
    s$ = "Exécuter un fichier."+c$+c$
    s$ = s$ + "Ce bouton essaie d'ouvrir le fichier sélectionné avec son application par défaut."+c$+c$
    s$ = s$ + "Ainsi, un fichier TXT sera ouvert dans Notepad,"+c$
    s$ = s$ + "  un fichier XLS sera ouvert avec Excel, etc."+c$
    s$ = s$ + "Le résultat est identique à un double-clic sur le fichier,"+c$
    message s$
    goto aide
  end_if
  if n_select_ligne%=0 then return
  s$ = item_read$(no_dlist_t%,n_select_ligne_f%)
  gosub champ
' laisse la fenêtre DOS pendant l'exécution du programme lancé
'  execute "cmd /C "+chr$(34)+champ$+chr$(34)
' ferme la fenêtre DOS dès que le programme est lancé
  if file_exists(champ$)=1
    execute "cmd /c start "+chr$(34)+chr$(34)+" /b "+chr$(34)+champ$+chr$(34)
  else
    if dir_exists(champ$)=1
      execute "cmd /c start "+chr$(34)+chr$(34)+" /b "+chr$(34)+champ$+chr$(34)
    else
      if instr(champ$,"http://")=1
        execute "cmd /c start "+chr$(34)+chr$(34)+" /b "+chr$(34)+champ$+chr$(34)
      else
        message "Attention ! Ce fichier, répertoire ou URL n'existe plus !"
      end_if
    end_if
  end_if
  return
 
nouveau_fichier:
  if aide_flag%=1
    s$ = "Ajouter un nouveau fichier."+c$+c$
    s$ = s$ + "Cette fonction ajoute un nouveau fichier dans le réperotire."+c$+c$
    s$ = s$ + "Ce fichier sera créé avec les attributs par défaut."+c$
    message s$
    goto aide
  end_if
  s$ = file_name$(no_open_dialog%)
  if s$="_" then return
  champ$ = file_extract_name$(s$)
  s$ = s$ + tab$ + champ$ + tab$ + def_flags$ + tab$ + date$ + tab$ + def_rubs$ + tab$
  gosub nouvelle_ligne
  return

nouveau_URL:
  if aide_flag%=1
    s$ = "Ajouter une nouvelle URL."+c$+c$
    s$ = s$ + "Cette fonction ajoute une nouvelle URL dans le réperotire."+c$+c$
    s$ = s$ + "Cette URL sera créée avec les attributs par défaut."+c$
    s$ = s$ + "Elle sera ouverte dans l'exporateur par défaut (menu fichiers/exécuter)."+c$
    message s$
    goto aide
  end_if
  s$ = message_input$("Nouvelle URL","Entrez ici la nouvelle URL:","www.")
  if s$="www." then return
  s$ = s$ + tab$ + s$ + tab$ + def_flags$ + tab$ + date$ + tab$ + def_rubs$ + tab$
  gosub nouvelle_ligne
  return

remplacer_rep:
  if aide_flag%=1
    s$ = "Remplacer par son répertoire."+c$+c$
    s$ = s$ + "Cette fonction remplace un fichier par son répertoire."+c$+c$
    s$ = s$ + "Le nom du fichier sera simplement supprime.."+c$
    s$ = s$ + "Son répertoire (chemin d'accès) reste mémorisé seul.."+c$
    s$ = s$ + "Les attributs restent inchangés.."+c$
    message s$
    goto aide
  end_if
  if n_select_ligne%=0 then return
  if message_confirmation_yes_no("Voulez-vous vraiment garder uniquement de chemin d'accès ?")=1
    s$ = item_read$(no_dlist_t%,n_select_ligne_f%)
    gosub champ
    champ$ = file_extract_path$(champ$)
    s$ = champ$ + tab$ + s$
    item_delete no_dlist_t%,n_select_ligne_f%
    item_insert no_dlist_t%,n_select_ligne_f%,s$
    item_delete no_dlist%,n_select_ligne_f%
    item_insert no_dlist%,n_select_ligne_f%,s$
    caption no_info_fic%,champ$
    if file_exists(champ$)=1
      caption no_info_typ%,"Fichier Existant"
    else
      if dir_exists(champ$)=1
        caption no_info_typ%,"Répertoire Existant"
      else
        if instr(champ$,"http://")=1
          caption no_info_typ%,"URL existante"
        else
          message "Fichier, Répertoire ou URL Manquant"
        end_if
      end_if
    end_if
    modif% = 1
  end_if
  return
 
nouvelle_ligne:
  item_add no_dlist%,s$        : ' ligne complète
  item_add no_dlist_t%,s$      : ' ligne complète
  i% = instr(s$,tab$)
  s$ = mid$(s$,i%+1,len(s$))    : ' éliminer le chemin
  gosub champ
  item_add no_liste%,champ$    : ' libellé
  item_add no_liste_t%,champ$  : ' libellé
  item_add no_dlist_i%,str$(count(no_liste%))  : ' indexe
  gosub champ
  item_add no_flags%,champ$    : ' flags
  for i%=1 to 10
    if mid$(champ$,i%,1)="1"
      mark_on no_det_flg%+i%-1
    else
      mark_off no_det_flg%+i%-1
    end_if
  next i%
  gosub champ
  item_add no_date%,champ$    : ' date
  gosub champ
  item_add no_rubs%, champ$    : ' rubriques
  for i%=1 to 20
    if mid$(champ$,i%,1)="1"
      mark_on no_det_rub%+i%-1
    else
      mark_off no_det_rub%+i%-1
    end_if
  next i%
  modif% = 1
  return

sortir:
  if aide_flag%=1
    s$ = "Sortir."+c$+c$
    s$ = s$ + "Ce bouton sort de l'application Répertoire."+c$+c$
    s$ = s$ + "Si des modifications ont été appliquées, elles seront sauvegardées sur disque."+c$
    s$ = s$ + "Ceci concerne, séparément:"+c$
    s$ = s$ + "  - la liste des fichiers répertoriés avec leurs attributs"+c$
    s$ = s$ + "  - la liste des intitulés des rubriques"
    s$ = s$ + "  - la liste des intitulés des drapeaux"
    s$ = s$ + "  - les attributs par défaut"
    message s$
    goto aide
  end_if
  if modif%=1
    file_open_write 1,base$
    file_writeln 1,header$
    for i%=1 to count(no_dlist_t%)
      file_writeln 1,item_read$(no_dlist_t%,i%)
    next i%
    file_close 1
  end_if
  if modif_rubs%=1
    file_open_write 1,rubs$
    file_writeln 1,header$
    for i%=1 to count(no_m_rub%)
      file_writeln 1,item_read$(no_m_rub%,i%)
    next i%
    file_close 1
  end_if
  if modif_flags%=1
    file_open_write 1,flags$
    file_writeln 1,header$
    for i%=1 to count(no_m_flg%)
      file_writeln 1,item_read$(no_m_flg%,i%)
    next i%
    file_close 1
  end_if
  terminate

Et ici un exemple du fichier rubriques.txt:
Code:
=== Répertoire ===
1: Courrier privé
2: Factures
3: Documentations générales
4: Sources Panoramic
5: Modules #INCLUDE
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:

et du fichier flags.txt:
Code:
=== Répertoire ===
1: Urgent
2: à faire
3: à lire
4:
5:
6:
7:
8:
9:
10:


Dernière édition par Klaus le Jeu 16 Fév 2012 - 19:04, édité 14 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

Outil d'archivage "desk-top" Empty
MessageSujet: Re: Outil d'archivage "desk-top"   Outil d'archivage "desk-top" EmptySam 11 Fév 2012 - 0:47

C'est génial ton programme ! Mais comment il t'arrive d'avoir des idées comme ça, c'est fou Wink
Tu est vraiment un inventeur mais dans le monde des programmes Wink
Je suis sûr que si tu inventais un grand jeu en delphi tu aurais ton nom dans "l'histoire internationale des jeux" comme celui qui a inventé "Civilisation" ou encore ceux qui ont fait "Quake".
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Outil d'archivage "desk-top" Empty
MessageSujet: Re: Outil d'archivage "desk-top"   Outil d'archivage "desk-top" EmptySam 11 Fév 2012 - 0:54

Oh, je suis beaucoup plus modeste que ça. Comme j'aime bien programmer, je me fais tout le temps de petis outils pour me faciliter la vie, et celui-ci en est un.

J'aime bien jouer à l'ordinateur, mais à des jeux de réflexion, genre différentes variantes de patience, et un jeu Alchemy de PopCap Software. Un jeu génial, loin d'être simple. Or, quand on perd un niveau, il faut tout recommencer à zéro ! Frustrant. Je me suis donc là encore fait un outil permettant de sauvegarder chaque niveau de jeu, séparément selon les 3 degrés de difficulté. Et je peux ainsi restaurer à tout moment le niveau qui m'intéresse et repartir de là. Ce programme, pour m'amuser, je l'ai fait en Delphi, mais j'aurais tout aussi bien pu le faire en Panoramic.

En réalité, je me pose souvent des petits défis techniques à moi-même, et je prends plaisir à en trouver la solution. Chacun s'amuse comme il peut. C'est pourquoi je relève si volontiers les problèmes techniques qui se présentent sur le forum - c'est très varié et très enrichissant pour moi.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

Outil d'archivage "desk-top" Empty
MessageSujet: Re: Outil d'archivage "desk-top"   Outil d'archivage "desk-top" EmptySam 11 Fév 2012 - 1:42

Moi je trouve ça génial de se relever des défis techniques ou intellectuels, c'est gratifiant en plus quand on y arrive, on se dit, c'est moi qui l'ai fait, ou j'y suis finalement arrivé^^ C'est cool comme sensation Wink
Moi mon défi c'est de me faire des jeux, seulement je commence depuis peu, je n'avais pas le bagage suffisant avant, car la programmation de jeux c'est un monde plein de défis et difficile quand on y entre sans avoir rien connu du genre, comme moi, sauf en tant qu'utilisateur.
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Outil d'archivage "desk-top" Empty
MessageSujet: Re: Outil d'archivage "desk-top"   Outil d'archivage "desk-top" EmptySam 11 Fév 2012 - 9:33

J'ai mis en ligne dans le premier post, une nouvelle version de mon programme REPERTOIRE. On peut maintenant lui passer plusieurs fichiers en une seule opération, en selectionnant plusisuer fichiers voire tout le contenu d'un répertoire, puis en faisant glisser le tout sur son icône, tout comme si l'on sélectionnait plusieurs fichiers pour les faire glisser dans la poubelle.

EDIT

Il y a maintenant un fenêtre A-propos avec un lien vers le forum...

EDIT

Et voici maintenant une ligne Exécuter dans le menu Fichiers qui permet de lancer le fichier sélectionné avec son programme d'ouverture par défaut: Notepad pour TXT, Panoramic pour BAS (si Panoramic est installé par la procédure d'installation), Excel pour XLS etc. Dans certains cas, une petite fenêtre DOS apparaît temporairement, mais disparaît toute seule.


Dernière édition par Klaus le Sam 11 Fév 2012 - 11:03, édité 2 fois
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

Outil d'archivage "desk-top" Empty
MessageSujet: Re: Outil d'archivage "desk-top"   Outil d'archivage "desk-top" EmptySam 11 Fév 2012 - 9:49

Ton programme va devenir le génie des fichiers et dossier, ça fera une belle application ça !
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Outil d'archivage "desk-top" Empty
MessageSujet: Re: Outil d'archivage "desk-top"   Outil d'archivage "desk-top" EmptySam 11 Fév 2012 - 19:25

J'ai adapté le source légèrement pour que la commende Exécuter du ménu Fichiers ferme la fenêtre DOS parasite dès que le programme choisi est lancé sans attendre sa terminaison. C'est moins gênant comme ça.

Qu'est-ce que vous pensez de la commande Exécuter ?
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
exdragon

exdragon


Nombre de messages : 601
Date d'inscription : 05/01/2012

Outil d'archivage "desk-top" Empty
MessageSujet: Re: Outil d'archivage "desk-top"   Outil d'archivage "desk-top" EmptySam 11 Fév 2012 - 19:27

la commande executer ça me fait penser à Feu PCTOOLS Wink
c'était une de mes commandes préférées, donc dans ton programme c'est cool !!!
Revenir en haut Aller en bas
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Outil d'archivage "desk-top" Empty
MessageSujet: Re: Outil d'archivage "desk-top"   Outil d'archivage "desk-top" EmptySam 11 Fév 2012 - 19:40

Merci ! J'ai imaginé cela pour avoir un semblant d'aperçu - visualiser rapidement à quoi correspond une ligne répertoriée sans avoir à chercher le fichier dans un explorateur de fichiers.

EDIT

Ca marche même avec des répertoires ! On peut glisser un répertoire sur l'icône du programme. Ce répertoire sera alors mémorisé et on peut le configurer comme n'importe quel fichier (intitulé, rubriques et drapeaux). Mais on peut aussi l'exécuter - il s'ouvrira dans l'explorateur de fichiers ! Pratique !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Outil d'archivage "desk-top" Empty
MessageSujet: Re: Outil d'archivage "desk-top"   Outil d'archivage "desk-top" EmptySam 11 Fév 2012 - 23:16

Voilà une nouvelle version V1.02 du 11/2/2012.

Nouveauté:
Dans le menu Edition, il y a une nouvelle ligne Attributs par défaut.

Cette fonction permet de présélectionner les rubriques et drapeaux à installer lors de l'ajout d'un fichier au répertoire. Ces options resteront en viqueur jusqu'au prochain changement des attributs par défaut.

Ceci est particulièrement pratique pour l'ajout d'une série de fichiers similaires (une collection de sources, par exemple): il ne reste plus que l'intitulé à changer, éventuellement !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Outil d'archivage "desk-top" Empty
MessageSujet: Re: Outil d'archivage "desk-top"   Outil d'archivage "desk-top" EmptyDim 12 Fév 2012 - 2:54

Voici une nouvelle version V1.03 du 12/2/2012.

Nouveautés:
- suppression du fichier sélectionné
- suppression de TOUS les fichiers affichés

Ces nouvelles fonctions sont disponible par le menu Edition.

La suppression du fichier séléctionné n'affecte qu'un seul fichier: celui qui a été sélectionné par un clic dans la liste à gauche.

La suppression de TOUS les fichiers affichés requiert une double confirmation car son action peut effacer beaucoup de choses. Une fois les deux validations obtenues, le programme efface tous les fichiers qui sont affichés dans la liste de gauche. Si aucun filtrage n'a eu lieu, ceci efface complètement toute la base. Si l'on a procédé à un filtrage, la liste de gauche représente les fichiers qui correspondent au dernier critère. Ce seront alors ces fichiers qui seront supprimés, sans toucher au reste de la base.

Dans tous les cas, les libellés des attributs et drapeaux ainsi que les attributs par défaut restent inchangés.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Outil d'archivage "desk-top" Empty
MessageSujet: Re: Outil d'archivage "desk-top"   Outil d'archivage "desk-top" EmptyDim 12 Fév 2012 - 16:01

Voici une nouvelle version V1.04 du 12/2/2012.

Nouveautés:
- un système d'aide complet

La fonction Aide du menu affiche un point d'interrogation en haut à droite de la fenêtre, et le prochain clic sur une fonction du menu, sur un bouton ou un champ affiche une aide cor l'objet cliqué.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Outil d'archivage "desk-top" Empty
MessageSujet: Re: Outil d'archivage "desk-top"   Outil d'archivage "desk-top" EmptyLun 13 Fév 2012 - 0:05

Voici une nouvelle version V1.05 du 12/2/2012.

Nouveautés:
dans le menu Fichiers, il y a deux nouvelles fonctions:
- Nouveau fichier --> ajoute un nouveau fichier le répertoire, sélectionné par un dialogue d'ouverture de fichiers
- Nouvelle URL --> ajoute une ligne dans le répertoire avec une URL. Cette url est entrée dans une fenêtre de dialogue

Ces fonctions complètent les fonctions. Le fichier ajouté interactivement est traité exactement comme ceux ajoutés par glissage, et la URL est traitée comme un fichier symbolique. La fonction Exécuter du menu Fichiers ouvre une URL dans une nouvelle fenêtre ou un nouvel onglet de l'explorateur par défaut.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Klaus

Klaus


Nombre de messages : 12293
Age : 74
Localisation : Ile de France
Date d'inscription : 29/12/2009

Outil d'archivage "desk-top" Empty
MessageSujet: Re: Outil d'archivage "desk-top"   Outil d'archivage "desk-top" EmptyJeu 16 Fév 2012 - 19:07

Voici une nouvelle version V1.06 du 13/2/2012.

Nouveautés:
dans le menu Editions, il y a une nouvelle fonction:
- "Remplacer par son répertoire"

Ceci permet de remplacer la cible d'une ligne par le répertoire du fichier ciblé. Cela permet ainsi, par la commande Exécuter, d'ouvrir ce répertoire dans l'explorateur de fichiers.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





Outil d'archivage "desk-top" Empty
MessageSujet: Re: Outil d'archivage "desk-top"   Outil d'archivage "desk-top" Empty

Revenir en haut Aller en bas
 
Outil d'archivage "desk-top"
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Outil de distribution protégée de logiciels
» Outil de création d'info-bulles
» Un outil de blockage de pop-up et pop-under
» Outil de comptage de fichiers et lignes source
» Outil de surveillance de l'activité WEB

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: