Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Was stimmt mit diesem blöden Bubblesort nicht?

  Alt 21. Apr 2004, 04:25
Hier mein Algorithmis:
Delphi-Quellcode:
procedure TContactClass.Sort(Handle: THandle; Ascending: Boolean);
var
  RecordCount: Cardinal;
  RecordList: TContactList;
  Record1, Record2: TContactRec;
  s, s1, s2: string;
  i, j: Integer;
begin
  RecordCount := FXMLFile.RecordCount;
  SetLength(RecordList, RecordCount);
  RecordList := GetContacts;
  for i := RecordCount-1 downto 1 do
  begin
    for j := 1 to i do
    begin
      //writeln(j);
      if j mod 10 = 0 then
        ProcessMessages(Handle);
      SetWindowText(Handle, PChar(IntToStr(i)));
      Record1 := RecordList[j - 1];
      Record2 := RecordList[j];
      s1 := Record1.Name + ' ' + Record1.Vorname;
      s2 := Record2.Name + ' ' + Record2.Vorname;
      //if Ascending then
        if s1 > s2 then
        begin
          Swap(Record1, Record2);
          EditContact(Record2.ID, Record1);
          EditContact(Record1.ID, Record2);
        end;
    end;
  end;
end;
Reihenfolge der Datensaätze vorher: d c b a
Nachher: c d c b

In dem Array RecordList stehen alle Datensätze drin, wie sie aus der XML-Datei kommen. Swap vertauscht zwei Datensätze und EditContact änder den Datensatz mit der angegebenen ID mit den Daten von dem angegebenen Record. In dieser Prozedur wird bisher auch jedesmal die XML-Datei gespeichert.

Das komische ist, in einer Anwendung mit typisierten dateien tut es die Implementation wunderbar nur hier mir XML-Dateien scheint es nicht zu klappen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat