Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| remonter d'un repertoir | |
| |
que pencer vous de mon programme ?? | utils | | 33% | [ 1 ] | innutils | | 33% | [ 1 ] | boff! | | 33% | [ 1 ] | nul | | 0% | [ 0 ] | vraiemant nul | | 0% | [ 0 ] |
| Total des votes : 3 | | Sondage clos |
| Auteur | Message |
---|
vincelt
Nombre de messages : 24 Age : 48 Localisation : France 41,45 Date d'inscription : 06/12/2008
| Sujet: remonter d'un repertoir Dim 20 Juin 2010 - 17:57 | |
| bonjour a tous je traivail sur un petit explorateur personel pourriez vous jeter un oeil sur ma method pour remonter d'un niveau de repertoir je la trouve tres compliquer et un peu nul lol merci de votre aide precieuse - Code:
-
dim a$, rep$,b$,f$,n$,reps$,a,p label cli,sta,exec,quit rep$="c:" a=1 list 1:top 1, 25:width 1,200:height 1,390:on_click 1, cli list 2:top 2, 25:left 2, 205:width 2,340:height 2,390:on_click 2,exec button 10:top 10,400 :left 10,420:on_click 10, quit:caption 10,"Quitte" alpha 20 alpha 21:top 21,12:caption 21,"rep:" alpha 22:top 22,12:left 22,205:caption 22,"Fichiers" alpha 23:top 23,350 alpha 24:top 24,370
sta: dir_change rep$ caption 20,rep$
' methode perso pour remonter d'un niveau de repertoir while a<>3000 n$=mid$(rep$,a,1) if n$="" exit_while end_if reps$=left$(rep$,a) a=a+1 end_while while a<>0 n$=mid$(rep$,a,1) if n$="" exit_while end_if reps$=left$(rep$,a-2) a=a-1 end_while ' fin de la methose perso clear 1 clear 2 if rep$<>"c:" item_add 1,"..." end_if f$=file_find_first$ if instr(f$,".")=0 and f$<>"_" item_add 1,f$ end_if while f$<>"_" f$=file_find_next$ if f$<>"_" if instr(f$,".")=0 item_add 1,f$ else item_add 2,f$ end_if end_if end_while file_find_close end cli: b$=item_index$(1) if b$="..." rep$=reps$ else rep$=rep$+""+b$ end_if goto sta exec: execute rep$+""+item_index$(2) return quit: terminate | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: remonter d'un repertoir Lun 21 Juin 2010 - 0:03 | |
| Ton idée est intéressante, mais tel qu'il est publié, ton programme ne marche pas. Tout d'abord, en publiant ton programme, tu devrais doubler des backslash car sinon, ils ne sont pas visibles dans le code publié. Regarde bien ton post et tu verras. Ci-après, je l'ai republié ainsi et tu verras la différence. Puis, tu as mélangé une partie du code d'initialisation (de STA: à end) qui ne devrait se dérouler qu'une seule fois, au début, avec le code par évènement, en utilisant un goto. Or, ta routine on_click est appelée comme sous-programme, donc comme par un gosub, et il n'y a pas le return correspondant... J'ai adapté ton programme pour qu'il marche; mes modifications sont marquées par le commentaire ' Klaus. Tu verras, le programme est ainsi construit comme code purement évènementiel, et le déroulement correspond à la logique de Panoramic. J'ai rajouté une seule ligne pour pouvoir arrêter la remontée en arrivée au niveau c:. - Code:
-
dim a$, rep$,b$,f$,n$,reps$,a,p label cli,sta,exec,quit rep$="c:\" a=1 list 1:top 1, 25:width 1,200:height 1,390:on_click 1, cli list 2:top 2, 25:left 2, 205:width 2,340:height 2,390:on_click 2,exec button 10:top 10,400 :left 10,420:on_click 10, quit:caption 10,"Quitte" alpha 20 alpha 21:top 21,12:caption 21,"rep:" alpha 22:top 22,12:left 22,205:caption 22,"Fichiers" alpha 23:top 23,350 alpha 24:top 24,370
gosub sta : ' Klaus end : ' Klaus
sta: dir_change rep$ caption 20,rep$
' methode perso pour remonter d'un niveau de repertoir while a<>3000 n$=mid$(rep$,a,1) if n$="\" exit_while end_if reps$=left$(rep$,a) a=a+1 end_while a = len(rep$) while a<>0 n$=mid$(rep$,a,1) if n$="\" exit_while end_if reps$=left$(rep$,a-2) if instr(reps$,"\")=0 then reps$ = reps$ + "\" : ' Klaus a=a-1 end_while
' fin de la methose perso clear 1 clear 2 if rep$<>"c:\" : item_add 1,"..." end_if f$=file_find_first$ if instr(f$,".")=0 and f$<>"_" item_add 1,f$ end_if while f$<>"_" f$=file_find_next$ if f$<>"_" if instr(f$,".")=0 item_add 1,f$ else item_add 2,f$ end_if end_if end_while file_find_close return : ' Klaus
cli: b$=item_index$(1) if b$="..." rep$=reps$ else if right$(rep$,1)<>"" then rep$ = rep$ + "" rep$=rep$+b$ end_if gosub sta : ' Klaus return
exec: execute rep$+""+item_index$(2) return
quit: terminate Ceci dit, creuse un peu ton traitement de chaînes de caractères: tes boucles de recherche et modification des chaînes rep$ et reps$ sont longues et inutilement compliquée; Panoramic permet de faire cela plus simplement et surtout plus rapidement. | |
| | | | remonter d'un repertoir | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |