Oscaribout
Nombre de messages : 471 Date d'inscription : 29/12/2016
| Sujet: Re numerotation des objets Jeu 14 Nov 2019 - 3:41 | |
| J'avais prévu de mettre un programme android, mais je voulais renomer mes oobjets, car le programme final est composé de différent sous programmes, et cela posait problème. Comme ce n'est pas la première fois, j'ai décidé de faire un programme automatique pour cela. Par contrre, il est évident qu'il n'y a pas d'analyse pour le type de programmaton du genre: no% = no%+1 - Code:
-
rem "==================================" rem " Oscaribout 14/11/2019 Modifier numéros des Objets " rem "=================================="
' reprendre N° Objet ' label save: error_french height 0,screen_y : width 0,1000 : full_space 0
if environment$ <> "CLASSIC" DIR_IS_SHARED_DOWNLOADS end_if
dim l1$ , l2$ ,ob$ ' 1ere ligne N° objets à remplacer : 2"me ligne: Nouveau N° d'objet (ou faire une boucle FIR-NEXT l1$ = " 509 510 511 512 513 520 521 530 531 532 533 534 535 540 541 542 543 544 545 546 560 561 562 563 564 " l2$ = " 800 801 802 803 804 810 811 820 821 822 833 834 835 840 841 842 843 844 845 846 860 861 862 863 864 " ' La liste n'est pas complète. Seuls les objets qui ont un N° dans la commande doivent-être dans la liste ob$=" HEIGHT WIDTH FULL_SPACE FONT_SIZE FONT_BOLD " ob$=ob$+" container panel list memo combo dlist hviewer font_bold font_bold_off font_name file_load file_save " ob$=ob$+" item_add item_red$( item_index( item_index$( item_delete item_insert top left width check option container_option " ob$=ob$+" on_click on_change bar_both bar_vertical button edit text text$( caption image 2d_scene picture " :' voir les curseurs ob$=ob$+" caption$( count( font_color clear object_exists( font_color_item " ob$=ob$+" font_size_item height_item show hide show( hide( active inactive set_focus " ob$=ob$+" content_copy parent " dim a$ , b$ , c$ , v% ,f$ list 1 :width 1,1000 height 1,250:font_size 1,10:font_bold 1:font_name 1,"Consolas" : top 1,70 ' mettre le nom du fichier à reprogrammer ' file_load 1,"C:\Users\xxxxxx\Downloads\MEmu Download\00_teste_couleur_HTML.bas" file_load 1,"00_teste_couleur_HTML.bas" memo 2 :width 2,60:font_size 2,10:font_bold 2:font_name 2,"Consolas":font_bold 2:bar_both 2 height 2,550 : left 2,1010:top 2,100 memo 3 : width 3,60:font_size 3,10:font_bold 3:font_name 3,"Consolas":font_bold 3:bar_both 3:left 3,1070 height 3,550: left 3,1090 : top 3,100 list 4 : top 4,260:width 4,1000: height 4,500:font_size 4,10:font_bold 4:font_name 4,"Consolas": color 4,255,255,200 list(l1$,2) list(l2$,3)
save_dialog 5 button 6 : left 6,1160:top 6,0:caption 6,"sauvegarde" : top 6,75: on_click 6,save edit 10:width 10,width_client(0):height 10,35:font_size 10,12:font_bold 10 edit 11:width 11,width(10):height 11,35:font_size 11,12 : font_bold 11:top 11,35
list 12:left 12,1140:height 12,height(3):font_size 12,10:font_bold 12:font_name 12,"Consolas":width 12,120: top 12,100 dim a% , t$ mot_clef() renomme() end
'' _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/
SUB mot_clef() dim_local a$,v%,b$ a$=ltrim$(upper$(ob$)) v%= 0 repeat v%=instr(a$," ") if v% > 0 b$=trim$(left$(a$,v%-1)) if b$ <> "" item_add 12, b$+" " end_if a$=right_pos$(a$,v%+1) end_if until v%=0 or scancode = 27 END_SUB ' ===================================== SUB list(l1$,n%) repeat v% = instr_pos(l1$," ",v%+1) if v% > 0 b$ = right_pos$(l1$,v%+1) b$ = left$(b$ , instr(b$," ")-1) if b$ <> "" then item_add n%,b$ end_if until v% = 0 or scancode = 27 end_sub ' ===================================== save: f$ = file_name$(5) if f$ <> "_" then save 4,f$ return
SUB renomme() dim_local a$,b$,c$,d$,e$,g$,i%,j%,v%,w%, z% , nb%,ch%,k% ,l% ,h$ ,obj$ ,m$ ,n% , t% for i% = 1 to count(1) : ' on lit le fichier a$ = item_read$(1,i%) : text 10,a$ : text 11,a$ b$ = upper$(a$) : c$ = b$ v% = 0 for j% = 1 to count(12) d$ = item_read$(12,j%) repeat ' b$ = ligne , d$ = mot-clef v% = instr_pos(b$,d$,v%+1) if v% > 0 e$ = right_pos$(b$,v%) w% = len(trim$(d$)) : ' longueur mot-clef e$ = mid$(e$,w%+1,10) ' ici on recherche les chiffres du nb ch% = 0 : nb% = 0 : obj$ = "" : m$="" ' ------------- e$ est un des mot clef de la chaine for k% = 1 to len(e$) :' on regarde la suite de l'objet ou dommande qui doit-être un nombre ' on teste si c'est un nb if numeric(mid$(e$,k%,1)) = 1 obj$ = obj$ + mid$(e$,k%,1) if ch% = 0 then ch% = k% if scancode = 27 then end m$ = "" nb% = nb% +1 else if ch% > 0 rem " ici on doit pouvoir modifier le n° for l% = 1 to count(2) if item_read$(2,l%) = obj$ a$ = left$(a$,v%+w%+ch%-2) + item_read$(3,l%)+right_pos$(a$,v%+w%+ch%+nb%-1) text 11,a$ ' maintenant il faut voir si c'est parent ou content_copy, pour modifier le 2è nb if trim$(d$) = "PARENT" or trim$(d$) = "CONTENT_COPY" z% = instr_pos(a$,",",v%+w%+ch%) rem "z%, montre l'emplacement de la virgule e$ = right_pos$(a$,z%+1) ' maintenant il faut trouver le nombre et le changer si prévu nb% = 0 : ch% = 0 : g$ = "" for w% = 1 to 10 if numeric(mid$(e$,w%,1)) = 1 if ch% = 0 then ch%= w% g$ = g$+ mid$(e$,w%,1) else if ch% > 0 ' d'abord rechercher le nombre for t% = 1 to count(2) if item_read$(2,t%) = g$ obj$ = trim$(item_read$(3,t%)) a$ = left$(a$, z% + ch%-1) + obj$ + right_pos$(a$,z%+ch% + len(obj$)) text 11,a$ exit_for end_if next t% end_if end_if next w% end_if exit_for end_if next l% exit_for end_if end_if next k% if scancode = 27 then end end_if until v% = 0 or scancode = 27 next j% item_add 4,a$ next i% END_SUB
Je n'arrive pas à me connecter depuis mon ordi, et j'ai encore du mal avec la tablette. C'est pas évident de faire une copie. Remis le code depuis mon PC à midi pour enlever formatage des caractères accentués, produis sur Android. | |
|