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.
#include logiciel Emptypar Pedro Aujourd'hui à 10:37

» Un autre pense-bête...
#include logiciel Emptypar Froggy One Jeu 21 Nov 2024 - 15:54

» Récupération du contenu d'une page html.
#include logiciel Emptypar Pedro Sam 16 Nov 2024 - 14:04

» Décompilation
#include logiciel Emptypar JL35 Mar 12 Nov 2024 - 19:57

» Un album photos comme du temps des grands-mères
#include logiciel Emptypar jjn4 Mar 12 Nov 2024 - 17:23

» traitement d'une feuille excel
#include logiciel Emptypar jjn4 Jeu 7 Nov 2024 - 3:52

» Aide-mémoire mensuel
#include logiciel Emptypar jjn4 Lun 4 Nov 2024 - 18:56

» Des incomprèhension avec Timer
#include logiciel Emptypar Klaus Mer 30 Oct 2024 - 18:26

» KGF_dll - nouvelles versions
#include logiciel Emptypar Klaus Mar 29 Oct 2024 - 17:58

» instructions panoramic
#include logiciel Emptypar maelilou Lun 28 Oct 2024 - 19:51

» Figures fractales
#include logiciel Emptypar Marc Ven 25 Oct 2024 - 12:18

» Panoramic et Scanette
#include logiciel Emptypar Yannick Mer 25 Sep 2024 - 22:16

» Editeur d étiquette avec QR évolutif
#include logiciel Emptypar JL35 Lun 23 Sep 2024 - 22:40

» BUG QR Code DelphiZXingQRCode
#include logiciel Emptypar Yannick Dim 22 Sep 2024 - 11:40

» fichier.exe
#include logiciel 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 à ne pas rater :
LEGO Icons 10331 – Le martin-pêcheur
35 €
Voir le deal

 

 #include logiciel

Aller en bas 
AuteurMessage
Invité
Invité




#include logiciel Empty
MessageSujet: #include logiciel   #include logiciel EmptyDim 18 Avr 2010 - 1:04

Je viens de faire un programme qui aide a implémenter une routine comme include dans un autre programme.

En faite l'aide n'est pas de transformer une routine pour être modifié et être incorporer, mais plutôt de préparer cette routine pour être implémenté aujourd'hui, demain, dans un an avec le moindre souci.

J'ai fait un fichier PDF pour apporter la méthode, mais comme chacun a sa propre méthode pour faire ses programmes, il n'est pas évident de trouver une solution qui convienne à tous.

J'ai fait ce fichier PDF mais maintenant je pense qu'il vaudrait mieux procéder autrement. D'abord lire jusqu'au bout ce fichier pour comprendre, puis d'aller directement dans la 2ème partie, pour ajouter le module que je mets avec.

Ce qui me gène c'est que je ne connais pas sous quel nom de dossier et quel chemin ce programme sera installé.

Aussi pour faciliter l'implantation, je vous demanderai de créer à la racine du disque (C ou autre, vu que le programme recherche le fichier dans tous les lecteur) de créer un fichier nommé comme dans le programme :GESTION_FICHIERS.txt
de mettre dedans les lignes suivantes:

' **** Pour le programme préparation_INCLUDE.bas, d'abord le nom du fichier, puis le chemin complet ****

' la ligne suivante mettre le DOSSIER dans lequel sera installé le programme INCLUDE (garder DIR_INCLUDE et changer la ligne qui suit)
DIR_INCLUDE
Basic_Panoramique\GESTION_INCLUDE\INCLUDE

LISTE_INCLUDE.txt
Basic_Panoramique\GESTION_INCLUDE\LISTE_INCLUDE.txt

' pour mettre la fenêtre en icône
icone.fic
Basic_Panoramique\GESTION_INCLUDE\INCLUDE\FICHIER_INDEXE\icone.fic


recopier toutes les lignes en gras dans le fichier "GESTION_FICHIERS.txt".
La ligne en rouge est le chemin du programme
les lignes en marron devront garder le nom du fichier, mais mettre le chemin devra correspondre avec l'emplacement du fichier.
Même si le chemin de correspond pas mais que le fichier est présent dans ce chemin, il n'y a pas de problème, vu que le programme cherche dans le fichier GESTION_FICHIER.txt, l'adresse qui est marquée.

Dans le icone.fic, mettre les lignes suivantes:

' fenêtre icone
150 : haut
' couleur icone
0
255
0


le fichier pdf:
https://www.archive-host.com/compteur.php?url=https://sd-2.archive-host.com/membres/up/93503147062755081/aide_au_programme.pdf

le programme:
Code:
' essai de méthode pour include
error_french
width 0,900:height 0,900:left 0,screen_x-910

dim n_objet% , res% , choix% , dossier$ , f$ , a%, a$ , saisie$(100) , b%  ,d$  ,disque$
dim rouge%,vert%,bleu% , haut% ,liste_fiche$ , controle% , fichier$ ,dir_include$
label copie_label , choisir , copie_sub , memo_list , envoi_variable , envoi_sub , sauve , new
label veille , reveille , icone , choisir_new , exemple
 on_click 0,veille
dll_on "F:\Basic_Panoramique\KGF.dll" :n_objet% = 1
rouge%=0:vert%=255:bleu%=0

check  17  :left 17,800:top 17,0:width 17,90:caption 17,"bloc/débloc":on_click 17,memo_list
alpha  1  :left 1,420:caption 1,"copie LABEL pour initialiser DIMs et LABELs d'un INCLUDE"
            color 1,255,210,0
memo    2  :left 2,300:top 2,15:height 2,70:width 2,500:color 2,255,210,0:font_bold 2 : ' orange
button  3  :left 3,820:top 3,60:width 3,50:caption 3,"copier":on_click 3,copie_label
alpha  4  :left 4,100:top 4,10:caption 4,"choix : # INCLUDE":color 4,214,243,190    : ' vert clair
list    5  :left 5,10:top 5,30:width 5,230:height 5,200:font_bold 5:on_click 5,choisir
            color 5,214,243,190:font_size 5,12
alpha  6  :left 6,430:top 6,100:caption 6,"copie de la commande INCLUDE avec le nom du fichier"
            color 6,230,215,175
memo    7  :left 7,250:top 7,120:height 7,70:width 7,550:color 7,230,215,175          : ' marron crème
button  8  :left 8,820:top 8,165:width 8,50:caption 8,"copier":on_click 8,copie_sub
alpha  9  :left 9,310:top 9,210:caption 9,"***  PROGRAMME INCLUDE  ***":color 9,220,220,220
list  10  :left 10,10:top 10,235:width 10,500:height 10,525:color 10,220,220,220
alpha  11  :left 11,660:top 11,200:caption 11,"VARIABLES":font_size 11,10:font_bold 11:color 11,255,240,180

alpha  13  :left 13,600:top 13,630:caption 13,"nom de chaque sous programme":font_size 13,10
            color 13,240,220,230
memo  14  :left 14,520:top 14,650:width 14,350:height 14,210:color 14,240,220,230    :' violet clair
            font_size 14,10:font_bold 14
alpha  15  :left 15,180:top 15,760:caption 15,"Gestionnaire Presse Papier":color 15,180,180,180
memo  16  :left 16,10:top 16,775:width 16,500:height 16,80:color 16,180,180,180
memo  18  :width 18,1:height 18,1:' sert à envoyer les infos dans le presse papier par la dll de KLAUS
button 19  :left 19,810:top 19,20:width 19,70:height 19,25:caption 19,"exemples":on_click 19,exemple
memo  12
open_dialog 20
dlist  21  :' charge le fichiers des chemins de chaque fichier
button 22  :left 22,250:top 22,30:width 22,40:height 22,20:caption 22,"SAUVE":on_click 22,sauve
button 23  :left 23,250:top 23,60:width 23,40:height 23,20:caption 23,"NEW"  :on_click 23,new
alpha  24  :left 24,1:top 24,1:caption 24,"  Aide"+chr$(13)+"INCLUDE":hide 24:on_click 24,reveille

form  30  :hide 30:width 30,850:height 30,800:caption 30,"EXEMPLES pour la programmation":left 30,screen_x-910
memo  31  :parent 31,30:full_space 31:font_size 31,12:color 31,233,255,228:font_bold 31

rem "recherche de la lettre du disque et du programme qui possède le chemin des fichiers"
for a%=67 to 90  : ' on commence à C, on évite les disque A et B
  if file_exists(chr$(a%)+":\GESTION_FICHIERS.txt")=1
      disque$=chr$(a%)+":\"
      liste_fiche$=disque$+"GESTION_FICHIERS.txt"
      file_load 21,liste_fiche$
      exit_for
  end_if
next a%

gosub icone    :' cherche les paramètres de celui-ci
gosub memo_list

for a%=1 to count(21)
  a$=item_read$(21,a%)
  if a$="LISTE_INCLUDE.txt" then file_load 5,disque$+item_read$(21,a%+1):exit_for
next a%

end
' =============mettre en memo ou en list si on modifie ou non===================
memo_list:
  rem "Pour les variables, les sous-routines et labels, pour pouvoir cliquer sur"
  rem "une ligne et la transmettre au presse papier, les memo sont transformé en"
  rem "liste. Si on veut modifier, les listes deviennent des memos"
  ' -----------------------------------------
  b%=count(2)
  if count(2)>0
      for a%=1 to b%
        saisie$(a%)=item_read$(2,a%)
      next a%
  end_if
  if checked(17)=1
      hide 22 :hide 23:hint 17, "cliquez pour débloquer"
      delete 2
      list  2
  else
      show 22 : show 23 :hint 17,"cliquez pour bloquer"
      delete 2
      memo  2
  end_if

  if b%>0
      for a%=1 to b%
        item_add 2,saisie$(a%)
      next a%
  end_if
  left 2,300:top 2,15:height 2,70:width 2,500:color 2,255,210,0:font_bold 2
  ' -----------------------------------------
  b%=count(7)
  if count(7)>0
      for a%=1 to b%
        saisie$(a%)=item_read$(7,a%)
      next a%
  end_if
  if checked(17)=1
      delete 7
      list  7
  else
      delete 7
      memo  7
  end_if

  if b%>0
      for a%=1 to b%
        item_add 7,saisie$(a%)
      next a%
  end_if
  left 7,250:top 7,120:height 7,70:width 7,550:color 7,230,215,175
  ' -----------------------------------------
  b%=count(12)
  if count(12)>0
      for a%=1 to b%
        saisie$(a%)=item_read$(12,a%)
      next a%
  end_if
  if checked(17)=1
      delete 12
      list  12 :on_click 12,envoi_variable
      hint 12,"l'apostrophe permet un message"+chr$(13)+ "qui ne sera pas copié"
  else
      delete 12
      memo  12
  end_if

  if b%>0
      for a%=1 to b%
        item_add 12,saisie$(a%)
      next a%
  end_if
  left 12,520:top 12,220:width 12,350:height 12,400:color 12,255,240,180
  font_size 12,10:font_bold 12
  ' -----------------------------------------
  b%=count(14)
  if b%>0
      for a%=1 to b%
        saisie$(a%)=item_read$(14,a%)
      next a%
  end_if
  if checked(17)=1
      delete 14
      list 14 :on_click 14,envoi_sub
      hint 14,"l'apostrophe permet un message"+chr$(13)+ "qui ne sera pas copié"
  else
      delete 14
      memo 14
  end_if
  if b%>0
      for a%=1 to b%
        item_add 14,saisie$(a%)
      next a%
  end_if
  left 14,520:top 14,650:width 14,350:height 14,210:color 14,240,220,230
  font_size 14,10:font_bold 14
return
' ==============================================================================
envoi_variable:
  a$=item_index$(12):clear 18:set_focus 18  :color 16,255,150,0
  a%=instr(a$,"'"):if a%>0 then a$=trim$(left$(a$,a%-1))+" "
  item_add 18,a$:res%= dll_call0("ClipboardCopy")
  clear 16:clipboard_paste 16 :wait 100  :color 16,180,180,180
return
' ==============================================================================
envoi_sub:
  a$=item_index$(14):clear 18:set_focus 18 :color 16,255,150,0
  a%=instr(a$,"'"):if a%>0 then a$=trim$(left$(a$,a%-1))
  item_add 18,a$:res%= dll_call0("ClipboardCopy")
  clear 16:clipboard_paste 16 :wait 100 :color 16,180,180,180
return

' ==============================================================================
copie_label:
  if count(2)>0
    clear 18
    for a%=1 to count(2)
        a$=item_read$(2,a%)
        item_add 18,a$
    next a%
    set_focus 18 :color 16,255,150,0
    res% = dll_call0("ClipboardCopy")
    clear 16:clipboard_paste 16 :wait 100 :color 16,180,180,180
  end_if
return
' ==============================================================================
choisir:
  f$=item_index$(5)
choisir_new:
  clear 2:clear 7:clear 12:clear 14
  for a%=1 to count(21)
    a$=item_read$(21,a%)
    d$=item_read$(21,a%+1)
    if a$=f$+".bas"
        file_load 10,disque$+item_read$(21,a%+1): clear 7:item_add 7,"#INCLUDE "+chr$(34)+disque$+item_read$(21,a%+1)+chr$(34)
        b%=instr(d$,f$):dossier$=left$(d$,b%-1)
        exit_for
    end_if
  next a%

  for a%=1 to count(21)
    a$=item_read$(21,a%)
    if a$=f$+"_label.rxt"
        if file_exists(disque$+item_read$(21,a%+1)) = 1 then file_load 2,disque$+item_read$(21,a%+1)
        exit_for
    end_if
  next a%

  for a%=1 to count(21)
    a$=item_read$(21,a%)
    if a$=f$+"_sub.rxt"
        if file_exists(disque$+item_read$(21,a%+1))=1 then file_load 14,disque$+item_read$(21,a%+1)
        exit_for
    end_if
  next a%
 
  for a%=1 to count(21)
    a$=item_read$(21,a%)
    if a$=f$+"_variable.rxt"
        if file_exists(disque$+item_read$(21,a%+1))=1 then file_load 12,disque$+item_read$(21,a%+1)
        exit_for
    end_if
  next a%
 
  for a%=1 to count(21)
    a$=item_read$(21,a%)
    if a$=f$+"_exemple.rxt"
        if file_exists(disque$+item_read$(21,a%+1))=1 then file_load 31,disque$+item_read$(21,a%+1)
        exit_for
    end_if
  next a%

  mark_on 17:gosub memo_list
return
' ==============================================================================
icone:
  a$=""
  for a%=1 to count(21)
    a$=item_read$(21,a%)
    if a%+1<=count(21)
    if a$="icone.fic" then a$=item_read$(21,a%+1):exit_for
    end_if
  next a%
  if a%<=count(21)
    if file_exists(disque$+a$)=1
        file_open_read 1,disque$+a$
        file_readln 1,a$:' droite%=val(left$(a$,instr(a$,":")-1))
        file_readln 1,a$:haut%=val(left$(a$,instr(a$,":")-1))
        file_readln 1,a$
        file_readln 1,rouge%
        file_readln 1,vert%
        file_readln 1,bleu%
        file_close 1
    end_if
  end_if
