Zeph Le 19/03/2002 à 19:56 Ok v essayer ça...
pour Interum, ça va être vite vu, voilà un echantillon du code. Si t'as du mal à comprendre alors y'a peu de chances pr que tu puisse l'accelerer :
(s_chx,s_pth,s_usr)
Prgm
Local l_tmp,l_chx,l_key,l_lst,l_pth,l_drt
Local p_namfil,p_addfil,p_delfil,p_mntfil,p_dssfil
If s_chx=ª1:Goto def_dump
Define p_namfil(s_nam)=Func
Local l_tmp,l_hlp,l_var,l_nam
""»l_var
For l_tmp,1,5
mid(s_nam,l_tmp,1)»l_hlp
If l_hlpžchar(97) and l_hlpœchar(122) or l_hlpžchar(65) and l_hlpœchar(90) Then
l_var&l_hlp»l_var
Else
l_var&"x"»l_var
EndIf
EndFor
For l_tmp,1,99999
"z_"&left(l_var,6-dim(string(l_tmp)))&string(l_tmp)»l_nam
If getType(#l_nam)="NONE"
99999»l_tmp
EndFor
Return l_nam
EndFunc
Define p_addfil(s_var,s_pth)=Prgm
Local l_tmp
s_pth[dim(s_pth)]»l_tmp
augment(augment(left(#l_tmp,4),{s_var}),mid(#l_tmp,5))»#l_tmp
EndPrgm
Define p_delfil(s_chx,s_pth)=Prgm
Define itr_delt(s_chx,s_pth)=Prgm
Local l_tmp,l_hlp,l_dim,l_typ
dim(#s_pth)»l_dim
#(#s_pth[s_chx])[1]»l_typ
If getType(l_typ)"STR":"None"»l_typ
If l_typ="Dossier" Then
dim(#(#s_pth[s_chx]))»l_hlp
For l_tmp,5,l_hlp
itr_delt(5,#s_pth[s_chx])
EndFor
EndIf
DelVar #(#s_pth[s_chx])
augment(left(#s_pth,s_chx-1),mid(#s_pth,s_chx+1))»#s_pth
EndPrgm
itr_delt(s_chx,s_pth[dim(s_pth)])
DelVar itr_delt
EndPrgm
Define p_mntfil(s_chx,s_pth)=Prgm
Local l_tmp
s_pth[dim(s_pth)]»l_tmp
augment(augment(left(#l_tmp,4),mid(#l_tmp,s_chx,1)),augment(mid(#l_tmp,5,s_chx-5),mid(#l_tmp,s_chx+1)))»#l_tmp
EndPrgm
Define p_dssfil(s_chx,s_pth)=Prgm
Local l_tmp
s_pth[dim(s_pth)]»l_tmp
augment(augment(left(#l_tmp,s_chx-1),mid(#l_tmp,s_chx+1)),mid(#l_tmp,s_chx,1))»#l_tmp
EndPrgm
Lbl def_init
{"Fichier","Dossier","Externe","Memoire","Renommer","Modif. Icone","Deplacer","Supprimer","Remonter","Descendre","Utilisateurs","Pseudos","Grades","Droits","Stats","Message"}»l_drt
{"Main"}»l_pth
Goto def_list
Lbl def_menu
itr_menu(l_lst[1],mid(l_lst,2),"x_xtern1")
If ok=0 Then
If x_xtern1[1]="Apps"
Goto def_rkey
If x_xtern1[1]="Esc"
Goto def_prev
EndIf
Lbl def_next
If x_xtern1[2]=dim(l_lst)
Goto def_prev
l_lst[x_xtern1[2]+1]»l_pth[dim(l_pth)+1]
Goto def_list
Lbl def_prev
If dim(l_pth)>1 Then
left(l_pth,dim(l_pth)-1)»l_pth
Goto def_list
Else
Goto def_rkey
EndIf
Lbl def_list
l_pth[dim(l_pth)]»l_chx
If l_chx="Main" Then
{"Options","Creer","Modifier","Gerer","Quitter","Retour"}»l_lst
ElseIf l_chx="Creer" Then
{"Creer","Fichier","Dossier","Externe","Memoire","Retour"}»l_lst
ElseIf l_chx="Modifier" Then
If dim(#(s_pth[dim(s_pth)]))=3 Then
itr_dlog("Erreur",{"Texte",6,"Ce dossier est vide.",1},9,34,149,64)
Goto def_prev
Else
{"Modifier","Renommer","Modif. Icone","Deplacer","Supprimer","Remonter","Descendre","Retour"}»l_lst
EndIf
ElseIf l_chx="Gerer" Then
{"Gerer","Utilisateurs","Pseudos","Grades","Droits","Stats","Message","Retour"}»l_lst
ElseIf l_chx="Quitter" Then
Goto def_quit
Else
CopyVar l_drt,x_xtern3
itr_vrtl("var_srch","x_xtern3",l_chx,"/","exe_retr","x_xtern1")
If y_rights[x_xtern1[1]]>(y_users[3])[s_usr] Then
itr_dlog("Erreur",{"Texte",6,"Vous n'avez pas le grade suffisant.",1},9,34,149,64)
Goto def_prev
EndIf
Goto def_optn
EndIf
Goto def_menu
Lbl def_optn
goto #("opt_"&left(l_chx,4))

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)