Ver Mensaje Individual
  #7  
Antiguo 15-02-2007
focosoft focosoft is offline
Registrado
 
Registrado: dic 2006
Posts: 1
Reputación: 0
focosoft Va por buen camino
Tambien me sirvió tu ejemplo

Aún despues de que ya tiene rato que publicaste tu consejo, me sirvió para ordenar fechas, te dejo lo que arreglé:

La variable tot, la declaré publica y el objetivo es explorar una serie de nombres de archivo los cuales están guardados con un mombre de fecha, la intención es extraer el nombre del archivo, acomodarlo por fecha en un combo list box y para eso necesité de tu método burbuja., gracias.


procedure TForm1.Button3Click(Sender: TObject);
var
SearchRec: TSearchRec;
archivo : string;
x, y :integer;
aux : TDateTime;
vec: array[0..500] of TdateTime;
begin
tot:=0;
if psvBrowseFolderDialog1.Execute then
begin
Memo2.Clear;
SB1.SimpleText:=psvBrowseFolderDialog1.FolderName;
archivo:='';
CLB1.Clear;
if FindFirst(psvBrowseFolderDialog1.FolderName+'\*.01', faAnyFile and not
(faVolumeID or faDirectory), SearchRec) = 0 then
begin
repeat

archivo:=SearchRec.Name;
tot:=tot+1;
vec[tot]:=StrToDate(archivo[3]+archivo[4]+'/'+archivo[5]+archivo[6]+'/'+archivo[7]+archivo[8])
//CLB1.Items.Add(archivo[3]+archivo[4]+'/'+archivo[5]+archivo[6]+'/'+archivo[7]+archivo[8]);
until FindNext(SearchRec) <> 0;
FindClose(SearchRec);
end;
///MÉTODO BURBUJA PARA ARREGLAR FECHAS ///////////

tot2 := tot; //tot es la variable que me dice cuantos de los
for x := 1 to tot - 1 do //numeros del arreglo no son 0
begin
if vec[x] = 0 then
begin
for y := x to tot - 1 do //se recorren todos los valores una unidadvec[y] := vec[y+1]; //hacia atras
vec[tot] := 0; //a la ultima posicion se le da valor de cero
dec(tot);
end;
end;
for x := 1 to tot do //Metodo de burbuja
begin
for y := 1 to tot - 1 do
begin
if vec[y] > vec[y+1] then
begin
aux := vec[y];
vec[y] := vec[y+1];
vec[y+1] := aux;
end;
end;
end;

////////////////////////////////////////////////
//FOR PARA INSETAR EN CLB1///////////////
for x:=1 to tot2 do
begin
CLB1.Items.Add(DateToStr(vec[x]));
end;
///////////////

end;
end;
Responder Con Cita