return
' ==============================================================================
copie_sub:
  if count(7)>0
    clear 18  :color 16,255,150,0
    for a%=1 to count(7)
        a$=item_read$(7,a%)
        item_add 18,a$
    next a%
    set_focus 18
    res% = dll_call0("ClipboardCopy")
    clear 16:clipboard_paste 16 :wait 100 :color 16,180,180,180
  end_if
return
' ==============================================================================
sauve:
  color 0,226,190,145
  repeat:until scancode=0
  wait 100
  ' -----
  for a%=1 to count(21)
      if f$+"_label.rxt"  =item_read$(21,a%) then file_save 2,disque$+item_read$(21,a%+1):exit_for
  next a%
  ' -----
  for a%=1 to count(21)
      if f$+"_variable.rxt"=item_read$(21,a%) then file_save 12,disque$+item_read$(21,a%+1):exit_for
  next a%
  ' -----
  for a%=1 to count(21)
      if f$+"_sub.rxt"    =item_read$(21,a%) then file_save 14,disque$+item_read$(21,a%+1):exit_for
  next a%
  ' -----
  for a%=1 to count(21)
      if f$+"_exemple.rxt" =item_read$(21,a%) then file_save 31,disque$+item_read$(21,a%+1):exit_for
  next a%

  file_save 21,liste_fiche$
 
  for a%=1 to count(21)
  a$=item_read$(21,a%)
  if a$="LISTE_INCLUDE.txt" then file_save 5,disque$+item_read$(21,a%+1):exit_for
  next a%
 
  caption 22,"SAUVE"
  color 0,236,235,222
  ' -----
return
' ==============================================================================
new:
  clear 2:clear 7:clear 10:clear 12:clear 14:clear 31
  caption 22,"AJOUT"
  fichier$ = file_name$(20):a$=fichier$
  rem "traiter le retour de fichier NUL"
  a%=1
  while a%<>0
    a%=instr(a$,"\"):if a%>0 then a$=right$(a$,len(a$)-a%)
  end_while
  a$=left$(a$,len(a$)-4)
  for a%=1 to count(21)
    if a$=item_read$(21,a%)
        message "le fichier :"+a$+" est déjà dans la liste"
        exit_for
    end_if

  next a%
  if a%>count(21)
      rem "on le rajoute"
      controle%=message_confirmation_yes_no("le programme s'apprète à rajouter le fichier: "+a$+chr$(13)+ "on continue ?")
      if controle%=1
        item_add 5,a$
        item_add 21,""
        item_add 21,"' programme: "+a$
        item_add 21,a$+".bas"
        f$=right$(fichier$,len(fichier$)-3)
        item_add 21,f$
        f$=left$(f$,len(f$)-4)
        item_add 21,""
        rem "c'est plus bon, pas le bon dossier pour label, variable et sub"

          for a%=1 to count(21)
              if item_read$(21,a%)="DIR_INCLUDE" then dir_include$=item_read$(21,a%+1):exit_for
          next a%
          dir_change disque$+dir_include$
          if dir_exists(a$)=0 then dir_make a$
         
          rem "controle à partir d'ici"
          dir_include$=dir_include$+"\"+a$
          item_add 21,a$+"_label.rxt"
          item_add 21,dir_include$+"\"+a$+"_label.rxt"
          item_add 21,""
          item_add 21,a$+"_variable.rxt"
          item_add 21,dir_include$+"\"+a$+"_variable.rxt"
          item_add 21,""
          item_add 21,a$+"_sub.rxt"
          item_add 21,dir_include$+"\"+a$+"_sub.rxt"
          item_add 21,a$+"_exemple.rxt"
          item_add 21,dir_include$+"\"+a$+"_exemple.rxt"
      end_if
      message "Pour l'instant, il n'y a pas de sauvegarde sur l'ensemble"+chr$(13)+"des fichiers qui ont étés ajoutés. Penser à faire une sauvegarde"+chr$(13)+"avant de choisir un autre fichier INCLUDE ou de quitter le programme"
      f$=a$
      gosub choisir_new
  end_if
return
' ==============================================================================
veille:
  border_hide 0:width 0,45:height 0,45:color 0,rouge%,vert%,bleu%:on_click 0,reveille
  hide 4:hide 5:hide 30:left 0,screen_x-45:top 0,150:show 24
return
' ==============================================================================
reveille:
  width 0,900:height 0,900:left 0,screen_x-910:top 0,0:color 0,236,235,222:on_click 0,veille
  border_normal 0:show 4:show 5 :hide 24
return
' ==============================================================================
exemple:
  show 30:set_focus 31
return

Installé ce programme.

maintenant le module que j'ai fait et qui peut éventuellement servir, mais qui démarrera le programme, et permettra de le comprendre:

Code:
' ' ==============================================================================
                              rem " parties include "
' ==============================================================================

init_fichier_avec_separateur:
rem "réduction préfixe pour variable : FAS_ pour Fichier Avec Séparateur"
  label FAS_separe , FAS_completion , FAS_choix , FAS_insert , FAS_del , FAS_ajout
 '  label init_fichier_objet
  dim FAS_s$      :' séparateur
  dim FAS_a$      :' a$ dans la partie include
  dim FAS_copie$  :' copie en cas de problème ou coupure/blocage
  dim FAS_l        :' numéro de la ligne en cours
  dim FAS_c        :' numéro de l'élément dans la ligne
  dim FAS_v%      :' sert à trouver les séparateurs
  dim FAS_a%      :' pour a%

              ' dlist pour recevoit le fichier
  list FAS_objet  : top FAS_objet,30  :  width FAS_objet,250
              ' dlist pour séparer chaque élément d'une ligne de la liste
  memo FAS_objet+1: top FAS_objet+1,30:  left FAS_objet+1,320:width FAS_objet+1,250

  FAS_s$=chr$(1)
  FAS_copie$=left$(FAS_dlist$,len(FAS_dlist$)-3)+"copie"

  on_click FAS_objet,FAS_choix
return

' ==============================================================================

FAS_separe:
  if count(FAS_objet)>0 and FAS_l <= count(FAS_objet)
      FAS_a$=item_read$(FAS_objet,FAS_l)+FAS_s$
      clear FAS_objet+1
      repeat
        FAS_v%=instr(FAS_a$,FAS_s$)
        if FAS_v%>0
            item_add FAS_objet+1,left$(FAS_a$,FAS_v%-1)
            FAS_a$=right$(FAS_a$,len(FAS_a$)-FAS_v%)
        end_if
      until FAS_v%=0
  end_if
return

' ==============================================================================

FAS_completion:
    FAS_a$=""
    if count(FAS_objet+1)>0
      for FAS_a%=1 to count(FAS_objet+1)-1
          FAS_a$=FAS_a$+item_read$(FAS_objet+1,FAS_a%)+FAS_s$
      next FAS_a%
      FAS_a$=FAS_a$+item_read$(FAS_objet+1,count(FAS_objet+1))
      item_delete FAS_objet,FAS_l
      item_insert FAS_objet,FAS_l,FAS_a$
      file_save FAS_objet,FAS_dlist$
      file_save FAS_objet,FAS_copie$
  end_if
return

' ==============================================================================

FAS_choix:
  FAS_l = item_index(FAS_objet)
  gosub FAS_separe
  ' text 5,FAS_l :' à supprimer ensuite:
return

' ==============================================================================


FAS_insert:
    FAS_a$=""
    if count(FAS_objet+1)>0
      for FAS_a%=1 to count(FAS_objet+1)-1
          FAS_a$=FAS_a$+item_read$(FAS_objet+1,FAS_a%)+FAS_s$
      next FAS_a%
      FAS_a$=FAS_a$+item_read$(FAS_objet+1,count(FAS_objet+1))
      item_insert FAS_objet,FAS_l,FAS_a$
      file_save FAS_objet,FAS_dlist$
      file_save FAS_objet,FAS_copie$
  end_if
return

' ==============================================================================

FAS_del:
    if count(FAS_objet+1)>0
      item_delete FAS_objet,FAS_l
      file_save FAS_objet,FAS_dlist$
      file_save FAS_objet,FAS_copie$
    end_if
return

' ==============================================================================

FAS_ajout:
    if count(FAS_objet+1)>0
      FAS_a$=""
      for FAS_a%=1 to count(FAS_objet+1)
          FAS_a$=FAS_a$+item_read$(FAS_objet+1,FAS_a%)
          if FAS_a%<count(FAS_objet+1) then FAS_a$=FAS_a$+FAS_s$
      next FAS_a%
      item_add FAS_objet,FAS_a$
      file_save FAS_objet,FAS_dlist$
      file_save FAS_objet,FAS_copie$
    end_if
return

Si vous y tenez, voici les fichier que j'ai fait qui vont avec
pour la partie orange du 1er programme: (copier les lignes et coller les dans le memo orange du haut

' ======DIM LABEL OBJET départ pour Fichier Indexé INCLUDE=== "
rem "préfixe pour variable : >FAS_< pour Fichier Avec Séparateur"
dim FAS_objet,FAS_dlist$ ,a% ,disque$
FAS_objet=100 : rem "à modifier selon les n° objets du programme"
FAS_dlist$ = "F:\Basic_Panoramique\MODULES\FICHIER_DLIST\fichier_text.txt" :rem "modifier le nom du fichier"
label init_fichier_avec_separateur
gosub init_fichier_avec_separateur
rem " ======================================================== "


Pour les variables:

FAS_a$
FAS_s$ ' séparateur soit ici chr$(1)
FAS_dlist$ ' ici le nom du fichier envoyé =>dlist
FAS_copie$ ' nom de la copie
FAS_l ' N° de ligne
FAS_c ' 1er,2ème... mot de la ligne
FAS_v% ' pour instr: cherche le séparateur


pour l'exemple (après appuie sur le bouton:

Le programme fait deux objets. Le premier: LIST FAS_objet, qui reçoit le fichier texte
Le 2ème décompose une ligne en différents champs, qui sont séparé par FAS_s$ qui est chr$(1).
La premère chose à faire sera de modifier les paramètres de LIST FAS_objet, comme la position, la couleur ou autre.

Lorsqu'on clique sur une ligne de la liste, celle-ci est récupérée par FAS_l, et est envoyé dans le sous programme FAS_separe. Ce sous programme, comme vu plus haut, sépare les divers champs, et on peut les récupérer par exemple:
if count(FAS_objet+1)
for a%=1 to count(FAS_objet+1)
message item_read$(FAS_objet+1,a%)
next a%
Des éléments vous en faites ce que vous voulez.

DANS LES SUB QUI SUIVENT, il faut mettre la bonne ligne dans FAS_l (l comme: l igne)
Si vous modifiez une ligne par l'intermédiaire de FAS_objet+1, vous la recomposez par le sous programme: FAS_completion, qui fait en même temps deux sauvegarde, la normale, et une copie de sauvegarde, si une coupure de courant ou un plantage intervenait.

FAS_del: avec FAS_l, le n° à détruire, détruit cette ligne

Donner un n° à FAS_l, et faire un gosub FAS_insert, insérera une ligne avec les données qui sont dans FAS_objet+1

Remarque: la ligne étant dans dlist FAS_objet+1: exemple:
Clear FAS_objet+1
item_add FAS_objet+1,"nom:Dupont"
item_add FAS_objet+1,"prénom: Charles"
item_add FAS_objet+1,"profession:maitre-chanteur

FAS_l=10
if count(FAS_objet+1)>=FAS_l then gosub FAS_insert


Pour jjn4: il s'agissait bien de DIR_EXISTS(), je recherchais un dossier, et non unfichier dans le post que Jack à bloqué. (en fait la lettre du disque n'était pas présente dans la variable, et le chemin était incomplè (dommage qu'on n'est voulu me laisser la possibilité de répondre)

Je pense que je n'ai rien oublié
J'ai raccourci le titre, je crois qu'il va y avoir un flop.
Revenir en haut Aller en bas
Invité
Invité




#include logiciel Empty
MessageSujet: Re: #include logiciel   #include logiciel EmptyDim 18 Avr 2010 - 9:19

Je viens de modifier le 2ème programme qui est le module pour fichier
J'ai supprimé, la lecture d'un fichier dès le départ, vu qu'à ce moment là, le fichier n'est pas encore créé.

je mets ici un exemple pour se servir du programme à partir du fichier "inclusé" qui vient d'être modifié.

Code:

' ======DIM LABEL OBJET départ pour Fichier Indexé INCLUDE=== "
rem "préfixe pour variable : >FAS_< pour Fichier Avec Séparateur"
dim FAS_objet,FAS_dlist$ ,a% ,disque$
FAS_objet=100  : rem "à modifier selon les n° objets du programme"
FAS_dlist$ =  "F:\Basic_Panoramique\MODULES\FICHIER_DLIST\fichier_text.txt" :rem "modifier le nom du fichier"
label init_fichier_avec_separateur
gosub init_fichier_avec_separateur
rem " ======================================================== "

button 1:hide 1:left 1,300:caption 1,"go":width 1,40:on_click 1,FAS_completion
button 2:hide 2:left 2,350:caption 2,"insert":width 2,40:on_click 2,FAS_insert:hint 2,"insert ligne précédente"+chr$(10)+"n°ligne reste le même"
button 3:hide 3:left 3,400:caption 3,"delete":width 3,40:on_click 3,FAS_del
alpha  4:top 4,5:caption 4,"N° ligne"
edit  5:left 5,40:width 5,40:font_size 5,10
button 6:hide 6:left 6,450:caption 6,"ajout":width 6,40:on_click 6,FAS_ajout
open_dialog 7
alpha  8:top 8,30:left 8,280:caption 8,"prénom"
alpha  9:top 9,45:left 9,280:caption 9,"nom"
alpha 10:top 10,60:left 10,280:caption 10,"âge"


' TESTE de DECODAGE d'une ligne
for a%=1 to count(FAS_objet)
  FAS_l=a%                :' lecture d'une ligne
  gosub FAS_separe
  wait 100
next a%
message "maintenant on modifie"
set_focus FAS_objet+1
show 1
show 2
show 3
show 6

  FAS_dlist$ =file_name$(7)
  if file_exists(FAS_dlist$)= 1 then file_load FAS_objet,FAS_dlist$
end

#INCLUDE "F:\Basic_Panoramique\GESTION_INCLUDE\INCLUDE\FICHIER_INDEXE\fichier_indexé.bas"

J'espère qu'il y aura plus de compréhension dans ce programme.
Je n'ai rien modifié au "PDF" pour rajouter les modifications.

Je n'aurai pas le temps de le faire maintenant.
Revenir en haut Aller en bas
Invité
Invité




#include logiciel Empty
MessageSujet: Re: #include logiciel   #include logiciel EmptyDim 18 Avr 2010 - 9:30

Je viens de faire une petite modification pour qu'on entre le nom d'un fichier inexistant dans OPEN_DIALOG, pour le créer.
Il est évident que l'appel #include doit avoir votre propre chemin
Revenir en haut Aller en bas
Contenu sponsorisé





#include logiciel Empty
MessageSujet: Re: #include logiciel   #include logiciel Empty

Revenir en haut Aller en bas
 
#include logiciel
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Logiciel de traduction.
» Logiciel de TAO.
» logiciel 3D gratuit
» Nouvelle DLL SAPI.dll pour prononcer un texte
» Version majeure de mon logiciel.

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: