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
» Une autre façon de terminer une application.
par Francis-mr Aujourd'hui à 12:07

» Compilateur FBPano
par jean_debord Aujourd'hui à 10:09

» Copier / coller du texte à partir de la fenêtre de commandes
par jean_debord Aujourd'hui à 9:46

» COMPILATEUR V 0.9 beta 8 du 18 aout 2017
par papydall Aujourd'hui à 5:01

» Mettre en windows en veille
par papydall Aujourd'hui à 4:15

» Stretch_on ne stretch plus...
par papydall Hier à 15:22

» Pb 18 (en analyse): RESTORE_LABEL avec DATA à la fin
par Jack Hier à 13:21

» Problème de traitement des opérateurs avec le compilateur.
par Pedro Alvarez Sam 19 Aoû 2017 - 20:01

» Pb 17 (résolu): ITEM_SELECT ne fonctionne pas
par Jack Jeu 17 Aoû 2017 - 19:26

» un nouveau editeur panobasic
par Jean Claude Jeu 17 Aoû 2017 - 10:18

» Le compilateur.
par Pedro Alvarez Jeu 17 Aoû 2017 - 8:36

» Pb 16 (résolu): ON_CLOSE plante à l'exécution
par Jack Mer 16 Aoû 2017 - 20:00

» Pb 15 (résolu): TIMER_ON plante à l'exécution
par Jack Mer 16 Aoû 2017 - 19:58

» KGF_dll - nouvelles versions
par Yannick Dim 13 Aoû 2017 - 17:35

» probleme d'outil
par Yannick Dim 13 Aoû 2017 - 17:32

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Août 2017
LunMarMerJeuVenSamDim
 123456
78910111213
14151617181920
21222324252627
28293031   
CalendrierCalendrier

Partagez | 
 

 PanoAssembleur

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

avatar

Nombre de messages : 7975
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 32 bits :: Vos sources, vos utilitaires à partager-
Sauter vers: