Problems sorting a TStringList with names and numbers

48 views Asked by At

After failing to sort my TStringList file using TStringList.Sort because numbers won't sort properly, (instead of doing 1,4,12,32 its doing 1,12,32,4 because the numbers are considered text on a TStringList), i've tried to do it a number of other ways and i can't seen to do it.

here is my code:

var
  Database, DBResultado, DBAux: TStringList;
  Aux,Aux2: string;
  i, Num, Reserva: integer;
begin
  Memo.Clear;
  Database := TStringList.Create;
  DBResultado := TStringList.Create;
  DBAux := TStringList.Create;
  Database.LoadFromFile('DATABASEPATH');


  for I := 0 to Database.Count - 1 do
  begin
    Aux := StringReplace(Database[i], 'Cliente', '', [rfReplaceAll]);
    Aux := StringReplace(Aux, ';', '', [rfReplaceAll]);
    DBResultado.Add(FormatFloat('00000', StrToInt(Aux)));



  end;
    DBResultado.Sort;
    Memo.Lines.Add(DBResultado.Text);

    for i := 0 to Database.Count - 1 do
    begin
      Aux2 := IntToStr(StrToInt(DBResultado[i]));
      DBAux[i] := Aux2;
    end;
    Memo.clear;
    Memo.Lines.Add(DBAux.Text);

    DBResultado.SaveToFile('DATABASEPATH');
end;

The code gets a Database that is just a list like this:

Client1;
Client65;
Client13;
etc...

and this database is linked to files with the same name that have client data

i managed to get down to numbers and to even sort them, but now i don't know how to move them back to the database.

There must be a better way of doing this.

Trying to change them to numbers and back isn't working and i have no idea what i'm doing tbh. i only want the DB to look like its in order

Client1;
Client2;
Client13,
Client16;
etc...

also i have tried adding the string back to the original tstringlist but its not working, something about compatibility.

0

There are 0 answers