Ce code crée un fichier test.txt avec le nom des villes. Puis suivant les diffférent cas traite le problème.
Le cas 1 est le cas basique.
Le cas 2 est le meilleur que j'ai réussi à obtenir.
J'attends vos idée pour un troisième code plus rapide....
Merci d'avance
Code : Tout sélectionner
Procedure ess1()
SetGadgetText(52,"en cours")
ClearGadgetItemList(50)
temps=GetTickCount_()
ReadFile(0,"test.txt")
fin=Lof()
Repeat
AddGadgetItem(50,-1,Trim(Left(ReadString(),50)))
Until Loc() =fin
CloseFile(0)
SetGadgetText(52,Str(GetTickCount_()-temps ))
SetGadgetState(50,0)
EndProcedure
Procedure ess2()
SetGadgetText(52,"en cours")
ClearGadgetItemList(50)
temps=GetTickCount_()
ReadFile(0,"test.txt")
*Tampon=AllocateMemory(Lof())
ReadData(*Tampon,Lof())
fin=Lof()/72
CloseFile(0)
id_gadget=GadgetID(50)
For i=0 To fin
SendMessage_(id_gadget , #CB_ADDSTRING, 0, Trim(PeekS( *Tampon+i*72,50)))
;AddGadgetItem(50,-1,Trim(PeekS( *Tampon+i*72,50)))
Next
SetGadgetText(52,Str(GetTickCount_()-temps ))
SetGadgetState(50,0)
EndProcedure
Procedure ess3()
SetGadgetText(52,"en cours")
ClearGadgetItemList(50)
temps=GetTickCount_()
;-----------votre code--------------
;-----------fin de votre code--------
SetGadgetText(52,Str(GetTickCount_()-temps ))
SetGadgetState(50,0)
EndProcedure
;{-creation de la fenetre
hwindow=OpenWindow(0,10,10,200,200,#PB_Window_SystemMenu,"ess")
CreateGadgetList(WindowID(0))
ComboBoxGadget(50, 0,0, 200, 200)
TextGadget(52,0,50,200,20,"temps")
ButtonGadget(1,10,100,20,20,"1")
ButtonGadget(2,30,100,20,20,"2")
ButtonGadget(3,50,100,20,20,"3")
;}
;{- creation du fichier test : nom de ville sur 50 caractere + coordonnee sur 22
CreateFile(0,"test.txt")
For i=1 To 35000
nom_ville$=LSet("Nom de la ville numérotée : "+Str(i),50)
WriteStringN(nom_ville$+"12345678901234567890")
Next
CloseFile(0)
;}
Repeat
event=WaitWindowEvent()
Select event
Case #PB_Event_Gadget; *****************Choix d'un bouton
Select EventGadgetID()
Case 1
ess1()
Case 2
ess2()
Case 3
ess3()
EndSelect
EndSelect
Until event=#WM_CLOSE