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 |
|
|
| Explorateur | |
| | |
Auteur | Message |
---|
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Explorateur Jeu 13 Oct 2011 - 21:44 | |
| Je viens de voir l'intervention de Severin sur le post à côté, sur le même sujet, je voulais soumettre mes cogitations du jour sur un explorateur de fichiers, suite à l'idée initiale de minifly. Mon idée était de faire un explorateur à deux fenêtres possibles, pour pouvoir examiner deux répertoires en même temps, et copier un fichier entre deux répertoires. Voilà ce que ça donne (ici je suis en option 'une seule fenêtre', deux sont possibles, soit côte à côte, soit superposées (menu Affichage): et le programme: - Code:
-
' TwinExplo.bas, explorateur de fichiers, d'après une idée de minifly DIM D_List(2),F_List(2), Edl(2), Bt1(2), Bt2(2), Bt3(2), Bt4(2), Bt5(2), Bt6(2), Bt9(2) DIM rc$(2), nodir%, iv$, copy%, fco$, rco$, nol%, hex%, nof% DIM a$, b$, c$, d$, f$, n, i%, j%, k%, w, h, w0, h0, nfen, sens, hl, tl, wl, tp, lp, inivol% DIM sz, ad, v$, dw$, ta$, nc$, cw$, x1, y1, x2, y2, lfb, xc, yc, usname$, preced$ DIM atf%, xs1, xs2, sqm$, sel%(5000), nsel%, fsel%, fscr$, fvol$
LABEL Main, Dir, sdi, Volumes, Chrep, Chfic, Nmult, Razsel, Fenetres, UserName LABEL Voir, Irfan, Wlis, Nlg, HexDec, Fvo, Propr, Renom, Copie, Suppr, Exec, Fin, Aide
Edl(1) = 1000: D_List(1) = 1001: F_List(1) = 1002 Bt1(1)=1003: Bt2(1)=1004: Bt3(1)=1005: Bt4(1)=1006: Bt5(1)=1007:Bt6(1)=1008 Bt9(1)=1012 Edl(2) = 2000: D_List(2) = 2001: F_List(2) = 2002 Bt1(2)=2003: Bt2(2)=2004: Bt3(2)=2005: Bt4(2)=2006: Bt5(2)=2007:Bt6(2)=2008 Bt9(2)=2012
iv$ = "C:\Progra~1\Irfanv~1\i_view32.exe " IF FILE_EXISTS(iv$) = 0 iv$ = "C:\Progra~2\Irfanv~1\i_view32.exe ": ' (sous Windows 7) END_IF fscr$ = "C:\Temp\ScrVbs.vbs": ' script exécutable créé fvol$ = "C:\Temp\ResVbs.txt" GOSUB UserName: ' nom utilisateur du pc, appel unique du s/p sqm$ = CHR$(7) + " ": ' séquence sélections multiples w = 540: h = 480 hl = h-90: tl = 30 wl = 200 nfen = 1: sens = 0 nodir% = 0 preced$ = " "+CHR$(24) BORDER_SMALL 0: COLOR 0, 128,255,255 CAPTION 0, "- EXPLORATEUR -": ' GOSUB Main
MAIN_MENU 10 SUB_MENU 11: PARENT 11, 10: CAPTION 11, "Affichage" SUB_MENU 21: PARENT 21, 11: CAPTION 21, CHR$(7)+" Une fenêtre" SUB_MENU 22: PARENT 22, 11: CAPTION 22, " Deux fenêtres côte-à-côte" SUB_MENU 23: PARENT 23, 11: CAPTION 23, " Deux fenêtres superposées" FOR i% = 21 TO 23: ON_CLICK i%, Fenetres: NEXT i% SUB_MENU 12: PARENT 12, 10: CAPTION 12, "Aide" ON_CLICK 12, Aide SUB_MENU 13: PARENT 13, 10: CAPTION 13, "Quitter": ON_CLICK 13, Fin
GOSUB Main
BUTTON 20: HIDE 20: ' séparateur de fenêtres (éventuel) hl = h-100: tl = 40 ' n=Edl(1): EDIT n: LEFT n,10: TOP n,tl-25: WIDTH n,w-30 n=Edl(1): LIST n: LEFT n,10: TOP n,tl-36: WIDTH n,w-30: HEIGHT n,32 FONT_BOLD n: FONT_COLOR n, 64,0,0 n=D_List(1): LIST n: LEFT n,10: TOP n,tl: WIDTH n,wl: HEIGHT n,hl COLOR n,255,255,128: FONT_BOLD n: FONT_COLOR n,0,0,255: ON_CLICK n, Chrep n=F_List(1): LIST n: LEFT n,wl+20: TOP n,tl: WIDTH n,wl: HEIGHT n,hl ON_CLICK n, Chfic lfb = 2*wl+30 n = Bt1(1): BUTTON n: TOP n,tl: LEFT n,lfb: WIDTH n,90: HEIGHT n,25 CAPTION n, "Voir": ON_CLICK n, Voir n = Bt2(1): BUTTON n: TOP n,tl+30: LEFT n,lfb: WIDTH n,90: HEIGHT n,25 CAPTION n, "Propriétés": ON_CLICK n, Propr n = Bt3(1): BUTTON n: TOP n,tl+60: LEFT n,lfb: WIDTH n,90: HEIGHT n,25 CAPTION n, "Renommer": ON_CLICK n, Renom n = Bt4(1): BUTTON n: TOP n,tl+90: LEFT n,lfb: WIDTH n,90: HEIGHT n,25 CAPTION n, "Copier": ON_CLICK n, Copie n = Bt5(1): BUTTON n: TOP n,tl+120: LEFT n,lfb: WIDTH n,90: HEIGHT n,25 CAPTION n, "Supprimer": ON_CLICK n, Suppr n = Bt6(1): BUTTON n: TOP n,tl+150: LEFT n,lfb: WIDTH n,90: HEIGHT n,25 CAPTION n, "Exécuter": ON_CLICK n, Exec ' n = Bt9(1): BUTTON n: TOP n,tl+hl-50: LEFT n,lfb: WIDTH n,90: HEIGHT n,50 ' CAPTION n, "Quitter": ON_CLICK n, Fin 2D_FILL_COLOR 128,255,128: 2D_PEN_WIDTH 1 2D_CIRCLE lfb+45,tl+hl-45,20 PRINT_LOCATE lfb+42,tl+hl-52: PRINT "1" nof% = 1: rc$(nof%) = DIR_CURRENT$: GOSUB Dir
END ' ============================================================================= Fin: TERMINATE ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Main: IF nfen = 1 w0 = w: h0 = h ELSE IF sens = 0 w0 = 2*w: h0 = h ELSE w0 = w: h0 = 2*h -50 END_IF END_IF WIDTH 0, w0: HEIGHT 0, h0 CAPTION 21, " Une fenêtre" CAPTION 22, " Deux fenêtres côte-à-côte" CAPTION 23, " Deux fenêtres superposées" IF nfen = 1 CAPTION 21, CHR$(7)+" Une fenêtre" ELSE IF sens = 0 CAPTION 22, CHR$(7)+" Deux fenêtres côte-à-côte" ELSE CAPTION 23, CHR$(7)+" Deux fenêtres superposées" END_IF END_IF RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Dir: CLEAR Edl(nof%): ITEM_ADD Edl(nof%), DIR_CURRENT$ CLEAR F_List(nof%) IF nodir% = 0 CLEAR D_List(nof%) IF LEN(DIR_CURRENT$) > 3 THEN ITEM_ADD D_List(nof%), preced$ END_IF IF DIR_CURRENT$ = "C:\Documents and Settings" ITEM_ADD D_List(nof%), usname$: GOTO sdi END_IF a$ = FILE_FIND_FIRST$ WHILE a$ <> "_" IF FILE_EXISTS(a$) = 0 IF nodir% = 0 THEN ITEM_ADD D_List(nof%), a$: ' répertoire ELSE ITEM_ADD F_LIST(nof%), a$: ' fichier END_IF a$ = FILE_FIND_NEXT$ END_WHILE sdi: IF nodir% = 0 i% = COUNT(D_List(nof%)) IF ITEM_READ$(D_List(nof%), 1) = preced$ THEN i% = i% - 1 a$ = STR$(i%)+" répertoires, " a$ = a$ + STR$(COUNT(F_List(nof%)))+" fichiers, " EXECUTE_WAIT "Cmd.exe /c DIR >" + fvol$ FILE_OPEN_READ 1, fvol$ WHILE FILE_EOF(1) = 0 FILE_READLN 1, b$ IF MID$(b$, 18, 7) = "fichier" b$ = LTRIM$(MID$(b$, 28, 100)): EXIT_WHILE END_IF END_WHILE FILE_CLOSE 1 k% = INSTR(b$, "ÿ") WHILE k% > 0: b$ = LEFT$(b$, k%-1)+"."+MID$(b$,k%+1,100) k% = INSTR(b$, "ÿ"): END_WHILE ITEM_ADD Edl(nof%), a$ + b$ ITEM_ADD D_List(nof%), STRING$(15,"-")+" VOLUMES "+STRING$(15, "-") GOSUB Volumes END_IF rc$(nof%) = DIR_CURRENT$ nodir% = 0 RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Chrep: ' Sélection d'un répertoire i% = NUMBER_CLICK: nof% = 1: IF i% = D_List(2) THEN nof% = 2 a$ = ITEM_INDEX$(D_List(nof%)): ' répertoire cliqué IF LEFT$(a$, 5) = "-----" THEN RETURN: ' (clic sur le séparateur) IF MID$(a$,2,1) = ":" a$ = LEFT$(a$,2) + "\": ' clic sur un volume ELSE IF a$ = " " + CHR$(24) ' répertoire 'parent' a$ = DIR_CURRENT$ FOR i% = LEN(a$) TO 1 STEP -1 IF MID$(a$, i%, 1) = "\" THEN EXIT_FOR NEXT i% a$ = LEFT$(a$, i%-1): IF LEN(a$) = 2 THEN a$ = a$ + "\" END_IF END_IF DIR_CHANGE a$ CLEAR Edl(nof%): ITEM_ADD EDl(nof%), DIR_CURRENT$ rc$(nof%) = DIR_CURRENT$ GOSUB Dir RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Chfic: ' Sélection d'un fichier i% = NUMBER_CLICK nof% = 1: IF i% = F_List(2) THEN nof% = 2: ' n° fenêtre active (1 ou 2) DIR_CHANGE rc$(nof%) IF atf% = 1 ' sélection multiple en cours, clic de fin de sélection IF nof% <> fsel% THEN atf% = 0: GOTO Nmult: 'fenêtre différente ... i% = SCANCODE: ' pour forcer la relecture du scancode IF SCANCODE <> 160 THEN atf% = 0: GOTO Nmult: ' (touche Maj relâchée) k% = F_List(nof%) xs2 = ITEM_INDEX(k%) nsel% = 0 FOR i% = xs1 TO xs2 nsel% = nsel% + 1: sel%(nsel%) = i% a$ = ITEM_READ$(k%, i%) ITEM_DELETE k%, i% ITEM_INSERT k%, i%, sqm$ + a$: ' pour affichage de la sélection NEXT i% atf% = 0 RETURN END_IF Nmult: IF copy% = 1 ' copie en instance copy% = 0 IF rco$ = rc$(nof%) MESSAGE "copie dans le même répertoire, abandon !" RETURN END_IF IF nsel% > 0 k% = F_List(fsel%): ' fenêtre de la sélection FOR i% = 1 TO nsel% a$ = MID$(ITEM_READ$(k%, sel%(i%)), LEN(sqm$)+1, 500) IF LEN(rco$) > 3 fco$ = rco$ + "\" + a$ ELSE fco$ = rco$ + a$ END_IF EXECUTE_WAIT "Cmd.exe /c COPY " + fco$ NEXT i% GOSUB Razsel ELSE EXECUTE_WAIT "Cmd.exe /c COPY " + fco$ END_IF nodir% = 1: GOSUB Dir ELSE IF nfen = 2 COLOR F_List(nof%), 255,192,192: ' fenêtre active (dernier clic) IF n = 1 COLOR F_List(2), 255,255,255 ELSE COLOR F_List(1), 255,255,255 END_IF END_IF k% = F_List(nof%): ' fenêtre active xs1 = ITEM_INDEX(k%): ' élément cliqué IF nsel% > 0 THEN GOSUB Razsel: ' raz de la sélection éventuelle en cours i% = SCANCODE: ' pour forcer la relecture du scancode IF SCANCODE = 160: ' touche Maj enfoncée (pour sélection multiple) IF nsel% > 0 THEN GOSUB Razsel fsel% = nof%: ' fenêtre de la sélection atf% = 1 END_IF END_IF RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Razsel: ' effacement de la sélection multiple en cours k% = F_List(fsel%): ' fenêtre de la dernière sélection FOR i% = 1 TO nsel% j% = sel%(i%): a$ = ITEM_READ$(k%, j%) IF LEFT$(a$, LEN(sqm$)) = sqm$ a$ = MID$(a$, LEN(sqm$)+1, 500) ITEM_DELETE k%, j% ITEM_INSERT k%, j%, a$ END_IF NEXT i% nsel% = 0 RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Fenetres: IF CLICKED(21) = 1: ' 1 fenêtre IF nfen = 1 THEN RETURN nfen = 1 DELETE Edl(2): DELETE D_List(2): DELETE F_List(2) ELSE: ' 2 fenêtres IF CLICKED(22) = 1: ' côte à côte IF nfen = 2 IF sens = 0 THEN RETURN ELSE LIST Edl(2): LIST D_List(2): LIST F_List(2) END_IF sens = 0 ELSE: ' superposées IF nfen = 2 IF sens = 1 THEN RETURN ELSE LIST Edl(2): LIST D_List(2): LIST F_List(2) END_IF sens = 1 END_IF nfen = 2 END_IF GOSUB Main IF nfen = 2 IF sens = 0 tp = tl: lp = w+10 ELSE tp = h-20: lp = 10 END_IF n=Edl(2): LEFT n,lp: TOP n,tp-36: WIDTH n,w-30: HEIGHT n, 32 FONT_BOLD n: FONT_COLOR n, 64,0,0 n=D_List(2): LEFT n,lp: TOP n,tp: WIDTH n,wl: HEIGHT n,hl COLOR n,255,255,128: FONT_BOLD n: FONT_COLOR n,0,0,255: ON_CLICK n, Chrep n=F_List(2): LEFT n,wl+lp+10: TOP n,tp: WIDTH n,wl: HEIGHT n,hl: ON_CLICK n, Chfic 2D_TARGET_IS 0: 2D_PEN_WIDTH 6: 2D_PEN_COLOR 0,128,128: ' séparateur IF sens = 0 x1 = w: y1 = 0: x2 = x1: y2 = h ELSE x1 = 0: y1 = h-54: x2 = w0: y2 = h-54 END_IF 2D_LINE x1,y1,x2,y2: ' séparateur xc = 2*wl+lp+65: yc = tp+hl-45 2D_PEN_WIDTH 1: 2D_PEN_COLOR 0,0,0: 2D_FILL_COLOR 128,255,128::2D_CIRCLE xc,yc,20 PRINT_LOCATE xc-3,yc-7: PRINT "2" rc$(2) = "C:\": nof% = 2: GOSUB Dir END_IF RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Voir: i% = ITEM_INDEX(F_List(nof%)): IF i%<1 THEN RETURN a$ = ITEM_INDEX$(F_List(nof%)) c$ = UPPER$(RIGHT$(a$,4)) IF c$ = ".BMP" OR c$ = ".JPG" OR c$ = ".GIF" OR c$ = ".TGA" OR c$ = ".TIF" EXECUTE_WAIT iv$ + a$ + " /info=C:\Temp\info" FILE_OPEN_READ 1, "C:\Temp\info" WHILE FILE_EOF(1) = 0 FILE_READLN 1, b$ IF LEFT$(b$, 16) = "Image dimensions" b$ = MID$(b$, 20, 100): i% = INSTR(b$, " "): x1 = VAL(LEFT$(b$,i%-1)) b$ = MID$(b$, i%+3,100): j% = INSTR(b$, " "): y1 = VAL(LEFT$(b$,j%-1)) EXIT_WHILE END_IF END_WHILE FILE_CLOSE 1: FILE_DELETE "C:\Temp\info" IF c$ = ".GIF" OR c$ = ".TGA" OR c$ = ".TIF" b$ = "C:\Temp\ImgTmp.jpg" EXECUTE_WAIT iv$ + a$ + " /convert=" + b$ a$ = b$ END_IF IF OBJECT_EXISTS(95) = 1 THEN DELETE 95 FORM 95: TOP 95,100: LEFT 95,100: WIDTH 95,360: HEIGHT 95, 370 CAPTION 95, ITEM_INDEX$(F_List(nof%)) + " " + STR$(x1) + "x" + STR$(y1) PICTURE 98: PARENT 98,95: TOP 98,0:LEFT 98,0 IF x1 > y1 WIDTH 98,340: HEIGHT 98,INT(340*y1/x1) ELSE HEIGHT 98,320: WIDTH 98,INT(320*x1/y1) END_IF FILE_LOAD 98, a$: STRETCH_ON 98 BUTTON 99: PARENT 99,95:TOP 99,280: LEFT 99,270: WIDTH 99,70 CAPTION 99, "OK": ON_CLICK 99, Fvo BUTTON 100: PARENT 100,95:TOP 100,305:LEFT 100,270: WIDTH 100,70 CAPTION 100, "IrfanView": ON_CLICK 100, Irfan a$ = ITEM_INDEX$(F_List(nof%)) ELSE nol% = 0: hex% = 0 FORM 95: TOP 95,50: LEFT 95,50: WIDTH 95,650: HEIGHT 95, 900 COLOR 95,192,192,255 LIST 96: PARENT 96, 95: TOP 96, 20: WIDTH 96, 633: HEIGHT 96, 840 BUTTON 97: PARENT 97, 95: HEIGHT 97,21: CAPTION 97, "N°s de lignes" BUTTON 98: PARENT 98, 95: LEFT 98, 77: HEIGHT 98,21: CAPTION 98, "Mode Hexa" BUTTON 99: PARENT 99,95: LEFT 99, 154: HEIGHT 99,21: CAPTION 99, "Stop" HIDE 99 BUTTON 100: PARENT 100,95: LEFT 100, 231: HEIGHT 100,21: WIDTH 100, 50 FONT_SIZE 100,12: FONT_BOLD 100: CAPTION 100, CHR$(26)+"| |"+CHR$(27)+" " BUTTON 101: PARENT 101,95: LEFT 101, 285: HEIGHT 101,21: WIDTH 101, 50 FONT_SIZE 101,12: FONT_BOLD 101: CAPTION 101, "|"+CHR$(27)+" "+CHR$(26)+"| " BUTTON 105: PARENT 105, 95: LEFT 105,554: HEIGHT 105,21: CAPTION 105, "Quitter" ON_CLICK 97, Nlg: ON_CLICK 98, HexDec ON_CLICK 100, Wlis: ON_CLICK 101, Wlis: ON_CLICK 105,Fvo FILEBIN_OPEN_READ 1, a$: sz = FILEBIN_SIZE(1): FILEBIN_CLOSE 1 CAPTION 95, a$+ " " + STR$(sz) + " octets." FILE_LOAD 96, a$ END_IF RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Irfan: EXECUTE_WAIT iv$ + a$ RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Wlis: j% = WIDTH(95): i% = WIDTH(96) IF CLICKED(100) = 1 IF i% > 400 THEN WIDTH 95, j%-100: WIDTH 96, i%-100 ELSE IF j% < (SCREEN_X-100) THEN WIDTH 95, j%+100: WIDTH 96, i%+100 END_IF RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Nlg: IF hex% = 1 THEN RETURN CLEAR 96 IF nol% = 1 FILE_DELETE f$: nol% = 0: FILE_LOAD 96, a$: SHOW 97 ELSE f$ = "C:\Temp\Lig.tmp" k% = 0 FILE_OPEN_READ 1, a$: FILE_OPEN_WRITE 2, f$ WHILE FILE_EOF(1) = 0 FILE_READLN 1, b$: k% = k% + 1 FILE_WRITELN 2, RIGHT$(" "+STR$(k%),4)+": " + b$ END_WHILE FILE_CLOSE 1: FILE_CLOSE 2: FILE_LOAD 96, f$ nol% = 1 END_IF RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ HexDec: CLEAR 96 IF hex% = 1 hex% = 0: CAPTION 98, "Mode Hexa": FILE_LOAD 96, a$ SHOW 97: SHOW 100: SHOW 101 ELSE f$ = "C:\Temp\Lig.tmp" FILEBIN_OPEN_READ 1, a$ FONT_NAME 96, "Lucida Console": FONT_SIZE 96, 10 sz = FILEBIN_SIZE(1): ad = 0 PROGRESS_BAR 110: PARENT 110,95: TOP 110,2: LEFT 110, 230:WIDTH 110,325 MIN 110,0: MAX 110, sz SHOW 99: HIDE 97: HIDE 100: HIDE 101 hex% = 1: CAPTION 98, "Mode Texte" FOR ad = 0 TO sz-1 step 16 POSITION 110, ad FILEBIN_HEXA_READ 1, 16, d$ b$ = RIGHT$("0000"+HEX$(ad),5)+": ": c$ = "" FOR i% = 1 TO LEN(d$) STEP 2 k% = ad+(i%-1)/2+1 IF k%>sz c$ = c$ + " ": b$ = b$ + " " ELSE v$ = MID$(d$, i%, 2) j% = HEX(v$): IF j%<32 THEN j% = 46 c$ = c$ + CHR$(j%): b$ = b$ + v$ + " " END_IF IF i% = 7 OR i% = 15 OR i% = 23 THEN b$ = b$ + " " NEXT i% ITEM_ADD 96, b$ + " " + c$: DISPLAY IF CLICKED(99) = 1 ITEM_ADD 96, " ... Conversion Hexa stoppée par l'utilisateur ! ..." EXIT_FOR END_IF NEXT ad FILEBIN_CLOSE 1: DELETE 110 HIDE 99 END_IF RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Fvo: DELETE 95 IF FILE_EXISTS("C:\Temp\Lig.tmp")= 1 THEN FILE_DELETE "C:\Temp\Lig.tmp" RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Propr: i% = ITEM_INDEX(F_List(nof%)): IF i%<1 THEN RETURN a$ = ITEM_INDEX$(F_List(nof%)) IF LEN(rc$(nof%)) > 3 f$ = rc$(nof%) + "\" + a$ ELSE f$ = rc$(nof%) + a$ END_IF EXECUTE_WAIT "Cmd.exe /c DIR " + f$ + " /-C /X >" + "C:\Temp\Lig.tmp" FILE_OPEN_READ 1, "C:\Temp\Lig.tmp" WHILE FILE_EOF(1) = 0 FILE_READLN 1, b$ IF b$ <> "" AND LEFT$(b$, 1) <> " " dw$ = LEFT$(b$, 10)+MID$(b$,12,6): ' date dernière écriture ta$ = LTRIM$(MID$(b$, 18, 18)): ' taille nc$ = RTRIM$(MID$(b$, 37, 12)): ' nom court éventuel EXIT_WHILE END_IF END_WHILE FILE_CLOSE 1 EXECUTE_WAIT "Cmd.exe /c DIR " + f$ + "/TC >" + "C:\Temp\Lig.tmp" FILE_OPEN_READ 1, "C:\Temp\Lig.tmp" WHILE FILE_EOF(1) = 0 FILE_READLN 1, b$ IF b$ <> "" AND LEFT$(b$, 1) <> " " cw$ = LEFT$(b$, 10)+MID$(b$,12,6): ' date création EXIT_WHILE END_IF END_WHILE FILE_CLOSE 1: FILE_DELETE "C:\Temp\Lig.tmp" c$ = CHR$(13) + CHR$(10) b$ = f$ + c$ + c$ + "Taille:" + CHR$(9)+CHR$(9)+ta$ + " octets" b$ = b$ + c$ + "Création:" + CHR$(9)+cw$ b$ = b$ + c$ + "Dern.écriture:" + CHR$(9)+dw$ IF nc$ <> "" b$ = b$ + c$ + "Nom court:" + CHR$(9)+nc$ END_IF EXECUTE_WAIT "Cmd.exe /c ATTRIB " + f$ + " >" + fvol$ FILE_OPEN_READ 1, fvol$: FILE_READLN 1, a$: FILE_CLOSE 1: FILE_DELETE fvol$ b$ = b$ + c$ + "Attributs:" + CHR$(9)+LEFT$(a$,13) MESSAGE b$ RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Renom: i% = ITEM_INDEX(F_List(nof%)): IF i%<1 THEN RETURN a$ = ITEM_INDEX$(F_List(nof%)) c$ = MESSAGE_INPUT$("RENOMMER "+a$,"Nouveau nom:",a$) IF c$ = a$ THEN RETURN: ' inchangé ou cancel FILE_RENAME a$, c$: nodir% = 1: GOSUB Dir RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Copie: IF nsel% = 0 i% = ITEM_INDEX(F_List(nof%)): IF i%<1 THEN RETURN a$ = ITEM_INDEX$(F_List(nof%)) ELSE a$ = "la sélection" END_IF IF nfen = 1 c$ = MESSAGE_INPUT$("COPIE de "+a$,"Répertoire destinataire:","") IF c$ = "" THEN RETURN: ' inchangé ou cancel IF nsel% > 0 k% = F_List(fsel%): ' fenêtre de la sélection FOR i% = 1 TO nsel% a$ = MID$(ITEM_READ$(k%, sel%(i%)), LEN(sqm$)+1, 500) EXECUTE_WAIT "Cmd.exe /c COPY " + a$ + " " + c$ NEXT i% GOSUB Razsel ELSE EXECUTE_WAIT "Cmd.exe /c COPY " + a$ + " " + c$ END_IF ELSE rco$ = rc$(nof%): ' répertoire d'origine de la copie IF LEN(rco$) > 3 fco$ = rco$ + "\" + a$ ELSE fco$ = rco$ + a$ END_IF copy% = 0 b$ = "Copie de " + fco$ + CHR$(13)+CHR$(10)+CHR$(13)+CHR$(10) b$ = b$ +"clic 'Yes', puis clic un élément quelconque du répertoire destinataire"+CHR$(13)+CHR$(10) b$ = b$ + "(ou 'No': abandon)"+CHR$(13)+CHR$(10) i% = MESSAGE_CONFIRMATION_YES_NO(b$) IF i% = 1 THEN copy% = 1: ' copie en instance END_IF RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Suppr: IF nsel% = 0 i% = ITEM_INDEX(F_List(nof%)): IF i%<1 THEN RETURN a$ = ITEM_INDEX$(F_List(nof%)) b$ = "Désirez-vous vraiment supprimer définitivement ce fichier:" b$ = b$+CHR$(13)+CHR$(10)+CHR$(13)+CHR$(10)+DIR_CURRENT$ + "\" + a$ + " ?" ELSE b$ = "Désirez-vous vraiment supprimer définitivement tous les fichiers sélectionnés ?" END_IF i% = MESSAGE_CONFIRMATION_YES_NO(b$) IF i% = 1 IF nsel% = 0 FILE_DELETE DIR_CURRENT$ + "\" + a$ ELSE FOR i% = 1 TO nsel% a$ = MID$(ITEM_READ$(k%, sel%(i%)), LEN(sqm$)+1, 500) FILE_DELETE DIR_CURRENT$ + "\" + a$ NEXT i% GOSUB Razsel END_IF nodir% = 1: GOSUB Dir END_IF RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Exec: i% = ITEM_INDEX(F_List(nof%)): IF i%<1 THEN RETURN a$ = ITEM_INDEX$(F_List(nof%)) EXECUTE_WAIT a$ RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Volumes: IF inivol% = 0 b$ = CHR$(13)+CHR$(10) ' script vbs a$ = "Dim net, shell, computer, fso, WMISet,oWinnt"+b$ a$=a$+"Dim fst, fichier"+b$ a$=a$+"Set fst = CreateObject("+CHR$(34)+"Scripting.FileSystemObject"+CHR$(34)+")"+b$ a$=a$+"Set fichier = fst.CreateTextFile("+CHR$(34)+fvol$+CHR$(34)+")"+b$ a$=a$+"Set net = Wscript.CreateObject("+CHR$(34)+"WScript.Network"+CHR$(34)+")"+b$ a$=a$+"Set shell = WScript.CreateObject("+CHR$(34)+"WScript.Shell"+CHR$(34)+")"+b$ a$=a$+"Set fso = WScript.CreateObject("+CHR$(34)+"Scripting.FileSystemObject"+CHR$(34)+")"+b$ a$=a$+"computer = net.ComputerName"+b$ a$=a$+"set WMISet = GetObject("+CHR$(34)+"winmgmts:{impersonationLevel=impersonate}!//"+CHR$(34)+" & Computer).ExecQuery _"+b$ a$=a$+"("+CHR$(34)+"SELECT * FROM Win32_LogicalDisk"+CHR$(34)+")"+b$ a$=a$+"Message = "+CHR$(34)+""+CHR$(34)+" "+b$ a$=a$+"For each Disk in WMISet"+b$ a$=a$+" Capa = Disk.Size"+b$ a$=a$+" If Capa <> "+CHR$(34)+""+CHR$(34)+" Then"+b$ a$=a$+" Name = Disk.VolumeName"+b$ a$=a$+" If Message <> "+CHR$(34)+""+CHR$(34)+" Then Message = Message & VBCRLF"+b$ a$=a$+" Message = Message & Disk.Name & "+CHR$(34)+" "+CHR$(34)+" & Name"+b$ a$=a$+" End if"+b$ a$=a$+"Next"+b$ a$=a$+"fichier.WriteLine (Message)"+b$ a$=a$+"fichier.Close"+b$ a$=a$+"wscript.quit" FILE_OPEN_WRITE 1, fscr$: FILE_WRITEBUF 1, a$, LEN(a$): FILE_CLOSE 1 inivol% = 1 END_IF EXECUTE_WAIT "Wscript.exe " + fscr$ FILE_ADD D_List(nof%), fvol$: FILE_DELETE fvol$ RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ UserName: b$ = CHR$(13)+CHR$(10) a$="Dim objnet, fst, fichier" + b$ a$=a$+"Set fst = CreateObject("+CHR$(34)+"Scripting.FileSystemObject"+CHR$(34)+")"+b$ a$=a$+"Set fichier = fst.CreateTextFile("+CHR$(34)+fvol$+CHR$(34)+")"+b$ a$=a$+"Set objNet = CreateObject("+CHR$(34)+"WScript.NetWork"+CHR$(34)+")"+b$ a$=a$+"fichier.write(objNet.UserName)" FILE_OPEN_WRITE 1, fscr$: FILE_WRITEBUF 1, a$, LEN(a$): FILE_CLOSE 1 EXECUTE_WAIT "Wscript.exe " + fscr$ FILE_OPEN_READ 1, fvol$: FILE_READLN 1, usname$: FILE_CLOSE 1 FILE_DELETE fvol$: FILE_DELETE fscr$ RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Aide: b$ = CHR$(13)+CHR$(10) a$ = CHR$(9)+"- EXPLORATEUR DE RÉPERTOIRES ET FICHIERS -"+b$+b$ a$=a$+" MENU AFFICHAGE"+b$ a$=a$+"Affichage optionnel de deux fenêtres indépendantes, côte à côte ou superposées,"+b$ a$=a$+"pour permettre l'exploration de deux répertoires indépendamment l'un de l'autre."+b$+b$ a$=a$+" ACTIONS"+b$ a$=a$+"Les boutons sont communs aux deux fenêtres éventuelles."+b$ a$=a$+"L'action correspondant au libellé du bouton s'exécute sur le dernier fichier"+b$ a$=a$+"qui a été sélectionné, quelle que soit sa fenêtre."+b$ a$=a$+"Dans le cas de deux fenêtres affichées, la fenêtre de la dernière sélection effectuée"+b$ a$=a$+"est colorée en rouge clair."+b$+b$ a$=a$+"COPIE : quel que soit le répertoire destinataire, la copie de fichier ne supprime"+b$ a$=a$+"pas le fichier d'origine (ce que fait Windows quand c'est sur le même volume)."+b$ a$=a$+"Il s'agit bien ici d'une copie, et non d'un transfert."+b$+b$ a$=a$+"Pour les fonctions COPIER' et 'SUPPRIMER', il est possible de sélectionner une"+b$ a$=a$+"série de fichiers consécutifs, par la méthode classique: maintenir la touche 'Maj'"+b$ a$=a$+"enfoncée en cliquant sur le 1er et le dernier fichier de la série (après défilement"+b$ a$=a$+"éventuel, sans relâcher la touche Maj)."+b$ a$=a$+"Les fichiers sélectionnés seront repérés par un point en tête de leur nom."+b$ a$=a$+"L'action choisie ensuite s'effectuera sur la série entière."+b$+b$ a$=a$+"VOIR : s'il s'agit d'une image BMP, JPG, GIF, TGA, TIF, celle-ci est affichée dans une"+b$ a$=a$+"fenêtre, pour tous les autres fichiers l'affichage se fait en mode 'texte', avec"+b$ a$=a$+"conversion possible en hexadécimal (en bascule)."+b$ a$=a$+"Pour l'affichage en hexadécimal, il est possible de stopper la conversion"+b$ a$=a$+"à tout moment par appui sur la touche 'Stop' (cas des fichiers de grande taille)."+b$ a$=a$+"En mode texte, il est possible d'élargir ou de rétrécir la fenêtre d'affichage"+b$ a$=a$+"à l'aide de deux boutons." MESSAGE a$ RETURN ' +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remarque: Je n'ai pas utilisé la nouvelle fonction Disk_Exists, qui me cause des erreurs sur certains volumes, mais un script vbs incorporé. La seule ressource externe utilisée est IrfanView, pour les dimensions d'images, et Notepad2 à remplacer par Notepad si on ne l'a pas (différence principale: l'affichage des numéros de lignes). Les manoeuvres se font dans C:\Temp. On pourrait développer l'affichage des propriétés, c'est à voir. Màj 14/10: modification sur le bouton 'Voir', ajout de l'hexadécimal. Màj 16/10: ajout de la sélection multiple, pour 'Copier' et 'Supprimer' Màj 17/10: ajout de la DLL de Nardo, pour pouvoir explorer ' Documents and Settings' !!! ReMaj du 17: remplacement de la dll annexe par un script vbs intégré en datas. Tout est donc dans le source. (+ inversion dans les 'Propriétés' entre les dates de création et dernière écriture) 18/10: ajout du nb de répertoires, de fichiers, et de la taille totale, plus quelques petites modifs. 19/10: Voir: ajout des formats images GIF, TGA et TIF, en mode texte possibilité de modifier la largeur de la fenêtre d'affichage. + des bricoles.
Dernière édition par JL35 le Mer 19 Oct 2011 - 18:36, édité 13 fois | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Explorateur Jeu 13 Oct 2011 - 22:14 | |
| Joli. Il ne m'affiche pas le contenu de tous les répertoires, mais je n'ai pas le temps de regarder pourquoi ce soir. (Exemple sur C, il ne m'affiche pas le contenu de Document and settings) | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Explorateur Jeu 13 Oct 2011 - 22:26 | |
| Oui, je n'avais pas été jusqu'au bout de mes tests, mais c'est probablement rédhibitoire, les fonctions FILE_FIND de Panoramic ne permettent sans doute pas de récupérer le contenu des dossiers système 'cachés'. Et c'est bien embêtant ...
Il y a peut-être un paramètrage Windows à changer, je regarde ça... mais je doute. L'explorateur Windows ne m'affiche même pas le répertoire Documents and Settings
J'ai décoché une case dans les paramètres Windows (Masquer les fichiers protégés du système d'exploitation, la case 'Afficher les fichiers, dossiers et lecteurs cachés' était déjà cochée), et maintenant l'explorateur Windows m'affiche Documents and Settings, mais l'accès du contenu est interdit (verrouillé). D'un autre côté, ce n'est pas un répertoire (sous Win 7) mais une 'Junction', il paraît que ça renvoie sur 'Users'... d'après une recherche google, beaucoup ont des problèmes avec ce répertoire... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Explorateur Ven 14 Oct 2011 - 16:57 | |
| 14/10 ajout de l'affichage hexadécimal dans la fonction 'Voir', ajout du bouton 'Exécuter'. Le bouton Propriétés donne la taille, les dates/heures de création et dernière écriture, et le nom court éventuel du fichier. | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Explorateur Dim 16 Oct 2011 - 16:43 | |
| 16/10 ajout essentiellement de la possibilité de sélection multiple d'une série de fichiers consécutifs, dans le cas des fonctions 'Copier' et 'Supprimer'. | |
| | | 659_minifly
Nombre de messages : 590 Age : 76 Localisation : Valenciennes Nord Date d'inscription : 29/04/2010
| Sujet: Re: Explorateur Dim 16 Oct 2011 - 19:38 | |
| | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Explorateur Dim 16 Oct 2011 - 20:36 | |
| Enfin un lecteur, merci Minifly ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Explorateur Dim 16 Oct 2011 - 23:26 | |
| pfff, ces programmeurs, je te jure, c'est qu'ils seraient exigeants On s'absente quelques heures, ils metent une version et ils voudraient tout de suite avoir une retour, je te jure .... Bon sinon sans déconner, c'est du bon boulot, plus qu'à ajouter la conversion de masse, le renommage de masse (déjà fait dans un précédent source)... Heu, je crois que ceet explorateur, je vais me le garder, il va finir par un beaucoup plus sympa que celui de Windows ^^ | |
| | | Severin
Nombre de messages : 547 Localisation : Braunschweig / Germany Date d'inscription : 13/12/2010
| Sujet: Re: Explorateur Lun 17 Oct 2011 - 3:28 | |
| Hallo JL35, sehr gute gestaltetes Programm. Habe aber einen Fehlermeldung. -- (35) Name Already defined. Line 471 -- Kann es nicht testen. Ich bin diese Woche auf Dienstreise, werde dann am Wochenende meine neue Version einstellen. Severin Hello JL35, very well-designed program. But an error message. - (35) Name Already defined. Line 471 - Can not test it. I'm on a business trip this week, will be set on the weekend my new version. Severin Bonjour JL35, très bien conçu programme. Mais un message d'erreur. - (35) nom déjà défini. Ligne 471 - Impossible de le tester. Je suis en voyage d'affaires cette semaine, sera mis sur le week-end ma nouvelle version. Severin | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Explorateur Lun 17 Oct 2011 - 5:39 | |
| Intéressant, Reste le problème du répertoire : "Documents and Settings" et cela sera parfait ! Mais pour cela il faudrait connaitre le profil de l'utilisateur qui a ouvert la session... Utilisation de GetUsername() en delphi donc en passant par une dll (je la fait si vraiment ça intéresse quelqu'un) ou peut être attendre que Jack veuille bien rajouter cette variable système dans Panoramic... | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Explorateur Lun 17 Oct 2011 - 7:49 | |
| Et comment Nardo que ça nous interesse Le programme commence vraiment à être super pratique, une petite fonction pour traiter les répertoires spéciaux serait bien pratique. | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Explorateur Lun 17 Oct 2011 - 9:15 | |
|
Dernière édition par Nardo26 le Mar 1 Nov 2011 - 20:21, édité 1 fois | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Explorateur Lun 17 Oct 2011 - 9:58 | |
| | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Explorateur Lun 17 Oct 2011 - 14:29 | |
| J'arrive... Mais qu'est-ce qu'ils ont tous à vouloir absolument aller dans 'Documents and Settings', alors que c'est interdit par monsieur Windows lui-même ! Bon, je regarde ta suggestion Nardo, mais je suis un peu réticent sur le principe de la dll, je sais des fois on ne peut pas faire autrement, mais si je pouvais intégrer tout ça dans un seul module (comme j'ai fait avec mon script vbs), ça m'embête d'être obligé de joindre des fichiers annexes. @Severin je ne comprends pas ton erreur, pour moi la ligne 471 correspond à 'END_IF'... mais il est vrai que j'ai fait quelques modifications (mineures) depuis... peux-tu dire quelle est le libellé de la ligne qui fait une erreur ? (what is the contents of the line which causes the error ?) @Nardo j'ai essayé ta dll, ça marche très bien et j'obtiens bien le UserName du pc (tiens, c'est justement le mien, quelle coïncidence !) Mais qu'est-ce que je fais avec ça pour m'autoriser à aller dans Documents and Settings ??? je ne vois pas bien le rapport (je suis un béotien pour ce qui est du système). | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Explorateur Lun 17 Oct 2011 - 14:42 | |
| C'est pas interdit, du moment que tu essaye d'ouvrir le répertoire appartenant à la session... Maintenant l'utilisation de la DLL est provisoire si Jack veut bien rajouter cette variable système... PS : Si tu génères une application, tous tes fichiers seront inclus dans l'executable... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Explorateur Lun 17 Oct 2011 - 14:43 | |
| On s'est croisés (j'ai édité)... Oui certes, dans l'application tout est inclus, mais je préfère ne donner que des sources que chacun peut adapter à sa guise...
@Nardo bon je crois voir où tu veux en venir. Le UserName est le répertoire qui est juste dessous Documents and Settings, et à partir de là on peut continuer tranquillement l'exploration... C'est bien ça ? | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Explorateur Lun 17 Oct 2011 - 14:50 | |
| C'est pour cette raison que je donne les sources de la DLL. Quand on y regarde de plus près, ce n'est pas bien compliqué à réaliser. Delphi 7 est gratuit... et on trouve plein de petits exemples sur le net (Google est mon ami)... sans compter qu'on peut utiliser un autre basic pour faire des DLL... Faire la DLL en Delphi m'a pris 5 minutes... | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Explorateur Lun 17 Oct 2011 - 15:27 | |
| Bon j'ai ajouté ta dll (voir plus haut), et on peut maintenant descendre 'Documents and Settings', si la dll est présente (il faut ajuster son chemin d'accès en tête: variable usnd$). Si elle n'est pas présente, ça ne fait pas d'erreur, simplement on ne pourra pas aller descendre dans ce répertoire. C'est mieux comme ça ? (je vais regarder le source de la dll, si je peux faire ça dans un script vbs intégré...)Oui, bon, j'ai jeté un oeil sur tes sources, la signification ne saute pas aux yeux, déjà il faut 4 fichiers sources ??... pour quelqu'un qui ne connaît rien ni en pascal ni en delphi... je verrai sur google si je trouve un script tout fait | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Explorateur Lun 17 Oct 2011 - 15:38 | |
| Le fichier qui t'interesse a l'extension *.dpr
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Explorateur Lun 17 Oct 2011 - 17:00 | |
| Merci Nardo.
En farfouillant un peu, j'ai concocté un script vbs qui va bien, très court (s/p UserName) et qui fait l'affaire, donc tout est dans le source, pas de module externe, c'est sans doute moins élégant mais ça semble efficace.
J'ai regardé ton source, mais ne connaissant pas la langue ça ne m'aide pas beaucoup.
Comme quoi il y a toujours plusieurs solutions à un problème donné, c'est ce qui fait le charme de la programmation !
Tu disais plus haut que 'Documents and Settings' n'est pas interdit mais je suis pourtant administrateur et seul utilisateur de mon pc, et je me suis donné toutes les autorisations possibles, à ma connaissance et dans l'explorateur windows (7) je suis bien bloqué sur 'C:\Documents and Settings' n'est pas accessible. Accès refusé'. Idem en mode console. | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Explorateur Lun 17 Oct 2011 - 17:22 | |
| Tu as accès sous windows7: C:\Utilisateurs\Nom\Mes documents\ | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Explorateur Lun 17 Oct 2011 - 17:43 | |
| Tu as évidemment raison, c'est cette histoire de 'Documents and Settings' et 'Utilisateurs' qui renvoient au même répertoire qui me trouble. J'ai du mal à comprendre pourquoi, suivant la façon dont on l'adresse, c'est interdit ou autorisé !
Quoi qu'il en soit, maintenant on peut accéder aux deux ! | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Explorateur Mar 18 Oct 2011 - 19:24 | |
| | |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: Explorateur Mar 18 Oct 2011 - 21:14 | |
| Merci pour le lien, mais à priori je ne vois pas trop quelle pourrait en être l'utilité pour moi... et comme tu dis, dans ce domaine il vaut mieux bien savoir ce qu'on fait si on ne veut pas tout casser ! | |
| | | Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Explorateur Mar 18 Oct 2011 - 22:34 | |
| Ca sert surtout à créer des raccourcis pendant le développement: Imagines que tu as un projet qui se trouve ici: D:\Mes documents\Nardo\Développement\Langage\Panoramic\Projets\MonProjet\... Une fois que tu as tapé tout cela, tu t'arrêtes et tu va boire un café (ou une tisane pour ceux qui aiment pas ) En faisant un lien, tu fais en sorte que, par exemple: D:\MonProjet\ pointe en réalité sur le répertoire que j'ai écrit au dessus. Dans le cas de Panoramic cela n'a pas vraiment d'importance mais si tu utilises un autre langage avec des utilitaires en ligne de commande sous DOS (compilo, linker,etc...), tu trouveras vite l’intérêt le jour ou tu jongleras avec plusieurs version de prog. Par exemple: Jack à plusieurs versions de TOONIC en fct du moteur 3D. On peut supposer qu'il possède le même source de TOONIC mais qu'il utilise un lien symbolique pour pointer sur le moteur 3D qu'il désire... (je suppose hein? il y a d'autres solutions) Perso, au boulot, nous travaillons sous le système d'exploitation QNX et les liens symboliques sont énormément utilisés. Il est vrai que sous Windows, ce n'est pas quelque chose de très répandu (il y a que Micro$oft qui l'utilise Pour définir ce fameux "Mes documents" qui pointe en réalité sur C:\User\###\My Documents en fct de la session, de la langue,etc...) | |
| | | Contenu sponsorisé
| Sujet: Re: Explorateur | |
| |
| | | | Explorateur | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |