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.
Le petit explorateur - Page 2 Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
Le petit explorateur - Page 2 Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
Le petit explorateur - Page 2 Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
Le petit explorateur - Page 2 Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
Le petit explorateur - Page 2 Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
Le petit explorateur - Page 2 Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
Le petit explorateur - Page 2 Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
Le petit explorateur - Page 2 Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
Le petit explorateur - Page 2 Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
Le petit explorateur - Page 2 Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
Le petit explorateur - Page 2 Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
Le petit explorateur - Page 2 Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
Le petit explorateur - Page 2 Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
Le petit explorateur - Page 2 Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
Le petit explorateur - 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
Le Deal du moment : -38%
Ecran PC gaming 23,8″ – ACER KG241Y P3bip ...
Voir le deal
99.99 €

 

 Le petit explorateur

Aller en bas 
+3
bignono
papydall
JL35
7 participants
Aller à la page : Précédent  1, 2, 3  Suivant
AuteurMessage
papydall

papydall


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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMar 5 Juin 2012 - 0:06

Lorsqu’on écrit du texte en dehors des balises, certains caractères se transforment en smileys.
Exemple :
….bonjour Wink -------> le smiley est en fait un point-virgule suivi d’une parenthèse fermante
x(Cool --------> le smiley est en réalité un 8 suivi d'une parenthèse fermante
Very Happy --------> le smiley est en réalité deux-points suivi de la lettre D(en majuscule)

Pour éviter ceci, on peut ajouter un espace entre les 2 caractères
… bonjour ; )
x(8 )
: D

Par contre, quand ces mêmes exemples sont insérés entre les balises code, le texte reste inchangé ce qui est tout à fait normal.

Code:

 ...bonjour ;) x(8) :D
Les balises code NE DOIVENT, EN AUCUN CAS, modifier quoique ce soit, sinon c’est la zizanie.
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
papydall

papydall


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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMar 5 Juin 2012 - 0:30

JL35 a écrit:
Merci papydall, je vais m'endormir serein (non, pas serin !)

Tu désire peut-être te réveiller serin (ou canari) !

Le petit explorateur - Page 2 1153514565
Revenir en haut Aller en bas
http://papydall-panoramic.forumarabia.com/
Klaus

Klaus


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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMar 5 Juin 2012 - 0:41

Très mignons, ces oiseaux ! Bavo !

La transmission des caractères spéciaux m'a interpellé. J'avais, moitié par boutade, suggéré de poster en hexa. Et bien, par ce petit outil que j'ai nommé hexify.bas, on peut le faire: il prend un fichier BAS et produit un fichier HEX, ou l'inverse. Pour sourire un peu:

Code:
' hexify.bas

' ******************** programme de base ************

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

' ******************** routines de structure ************

labels:
  label constantes, variables, form0, GUI, initialisations
  label fnd_bas, bas_to_hex, fnd_hex, hex_to_bas, bth, htb
  return
 
constantes:
  return
 
variables:
  dim no%, no1% , no_bas%, no_hex%, no_d_bas%, no_d_hex%, s$, n%, i%, h$
  dim no_bas_to_hex%, no_hex_to_bas%, f_bas$, f_hex$
  return
 
form0:
  width 0,800 : height 0,190
  caption 0,"Hexify - codage/décodage d'un fichier entre ASCII<->Hexa"
  return
 
GUI:
  no% = no% + 1 : open_dialog no% : no_d_bas%  = no%
    filter no%,"Source BAS|*.bas"
  no% = no% + 1 : open_dialog no% : no_d_hex%  = no%
    filter no%,"Ficher HEX|*.hex"

  no% = no% + 1 : container no% : no1% = no%
    top no%,10 : left no%,10 : caption no%,"Fichier source en ASCII"
    width no%,770 : height no%,60
  no% = no% + 1 : edit no% : parent no%,no1% : no_bas% = no%
    top no%,20 : left no%,10 : width no%,500
  no% = no% + 1 : button no% : parent no%,no1%
    top no%,20 : left no%,530 : width no%,50 : caption no%,"..."
    on_click no%,fnd_bas
  no% = no% + 1 : button no% : parent no%,no1%  : no_bas_to_hex% = no% : inactive no%
    top no%,20 : left no%,600 : width no%,150 : caption no%,"Coder en hexa-décimal"
    on_click no%,bas_to_hex

  no% = no% + 1 : container no% : no1% = no%
    top no%,80 : left no%,10 : caption no%,"Fichier codé en hexa-décimal"
    width no%,770 : height no%,60
  no% = no% + 1 : edit no% : parent no%,no1% : no_hex% = no%
    top no%,20 : left no%,10 : width no%,500
  no% = no% + 1 : button no% : parent no%,no1%
    top no%,20 : left no%,530 : width no%,50 : caption no%,"..."
    on_click no%,fnd_hex
  no% = no% + 1 : button no% : parent no%,no1%  : no_hex_to_bas% = no%  : inactive no%
    top no%,20 : left no%,600 : width no%,150 : caption no%,"Décoder en Ascii"
    on_click no%,hex_to_bas


  return
 
initialisations:
  dir_dialog no_d_bas%, dir_current$
  dir_dialog no_d_hex%, dir_current$
  return
 
' ******************** routines spécifiques ************

fnd_bas:
  s$ = file_name$(no_d_bas%)
  if s$="_" then return
  if right$(s$,4)=".bas" then s$ = left$(s$,len(s$)-4)
  text no_bas%,s$+".bas"
  text no_hex%,s$+".hex"
  active no_bas_to_hex%
  inactive no_hex_to_bas%
  return

bas_to_hex:
  f_bas$ = trim$(text$(no_bas%))
  if file_exists(f_bas$)=0
    message "Le fichier en entrée est inexistant !"
    text no_bas% = ""
    text no_hex% = ""
    return
  end_if
  f_hex$ = trim$(text$(no_hex%))
  if file_exists(f_hex$)=1
    s$ = "Le fichier en sortie existe déjà !"
    s$ = s$ + chr$(13)+chr$(10)+"Voulez-vous le remplacer ?"
    if message_confirmation_yes_no(s$)<>1 then return
  end_if
  file_open_read 1,f_bas$
  file_open_write 2,f_hex$
  h$ = ""
  while file_eof(1)=0
    file_readln 1,s$
    gosub bth
    s$ = chr$(0)
    gosub bth
  end_while
  if len(h$)>0 then file_writeln 2,h$
  file_close 2
  file_close 1
  message "Terminé."
  return

bth:
  if len(s$)=0 then return
  for i%=1 to len(s$)
    h$ = h$ + right$("0"+hex$(asc(mid$(s$,i%,1))),2)
    if len(h$)=80
      file_writeln 2,h$
      h$ = ""
    end_if
  next i%
  return

fnd_hex:
  s$ = file_name$(no_d_hex%)
  if s$="_" then return
  if right$(s$,4)=".hex" then s$ = left$(s$,len(s$)-4)
  text no_bas%,s$+".bas"
  text no_hex%,s$+".hex"
  inactive no_bas_to_hex%
  active no_hex_to_bas%
  return

hex_to_bas:
  f_hex$ = trim$(text$(no_hex%))
  if file_exists(f_hex$)=0
    message "Le fichier en entrée est inexistant !"
    text no_bas% = ""
    text no_hex% = ""
    return
  end_if
  f_bas$ = trim$(text$(no_bas%))
  if file_exists(f_bas$)=1
    s$ = "Le fichier en sortie existe déjà !"
    s$ = s$ + chr$(13)+chr$(10)+"Voulez-vous le remplacer ?"
    if message_confirmation_yes_no(s$)<>1 then return
  end_if

  file_open_read 1,f_hex$
  file_open_write 2,f_bas$
  s$ = ""
  while file_eof(1)=0
    file_readln 1,h$
    gosub htb
  end_while
  file_close 2
  file_close 1
  message "Terminé."
  return

htb:
  for i%=1 to len(h$)-1 step 2
    n% = hex(mid$(h$,i%,2))
    if n%=0
      file_writeln 2,s$
      s$ = ""
    else
      s$ = s$ + chr$(n%)
    end_if
  next i%
  return
Revenir en haut Aller en bas
http://klauspanoramic.comxa.com/index.html
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMar 5 Juin 2012 - 1:15

Merci Klaus, j'espère quand même que l'on ne sera pas obligé d'en arriver là ...
Bon aller, il faut que je dorme quelques heures. A demain
Revenir en haut Aller en bas
papydall

papydall


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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMar 5 Juin 2012 - 1:16

En fait, il transforme n’importe quel fichier ASCII en fichier HEXA.
Idée simple, mais il fallait la trouver !

Les grandes idées sont souvent des idées simples qui échappent aux communs des mortels, sauf aux Klaus et semblables !

lol! 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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMar 5 Juin 2012 - 8:56

Bonjour tout le monde,

@bignono pour les caractères accentués dans les noms de répertoires c'est vrai j'avais remarqué une anomalie, il faudrait peut-être essayer une autre fonte pour LIST 1

@Klaus évidemment il y a des solutions en convertissant le source à l'aller et au retour, mais ce n'est pas satisfaisant du tout pour l'esprit, comme tu sais.
Dans le texte, oui, je veux bien qu'il y ait des ambigüités, mais pas dans le code.
Les balises sont là pour interdire toute interprétation intermédiaire.

@papydall, merci pour le serin, c'est joli !
Revenir en haut Aller en bas
Klaus

Klaus


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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMar 5 Juin 2012 - 9:36

Je sais, JL35. Et je l'avais bien dit dans mon post. C'était juste un petit exercice d'esprit, pour sourire un peu.
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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMar 5 Juin 2012 - 12:03

Je l'avais bien compris comme ça, on est bien d'accord.
Revenir en haut Aller en bas
ambroise




Nombre de messages : 264
Localisation : Haute-Savoie
Date d'inscription : 29/04/2012

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMar 5 Juin 2012 - 14:17

Je suis admiratif... En parcourant le code, je découvre des manières de coder intéressantes et instructives. Merci.

Quelle bonne idée que ce petit panneau affichant des fonctions ("Lister, exécuter, etc.") au clic sur un fichier !

Problème récurrent : A la commande "exécuter", j'obtiens parfois le message "Cannot open ..." et là l'explorateur perd la boule...
Revenir en haut Aller en bas
http://genealogie.cwebh.org/index.html
JL35




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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMar 5 Juin 2012 - 14:28

Merci ambroise, ça me fait plaisir si ça peut t'inspirer.

Quant à la commande Exécuter, effectivement il y a des cas où ça ne marche pas, mais comme ce n'est pas systématique il est difficile d'en tirer des conclusions.
Il faudrait repérer un cas particulier, reproductible, et noter les conditions, notamment le nom de l'exécutable, son chemin d'accès, etc. et peut-être mettre un point d'arrêt (Message par exemple) juste avant l'Execute pour voir ce qu'on donne exactement à exécuter.

Maintenant ça ne devrait pas suffire pour faire perdre la boule à l'explorateur, il n'exécute pas, d'accord, mais il devrait continuer ensuite ?
Revenir en haut Aller en bas
JL35




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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMar 5 Juin 2012 - 19:06

J'ai ajouté la possibilité de calculer le chemin court complet du fichier cliqué.
Ce chemin court est simultanément copié dans le presse-papier windows, pour utilisation à la demande.

Pour les répertoires avec caractères accentués (bignono), le problème subsiste, j'ai beau changer de fontes ça ne change rien...
je cherche...
Revenir en haut Aller en bas
Klaus

Klaus


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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMar 5 Juin 2012 - 19:37

J'ai fait une version plus aboutie de mon hexifieur. On peut maintenant, via une option, choisir la conversion d'un fichier binaire comme un *.exe, par exemple. Ce fichier devient alors du simple texte. La conversion aller/retour marche, et le résultat dé-hexifiée est absolument identique à l'original. J'ai ajouté aussi une barre de progression et une indication de la taille du fichier en cours de conversion. Le tout en 274 lignes.

Code:
' hexify.bas

' ******************** programme de base ************

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

' ******************** routines de structure ************

labels:
  label constantes, variables, form0, GUI, initialisations
  label fnd_bas, bas_to_hex, fnd_hex, hex_to_bas, bth, htb
  label mode_change
  return
 
constantes:
  return
 
variables:
  dim no%, no1% , no_bas%, no_hex%, no_d_bas%, no_d_hex%, s$, n%, i%, h$, j%
  dim no_bas_to_hex%, no_hex_to_bas%, f_bas$, f_hex$, no_bin%, buf%(513)
  dim siz%, no_bar%, tot%, no_aff%
  return
 
form0:
  width 0,1000 : height 0,230
  caption 0,"Hexify - codage/décodage d'un fichier entre ASCII<->Hexa"
  return
 
GUI:
  no% = no% + 1 : open_dialog no% : no_d_bas%  = no%
    filter no%,"Source BAS|*.bas"
  no% = no% + 1 : open_dialog no% : no_d_hex%  = no%
    filter no%,"Ficher HEX|*.hex"

  no% = no% + 1 : container no% : no1% = no%
    top no%,10 : left no%,10 : caption no%,"Fichier source en ASCII"
    width no%,770 : height no%,60
  no% = no% + 1 : edit no% : parent no%,no1% : no_bas% = no%
    top no%,20 : left no%,10 : width no%,500
  no% = no% + 1 : button no% : parent no%,no1%
    top no%,20 : left no%,530 : width no%,50 : caption no%,"..."
    on_click no%,fnd_bas
  no% = no% + 1 : button no% : parent no%,no1%  : no_bas_to_hex% = no% : inactive no%
    top no%,20 : left no%,600 : width no%,150 : caption no%,"Coder en hexa-décimal"
    on_click no%,bas_to_hex

  no% = no% + 1 : container no% : no1% = no%
    top no%,80 : left no%,10 : caption no%,"Fichier codé en hexa-décimal"
    width no%,770 : height no%,60
  no% = no% + 1 : edit no% : parent no%,no1% : no_hex% = no%
    top no%,20 : left no%,10 : width no%,500
  no% = no% + 1 : button no% : parent no%,no1%
    top no%,20 : left no%,530 : width no%,50 : caption no%,"..."
    on_click no%,fnd_hex
  no% = no% + 1 : button no% : parent no%,no1%  : no_hex_to_bas% = no%  : inactive no%
    top no%,20 : left no%,600 : width no%,150 : caption no%,"Décoder en Ascii"
    on_click no%,hex_to_bas

  no% = no% + 1 : container no% : no1% = no%
    top no%,10 : left no%,790 : caption no%,"Options"
    width no%,190 : height no%,130
  no% = no% + 1 : check no% : parent no%, no1% : no_bin% = no%
    top no%,20 : left no%,10 : caption no%,"Mode binaire"
    on_click no%,mode_change
   
  no% = no% + 1 : progress_bar no%  : no_bar% = no%
    top no%,160 : left no%,10 : width no%,770
    min no%,0 : max no%,1000 : position no%,0
  no% = no% + 1 : alpha no% : no_aff% = no%
    top no%,160 : left no%,790

  return
 
initialisations:
  dir_dialog no_d_bas%, dir_current$
  dir_dialog no_d_hex%, dir_current$
  return
 
' ******************** routines spécifiques ************

fnd_bas:
  s$ = file_name$(no_d_bas%)
  if s$="_" then return
  if checked(no_bin%)=0
    if right$(s$,4)=".bas" then s$ = left$(s$,len(s$)-4)
    text no_bas%,s$+".bas"
  else
    text no_bas%,s$
  end_if
  text no_hex%,s$+".hex"
  active no_bas_to_hex%
  inactive no_hex_to_bas%
  return

bas_to_hex:
  f_bas$ = trim$(text$(no_bas%))
  if file_exists(f_bas$)=0
    message "Le fichier en entrée est inexistant !"
    text no_bas% = ""
    text no_hex% = ""
    return
  end_if
  f_hex$ = trim$(text$(no_hex%))
  if file_exists(f_hex$)=1
    s$ = "Le fichier en sortie existe déjà !"
    s$ = s$ + chr$(13)+chr$(10)+"Voulez-vous le remplacer ?"
    if message_confirmation_yes_no(s$)<>1 then return
  end_if
  if checked(no_bin%)=0
    filebin_open_read 1,f_bas$
    tot% = filebin_size(1)
    caption no_aff%,str$(tot%)+" Octets"
    filebin_close 1
    file_open_read 1,f_bas$
    file_open_write 2,f_hex$
    h$ = ""
    siz% = 0
    while file_eof(1)=0
      file_readln 1,s$
      siz% = siz% + len(s$) + 2
      gosub bth
      s$ = chr$(0)
      gosub bth
      position no_bar%,(siz%/tot%)*1000
    end_while
    if len(h$)>0 then file_writeln 2,h$
    file_close 2
    file_close 1
  else
    filebin_open_read 1,f_bas$
    file_open_write 2,f_hex$
    siz% = filebin_size(1)
    tot% = siz%
    caption no_aff%,str$(tot%)+" Octets"
    if siz%>0
      repeat
        n% = 512
        if n%>siz% then n% = siz%
        filebin_block_read 1,n%,buf%(1)
        h$ = ""
        for i%=1 to n%
          h$ = h$ + right$("0"+hex$(buf%(i%)),2)
        next i%
        file_writeln 2,h$
        siz% = siz% - n%
        position no_bar%,((tot%-siz%)/tot%)*1000
      until siz% = 0
    end_if
    file_close 2
    filebin_close 1
  end_if
  message "Terminé."
  position no_bar%,0
  caption no_aff%,""
  return


bth:
  if len(s$)=0 then return
  for i%=1 to len(s$)
    h$ = h$ + right$("0"+hex$(asc(mid$(s$,i%,1))),2)
    if len(h$)=80
      file_writeln 2,h$
      h$ = ""
    end_if
  next i%
  return

fnd_hex:
  s$ = file_name$(no_d_hex%)
  if s$="_" then return
  if right$(s$,4)=".hex" then s$ = left$(s$,len(s$)-4)
  if checked(no_bin%)=1
    text  no_bas%,s$
  else
    text no_bas%,s$+".bas"
  end_if
  text no_hex%,s$+".hex"
  inactive no_bas_to_hex%
  active no_hex_to_bas%
  return

hex_to_bas:
  f_hex$ = trim$(text$(no_hex%))
  if file_exists(f_hex$)=0
    message "Le fichier en entrée est inexistant !"
    text no_bas% = ""
    text no_hex% = ""
    return
  end_if
  f_bas$ = trim$(text$(no_bas%))
  if file_exists(f_bas$)=1
    s$ = "Le fichier en sortie existe déjà !"
    s$ = s$ + chr$(13)+chr$(10)+"Voulez-vous le remplacer ?"
    if message_confirmation_yes_no(s$)<>1 then return
  end_if
  if checked(no_bin%)=0
    filebin_open_read 1,f_hex$
    tot% = filebin_size(1)
    caption no_aff%,str$(tot%)+" Octets"
    filebin_close 1
    file_open_read 1,f_hex$
    file_open_write 2,f_bas$
    s$ = ""
    siz% = 0
    while file_eof(1)=0
      file_readln 1,h$
      siz% = siz% + len(h$) + 2
      gosub htb
      position no_bar%,(siz%/tot%)*1000
    end_while
    file_close 2
    file_close 1
  else
    filebin_open_read 1,f_hex$
    tot% = filebin_size(1)
    caption no_aff%,str$(tot%)+" Octets"
    filebin_close 1
    file_open_read 1,f_hex$
    filebin_open_write 2,f_bas$
    siz% = 0
    j% = 0
    while file_eof(1)=0
      file_readln 1,h$
      siz% = siz% + len(h$) + 2
      n% = len(h$)
      for i%=1 to n%-1 step 2
        j% = j% + 1
        buf%(j%) = hex(mid$(h$,i%,2))
        if j%=512
          filebin_block_write 2,512,buf%(1)
          j% = 0
        end_if
      next i%
      position no_bar%,(siz%/tot%)*1000
    end_while
    if j%>0
      filebin_block_write 2,j%,buf%(1)
      position no_bar%,(siz%/tot%)*1000
    end_if
    filebin_close 2
    file_close 1
  end_if
  message "Terminé."
  caption no_aff%,""
  return

htb:
  for i%=1 to len(h$)-1 step 2
    n% = hex(mid$(h$,i%,2))
    if n%=0
      file_writeln 2,s$
      s$ = ""
    else
      s$ = s$ + chr$(n%)
    end_if
  next i%
  return
 
mode_change:
  if checked(no_bin%)=1
    filter no_d_bas%,"Tous fichiers|*.*"
    caption no_hex_to_bas%,"Décoder en binaire"
  else
    filter no_d_bas%,"Source BAS|*.bas"
    caption no_hex_to_bas%,"Décoder en Ascii"
  end_if
  return
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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMer 6 Juin 2012 - 16:09

J'ai ajouté la prise en compte des répertoires et fichiers comportant des lettres accentuées.
J'ai ajouté pour ça un petit s/p de conversion, ce n'est pas forcément la solution la plus élégante et ça ralentit un peu l'affichage, mais ça marche.
Revenir en haut Aller en bas
JL35




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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMer 6 Juin 2012 - 17:28

@Klaus, concernant ton hexifieur (marque déposée), j'ai fait quelque chose de beaucoup plus rustique en 40 lignes seulement, mais sans aucun dialogue, ni affichage, ni test d'existence des fichiers:
Code:
LABEL bin2hex, hex2bin
DIM f1$, f2$, fh$, a$, sz%, n%, i%

' binaire ou ascii -> hexa
f1$ = "C:\Textes\Lorem.txt": fh$ = "C:\Temp\Test.hex": gosub bin2hex
end
' hexa -> binaire (reconstitution du fichier original)
f2$ = "C:\Temp\Test.txt": gosub hex2bin
print "Terminé !"
END

bin2hex:
' conversion fichier quelconque en valeurs hexadécimales f1$ -> fh$
FILEBIN_OPEN_READ 1, f1$: sz% = FILEBIN_SIZE(1): FILE_OPEN_WRITE 2, fh$
IF sz% > 2000
    n% = INT(sz%/2000)
    FOR i% = 1 TO n%
        FILEBIN_HEXA_READ 1, 2000, a$: FILE_WRITE 2, a$
    NEXT i%
    sz% = MOD(sz%, 2000): ' reste
END_IF
FILEBIN_HEXA_READ 1, sz%, a$: FILE_WRITELN 2, a$
FILEBIN_CLOSE 1: FILE_CLOSE 2
RETURN

hex2bin:
' reconversion fichier hexadécimal en fichier normal fh$ -> f2$
FILEBIN_OPEN_READ 1, fh$: sz% = FILEBIN_SIZE(1): FILEBIN_CLOSE 1
FILE_OPEN_READ 1, fh$: FILEBIN_OPEN_WRITE 2, f2$
IF sz% > 4000
    n% = INT(sz%/4000)
    FOR i% = 1 TO n%
        FILE_READBUF 1, a$, 4000: FILEBIN_HEXA_WRITE 2, 2000, a$
    NEXT i%
    sz% = MOD(sz%, 4000): ' reste
END_IF
FILE_READBUF 1, a$, sz%: sz% = (sz%-2)/2
FILEBIN_HEXA_WRITE 2, sz%, a$
FILE_CLOSE 1: FILEBIN_CLOSE 2
RETURN


Dernière édition par JL35 le Mer 6 Juin 2012 - 18:09, édité 1 fois
Revenir en haut Aller en bas
Klaus

Klaus


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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMer 6 Juin 2012 - 17:49

Eh oui, j'aurais mieux dû lire la doc ... FILEBIN_HEXA_xxx est beaucoup mieux approprié à ce que je veux faire que mes FILEBIN_BLOCK_... . Je vais revoir ça - merci pour le tuyau.

Juste une remarque: tel que tu l'as fait, ça ne marche que pour des fichiers de moins de 4000 octets. Au-delà, il faut faire une boucle REPEAT ou WHILE.
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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMer 6 Juin 2012 - 17:59

Ben non Klaus, ça marche pour toutes les tailles ! c'est la boucle FOR i% = 1 TO n% qui fait le boulot par blocs de 2000 à l'aller ou 4000 au retour.

Rectif. il manque le Dim i% qui a sauté dans mon exemple, je rectifie

J'ai testé avec un fichier image de 3M, ça marche très bien (quelques secondes quand même).
Revenir en haut Aller en bas
Klaus

Klaus


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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMer 6 Juin 2012 - 18:16

Autant pour moi. J'ai dû avoir des tomates dans les yeux...
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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMer 6 Juin 2012 - 18:25

Sont pas encore mûres... Very Happy
Revenir en haut Aller en bas
bignono

bignono


Nombre de messages : 1127
Age : 67
Localisation : Val de Marne
Date d'inscription : 13/11/2011

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMer 6 Juin 2012 - 19:13

Bonjour JL35, Smile
Ton petit explorateur fonctionne très bien maintenant. Je trouve que c'est un très bon utilitaire qui va me servir souvent. Surtout les fonctions Lister et Dump. Très simple à s'en servir! Merci beaucoup!
A+ Wink
Revenir en haut Aller en bas
JL35




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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMer 6 Juin 2012 - 20:58

Bonsoir bignono et merci pour ton appréciation, ça me fait bien plaisir Smile

On peut imaginer quelques développements simples à ajouter, je pensais par exemple à la fonction lister, donner le choix de l'éditeur à utiliser en fonction du fichier: notepad, wordpad, word, abiword, works, ou un tableur, etc. (ou l'éditeur panoramic).
Mais bon, c'est peut-être une complication (visuelle) pas très utile...

PS finalement je n'ai pas résisté, j'ai ajouté le choix du programme utilisé pour lister un fichier (type texte): Notepad, Wordpad, etc., en fonction de ce dont on dispose sur son pc.
Il faut pour ça mettre à jour le garnissage des objets LIST 65 (nom) et DLIST 66 (chemin de l'exécutable) qui sont en parallèle. On peut mettre ce qu'on veut, mais il faudrait éventuellement allonger la Form 50 s'il y en a trop (List 65 s'ajuste automatiquement).
On voit là l'utilité de la fonction "Path court", pour mettre le chemin abrégé des exécutables.
Ceux que j'ai mis dans le source sont pour mon cas personnel, ils sont à ajuster par chacun selon ses désirs et ses conditions locales.
Quand il n'y a pas de programme correspondant, c'est que je ne le possède pas.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMer 6 Juin 2012 - 22:33

Vraiment super bien fait, je pense que je piocherais allégrement dedans encore une fois JL35 Wink
Merci pour ce joli code
Revenir en haut Aller en bas
JL35




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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMer 6 Juin 2012 - 22:36

Merci à toi également Jicehel, pioche tant que tu veux, ça me fait plaisir !

Je viens de faire une petite modif de dernière minute, mais uniquement esthétique, rien d'important.

C'est un explorateur parmi les milliers qui existent un peu partout, la plupart beaucoup plus performants, mais l'avantage ici c'est de posséder le code source et d'avoir la possibilité de le modifier à son goût et de s'ajouter des fonctions personnelles. Un exemple: l'affichage du chemin abrégé d'un fichier.
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMer 6 Juin 2012 - 22:46

Sans compter que l'on peut l'intégrer facilement dans nos programmes pour choisir un fichier à ouvrir ou indiquer le nom et l'emplacement d'un fichier à enregistrer.
Bon, je récupère ta dernière mise à jour pour voir la modif Wink
Revenir en haut Aller en bas
JL35




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

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMer 6 Juin 2012 - 22:55

Dans ce cas il faut élaguer pas mal, mais c'est possible.
La modif c'était juste les dimensions de la Form 50, pour gagner un peu de place, mais on peut l'agrandir tant qu'on veut.

On peut envisager aussi de lister les volumes existants (disques annexes, clés usb ou cartes mémoire) pour pouvoir basculer dessus en cliquant, mais il faut pour ça intégrer un script vbs, ce qui alourdit un peu (il n'y a pas de fonction Dos pour faire ça, ni panoramic: le disk_exists bloque).
On peut de toute façon y accéder en mettant directement le nom du volume en question dans l'édit en tête... à condition de le connaître !
Revenir en haut Aller en bas
Jicehel

Jicehel


Nombre de messages : 5947
Age : 52
Localisation : 77500
Date d'inscription : 18/04/2011

Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 EmptyMer 6 Juin 2012 - 23:02

Il faut voir, je ne sais pas encore comment les codes Panoramic et FreeBasic vont s'intégrer mais ce sera peut être codable directement dans un code source bientôt
Revenir en haut Aller en bas
Contenu sponsorisé





Le petit explorateur - Page 2 Empty
MessageSujet: Re: Le petit explorateur   Le petit explorateur - Page 2 Empty

Revenir en haut Aller en bas
 
Le petit explorateur
Revenir en haut 
Page 2 sur 3Aller à la page : Précédent  1, 2, 3  Suivant
 Sujets similaires
-
» Petit explorateur
» Un petit explorateur
» Explorateur
» Explorateur
» Explorateur particulier

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: