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.
FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Emptypar Pedro Aujourd'hui à 8:08

» Un autre pense-bête...
FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 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
-38%
Le deal à ne pas rater :
Ecran PC gaming 23,8″ – ACER KG241Y P3bip à 99,99€
99.99 € 159.99 €
Voir le deal

 

 FILE_FIND: Arborescence des répertoires dans un mémo

Aller en bas 
+2
papydall
Klaus
6 participants
Aller à la page : Précédent  1, 2
AuteurMessage
Klaus

Klaus


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

FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Empty
MessageSujet: Re: FILE_FIND: Arborescence des répertoires dans un mémo   FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 EmptySam 2 Juin 2012 - 19:57

Eh bien, je suis passé à la suite. Mais comme Panoramic ne sait pas (encore ?) lire les propriétés d'un fichier ou d'un répertoire, j'ai fait une mini-dll FileInfo.dll qu'il faut charger dans mon WebDav
Site: http://www.mydrive.ch/
Identifiant: panoramic@klausgunther
Mot de passe: panoramic123
Dossier; DLLs
Fichier: FileInfo.dll

Il faut mettre cette DLL dans le même répertoire que le programme ci-après:
Code:

label labels : gosub labels
gosub constantes
gosub variables
gosub form0
gosub GUI
gosub initialisations

end


labels:
  label constantes, variables
  label form0, GUI, initialisations
  label folder, info
  label iniloop, ini1
  return

constantes:
  dim maxi% : maxi% = 5000
  dim indent$ : indent$ = string$(100,"-")
  dim dll$ : dll$ = "FileInfo.dll"
  return

variables:
  dim no%, no1%, no_rep%, no_tree%, depth%, ptr%, f$, f1$, i%, d$
  dim cnt%(maxi%), dir$(maxi%)
  dim no_wait%, n_file%, n_folder%, rep$, a%, dat$, att$, batt$
  return

form0:
  caption 0,"Tree-View"
  width 0,1200
  height 0,800
  return

GUI:
  ' invisible elements
  no% = no% + 1 : open_dialog no%

  ' sample application program objects
  no% = no% + 1 : container no% : no1% = no% : top no%,10 : left no%,10
    width no%,950 : height no%,50 : caption no%,"Select folder"
  no% = no% + 1 : edit no% : parent no%,no1% : no_rep% = no%
    top no%,20 : left no%,10 : width no%,860
  no% = no% + 1 : button no% : parent no%,no1% : top no%,17 : left no%,880
    width no%, 50 : caption no%,"Start" : on_click no%,folder

  ' treeview objects
  no% = no% + 1 : container no% : no1% = no% : top no%,80 : left no%,10
    width no%,900 : height no%,650 : caption no%,"Folder tree"
  no% = no% + 1 : list no% : parent no%,no1% : no_tree% = no%
    top no%,20 : left no%,10 : width no%,880 : height no%,600
    font_name no%,"Courier"

  ' function objects
  no% = no% + 1 : container no% : no1% = no% : top no%,80 : left no%,910
    width no%,250 : height no%,650 : caption no%,"Functions"

  ' message d'attente
  no% = no% + 1 : form no% : hide no% : no_wait% = no% : inactive no%
    top no%,300 : left no%,300 : height no%,150 : width no%,300
    caption no%,"Traitement en cours..."
  no% = no% + 1 : alpha no% : parent no%,no_wait% : top no%,40 : left no%,10
    caption no%,"Veuillez patienter..." : font_color no%,255,0,0
    font_bold no% : font_italic no% : font_size no%,16

  return

initialisations:
  dll_on dll$
  batt$ = string$(7," ")
  return

folder:
  inactive 0
  show no_wait%
  pause 1
  clear no_tree%
  n_file% = 0 : n_folder% = 0
  f$ = text$(no_rep%)
  if f$="" then f$ = dir_current$
  if dir_exists(f$)=0 then f$ = dir_current$
  dir_change f$
  item_add no_tree%,"Tree "+chr$(34)+f$+chr$(34)
  rep$ = f$
  depth% = 0
  f$ = file_find_first$
  dir$(0) = f$
  cnt%(0) = 0
iniloop:
  if f$="_"
    if depth%>0
      depth% = depth% - 1
      file_find_close
      dir_change ".."
      f$ = file_find_first$
      if cnt%(depth%)>0
        for i%=1 to cnt%(depth%)
          f$ = file_find_next$
        next i%
      end_if
      goto iniloop
    else
      goto ini1
    end_if
  end_if
  cnt%(depth%) = cnt%(depth%) + 1
  if dir_exists(f$)=1
    depth% = depth% + 1
    f1$ = "D "+left$(indent$,depth%)+f$
    item_add no_tree%,f1$
    gosub info
    n_folder% = n_folder% + 1
    cnt%(depth%) = 0
    file_find_close
    dir_change f$+"\"
    dir$(depth%) = f$+"\"
    f$ = file_find_first$
  else
    f1$ = "  "+left$(indent$,depth%)+f$
    item_add no_tree%,f1$
    gosub info
    n_file% = n_file% + 1
    f$ = file_find_next$
  end_if
  goto iniloop
ini1:
  file_find_close
  item_add no_tree%,str$(n_folder%)+" folders and "+str$(n_file%)+" files in tree "+chr$(34)+rep$+chr$(34)
  hide no_wait%
  active 0
  to_foreground 0
  return
 
info:
  f1$ = rep$
  if right$(f1$,1)<>"\" then f1$ = f1$ + "\"
  if depth%>0
    for i%=1 to depth%
      f1$ = f1$ + dir$(i%)
      if right$(f1$,1)<>"\" then f1$ = f1$ + "\"
    next i%
  end_if
  f1$ = f1$ + f$
  att$ = ""
  a% = dll_call1("GetFileAttributes",adr(f1$))
  if a%=-1
'    item_add no_tree%,f1$
    a% = 16
  end_if
  if bin_and(a%,1)>0 then att$ = att$ + "R"
  if bin_and(a%,2)>0 then att$ = att$ + "H"
  if bin_and(a%,4)>0 then att$ = att$ + "S"
  if bin_and(a%,16)>0 then att$ = att$ + "D"
  if bin_and(a%,32)>0 then att$ = att$ + "A"
  att$ = att$ + string$(5," ")
  att$ = left$(att$,5)
  if (bin_and(a%,128)=0) and (bin_and(a%,16)=0)
    dat$ = string$(255," ")
    i% = dll_call2("GetFileDate",adr(f1$),adr(dat$))
    item_add no_tree%,"  "+left$(batt$,depth%)+str$(a%)+"="+att$+"created at "+dat$
  else
    item_add no_tree%,"  "+left$(batt$,depth%)+str$(a%)+"="+att$
  end_if
  return

Et on a ainsi, pour chaque fichier, sa date et son heure de création ainsi que ses attributs, et les attributs pour chaque répertoire.

La DLL contient 2 fonctions extrèmement simples:

att% = dll_call1("GetFileAttributes",adr(fichier$))
retourne les attributs codés de la manière suivante:
if bin_and(a%,1)>0 then ... Read-only
if bin_and(att%, 2)>0 then ... Hidden
if bin_and(att%, 4)>0 then ... System
if bin_and(att%, Cool>0 then ... Volume ID : ' désolé. le smiley s'affiche à la place d'un 8 !
if bin_and(att%, 16)>0 then ... Directory
if bin_and(att%, 32)>0 then ... Archive
if bin_and(att%, 64)>0 then ... Link


dat$ = string$(255," ")
i% = dll_call2("GetFileDate",adr(f1$),adr(dat$))

retourne la date et l'heure de création

D'ailleurs, pour les amateurs, voici le source de ma DLL:


Code:
library FileInfo;

uses
  SysUtils,
  Classes,
  TextToPanoramic in 'TextToPanoramic.pas';

  {$R *.res}

function GetFileAttributes(fil: pchar):integer; stdcall; export;
var
  f: string;
begin
  f := pchar(pstring(fil)^);
  result := FileGetAttr(f);
end;

function GetFileDate(fil: pchar; dat: integer):integer; stdcall; export;
var
  d,f: string;
begin
  f := pchar(pstring(fil)^);
  d := DateTimeToStr(FileDateToDateTime(FileAge(f)));
  CopyTextToPanoramic(integer(@d), 0, dat);
  result := 0;
end;

Exports
  GetFileAttributes, GetFileDate;

begin
end.
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
papydall

papydall


Nombre de messages : 7017
Age : 74
Localisation : Moknine (Tunisie) Entre la chaise et le clavier
Date d'inscription : 03/03/2012

FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Empty
MessageSujet: Re: FILE_FIND: Arborescence des répertoires dans un mémo   FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 EmptySam 2 Juin 2012 - 22:39

Salut Klaus.

J’ai testé : c’est OK.

Petite astuce : pour éviter l’affichage du smiley à la place du 8, il faut laisser un espace avant la parenthèse fermante

Exemple : x(Cool ---> affiche le smiley
X(8 ) ---> affichage correct


lol!
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
JL35




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

FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Empty
MessageSujet: Re: FILE_FIND: Arborescence des répertoires dans un mémo   FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 EmptySam 2 Juin 2012 - 23:07

Ouh-là ! je m'absente la journée et Klaus a déjà fait le boulot !
Bon trop tard ce soir, je testerai ça demain !

Merci papydall, astuce à retenir.
Revenir en haut Aller en bas
Klaus

Klaus


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

FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Empty
MessageSujet: Re: FILE_FIND: Arborescence des répertoires dans un mémo   FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 EmptySam 2 Juin 2012 - 23:23

Merci, Papydall ! Effectivement, à retenir !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
JL35




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

FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Empty
MessageSujet: Re: FILE_FIND: Arborescence des répertoires dans un mémo   FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 EmptyDim 3 Juin 2012 - 15:11

@Klaus, ça marche impeccable, tout y est !

Je trouve un peu dommage les deux lignes par élément, mais là on n'y peut pas grand chose, du fait que les noms de fichiers peuvent avoir une grande longueur (les 8.3 d'autrefois c'était le bon temps, dans un sens, on pouvait calibrer).

Néanmoins, beau boulot, et je répète (Jack, si tu m'écoutes...) que c'est dommage (et anormal ?) d'avoir les fonctions pour modifier tous les attributs de fichiers et rien pour les lire, d'où la nécessité d'encore faire appel à une dll.
Revenir en haut Aller en bas
Klaus

Klaus


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

FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Empty
MessageSujet: Re: FILE_FIND: Arborescence des répertoires dans un mémo   FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 EmptyDim 3 Juin 2012 - 15:59

Merci, JL35 !
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé





FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Empty
MessageSujet: Re: FILE_FIND: Arborescence des répertoires dans un mémo   FILE_FIND: Arborescence des répertoires dans un mémo - Page 2 Empty

Revenir en haut Aller en bas
 
FILE_FIND: Arborescence des répertoires dans un mémo
Revenir en haut 
Page 2 sur 2Aller à la page : Précédent  1, 2
 Sujets similaires
-
» file_add dans un memo
» Sélection dans un Memo
» Position dans un MEMO
» Formattage et justification dans un MEMO
» réflexion sur return dans un memo

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: