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
» Gestionnaire de Projets Panoramic
par Minibug Aujourd'hui à 2:10

» Mah-Jong européen new-look
par jjn4 Hier à 16:35

» Button_picture
par pascal10000 Hier à 11:41

» Pourquoi le compilateur stagne
par Minibug Hier à 11:09

» 4 (en analyse): SYNEDIT_TARGET_IS_OBJECT devient inactif
par Jack Hier à 10:09

» 3 (en analyse): Mauvaise interprétation du string "THEN"
par Jack Hier à 10:03

» KGF.dll - demandes ou suggestions de modifications ou ajouts
par Marc Hier à 10:00

» KGF_dll - nouvelles versions
par pascal10000 Mer 13 Déc 2017 - 17:27

» track_bar circulaire
par Klaus Mar 12 Déc 2017 - 13:54

» API Windows
par Klaus Mar 12 Déc 2017 - 3:21

» Cartes de voeux, menus, etc.
par JL35 Lun 11 Déc 2017 - 17:48

» a l'aide klaus
par Minibug Lun 11 Déc 2017 - 11:42

» bug SYNEDIT_TARGET_IS_OBJECT
par Jack Lun 11 Déc 2017 - 0:16

» Jukebox : Serge Reggiani
par papydall Sam 9 Déc 2017 - 5:58

» Ecouter la radio fm sur votre pc
par pascal10000 Sam 9 Déc 2017 - 3:42

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Décembre 2017
LunMarMerJeuVenSamDim
    123
45678910
11121314151617
18192021222324
25262728293031
CalendrierCalendrier

Partagez | 
 

 PanoAssembleur

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

avatar

Nombre de messages : 8002
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: