FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» I Love You
par JL35 Hier à 16:25

» MARK_ON déclenche un événement ON_CLICK à la place de ...
par Jean Claude Mer 18 Oct 2017 - 18:08

» mise a jour calculatrice
par joeeee2017 Mer 18 Oct 2017 - 15:57

» [solved] 3D_LINE How to ?
par Jicehel Mer 18 Oct 2017 - 11:01

» Convertisseur de base 10 de 2 à 36
par gigi75 Mar 17 Oct 2017 - 18:49

» calculatrice avec touches movibles
par joeeee2017 Dim 15 Oct 2017 - 1:11

» CORTANA
par gigi75 Sam 14 Oct 2017 - 16:32

» Calculatrice
par Jean Claude Sam 14 Oct 2017 - 12:30

» Compilateur FBPano
par jean_debord Jeu 12 Oct 2017 - 9:53

» KGF_dll - nouvelles versions
par Klaus Mar 10 Oct 2017 - 18:49

» à propos de Panoramic_Editor [Résolu]
par Klaus Mar 10 Oct 2017 - 3:19

» Un petit "coucou" à tous les Panoramiciens !
par Jack Ven 6 Oct 2017 - 10:24

» Pourquoi le compilateur stagne
par mindstorm Mer 4 Oct 2017 - 20:38

» Panoramic ?
par Marc37 Mer 4 Oct 2017 - 0:39

» Premiers pas avec Arduino
par Marc37 Mer 4 Oct 2017 - 0:29

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Octobre 2017
LunMarMerJeuVenSamDim
      1
2345678
9101112131415
16171819202122
23242526272829
3031     
CalendrierCalendrier

Partagez | 
 

 PanoAssembleur

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
Yannick

avatar

Nombre de messages : 7994
Age : 46
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: PanoAssembleur   Sam 7 Jan 2017 - 0:52

Pour ceux qui travaille comme je le fais souvent avec des #include,
un petit utilitaire pour assembler vos fichiers *.bas en un seul et unique fichier.
Code:
label clic
hide 0
gui()
SearchFiles()
end

sub gui()
   border_hide 0
   height 0,100
   width 0,500
   top 0,(screen_y-height(0))/2
   left 0,(screen_x-width(0))/2
   color 0,209,159,72
   caption 0,"Pano-Assembleur"

   font_name 0,"Courier New"
   font_size 0,8
   font_bold 0
   font_color 0,255,255,255
  
   dlist 9
   dlist 10
   dlist 11

   panel 1
   height 1,height_client(0)-10
   width 1,width_client(0)-10
   top 1,5
   left 1,5
   color 1,253,212,140

   alpha 2
   parent 2,1
   font_bold 2
   font_color 0,155,0,0
  
  
   button 3
   parent 3,1
   caption 3,"Fermer"
   cursor_point 3
   on_click 3,clic
  
end_sub

sub SearchFiles()
   dim_local f$,nf$,dir$,i%,l$,l2$,sep%,ncar%,file$,mess$,nbinc%

   open_dialog 8
   dir_dialog 8,":"
   filter 8,"*.bas|*.bas"
   f$=file_name$(8)
   delete 8
  
   if f$<>"_"
      file_load 9,f$
      dir$ = file_extract_path$(f$)
      f$   = file_extract_name$(f$)
      f$   = left$(f$,len(f$)-4)
      nf$  = dir$+"PA_"+f$+".bas"

      if count(9)>0
         for i%=1 to count(9)
            l$=item_read$(9,i%) : l2$=trim$(l$)
            if upper$(left$(l2$,8))="#INCLUDE"
               nbinc%=nbinc%+1
               sep%=instr(l2$,chr$(34))
               ncar%=len(l2$)-sep%-1
               file$=mid$(l2$,sep%+1,ncar%)
               file_add 11,dir$+file$
            else
               item_add 11,l$
            end_if
         next i%
         if nbinc%>0
            file_save 11,nf$
            mess$ = string$(int((len(nf$)-12)/2)," ")+"Le fichier :"+chr$(13)
            mess$ = mess$+nf$+chr$(13)
            mess$ = mess$+string$(int((len(nf$)-23)/2)," ")+"a été créé avec succès."
            caption 2,mess$
         else
            mess$ = string$(22," ")+"Erreur !!!"+chr$(13)
            mess$ = mess$+"Le fichier d' entrée ne contient pas la directive"+chr$(13)
            mess$ = mess$+string$(20," ")+"#INCLUDE"
            caption 2,mess$
         end_if
         resize0()
         show 0
      end_if
   end_if
end_sub

sub resize0()
   width 0,width(2)+40
   top 0,(screen_y-height(0))/2
   left 0,(screen_x-width(0))/2
   width 1,width_client(0)-10
   top 2,10
   left 2,10
   top 3,top(2)+height(2)+10
   left 3,int((width(1)-width(3))/2)
end_sub

clic:
   Terminate
return

le fichier créé prend le nom de celui d' entrée avec le préfixe "PA_"
il est enregistré dans le dossier de celui d' entrée.
Le fichier n' est enregistré que si il trouve la directive #INCLUDE.

Je l' avais dit que cela me ferait une publication de plus...
Laughing

une version plus visuelle :
Code:
dim f$,dir$,nf$
label clic,change

hide 0
gui()
show 0

end

sub gui()
  height 0,550
  width 0,900
  top 0,(screen_y-height(0))/2
  left 0,(screen_x-width(0))/2
  color 0,253,212,140
  caption 0,"Pano Assembleur - Vs 0.2"
 
  font_name 0,"Arial"
  font_size 0,10
 
  main_menu 1
  sub_menu 2 : parent 2,1 : caption 2,"Ouvrir"          : on_click 2,clic
  sub_menu 3 : parent 3,1 : caption 3,"Enregistrer"    : on_click 3,clic

  panel 5
  height 5,height_client(0)-10
  width 5,width_client(0)-10
  top 5,5
  left 5,5
  color 5,209,159,72
 
  alpha 4
  parent 4,5
  caption 4,"Aller à la ligne n° "
  top 4,6
  left 4,width(5)-width(4)-85
  font_size 4,8
  font_bold 4
  font_color 4,255,255,255

  spin 9
  inactive 9
  parent 9,5
  width 9,80
  top 9,3
  left 9,width(5)-width(9)-5
  color 9,253,212,140
  font_size 9,8
  font_bold 9
  font_color 9,0,0,255
  on_change 9,change

  list 6
  parent 6,5
  height 6,height(5)-34
  width 6,width(5)-10
  top 6,29
  left 6,5
 
  dlist 7
end_sub

clic:
  if number_click =2
      SearchFile()
      return
  end_if
  if number_click =3
      SaveFile()
      return
  end_if
return

change:
  if count(6)>0 or count(6)>position(9) or count(6)=position(9)
      item_select 6,position(9)
  end_if
return

sub SearchFile()
  dim_local i%,l$,l2$,sep%,ncar%,nbinc%,file$
  clear 6
  Open_dialog 8
  dir_dialog 8,":\"
  filter 8,"*.bas|*.bas"
  f$=file_name$(8)
  delete 8
  if f$<>"_"
      file_load 7,f$
      dir$ = file_extract_path$(f$)
      f$  = file_extract_name$(f$)
      f$  = left$(f$,len(f$)-4)
      nf$  = dir$+"PA_"+f$+".bas"
      if count(7)>0
        for i%=1 to count(7)
            l$=item_read$(7,i%) : l2$=trim$(l$)
            if upper$(left$(l2$,8))="#INCLUDE"
              nbinc%=nbinc%+1
              sep%=instr(l2$,chr$(34))
              ncar%=len(l2$)-sep%-1
              file$=mid$(l2$,sep%+1,ncar%)
              file_add 6,dir$+file$
            else
              item_add 6,l$
            end_if
        next i%
      end_if
  end_if
  min 9,1
  max 9,count(6)
  if count(6)>0
      position 9,1
      active 9
  end_if
  if nbinc%=0
      message "Aucune directive #INCLUDE n' a été trouvé !"
  end_if
end_sub

sub SaveFile()
  file_save 6,nf$
end_sub
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 
PanoAssembleur
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1

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: