Hallo ich bins wieder,
Das Problem mit der Listbox hat sich erledigt, doch nun haben wir eine neue Hürde zu meistern.
Folgendes Problem: Ich habe den Algorithmus mal auf Deutsch geschrieben, jedoch fehlt mir das nötige Fachwissen für Delphi
Schritt 1
>1 Suche Stunde, in der nur ein Lehrer verfügbar ist, wenn "Schritt 1 >1" nicht möglich, Springe zu "Schritt 2 >1"
>2 Setze Lehrer in diese Stunde ein
>3 Streiche Lehrer aus allen anderen Stunden
>4 Spring zurück zu "Schritt 1 >1"
Schritt 2
>1 Suche Stunde, in der nur 2 Lehrer verfügbar sind, wenn "Schritt 2 >1" nicht möglich, springe zu"Schritt 3 >1"
>2 Setze beide Lehrer in diese Stunde ein
>3 Streiche beide Lehrer aus allen anderen Stunden
>4 Spring zurück zu "Schritt 1 >1"
Schritt 3
>1 Suche Lehrer, der nur in einer Stunde verfügbar ist, wenn "Schritt 3 >1" nicht möglich, springe zu "Schritt 4 >1"
>2 Setze diesen Lehrer in diese Stunde ein
>3 Spring zurück zu "Schritt 1 >1"
Schritt 4
>1 Suche Lehrer, der nur in zwei Stunden verfügbar ist, wenn "Schritt 4 >1" nicht möglich, springe zu "Schritt 5 >1"
>2 Setze diesen Lehrer in eine der Stunden ein
>3 Lösche diesen Lehrer aus der anderen Stunde
>4 Spring zurück zu "Schritt 1 >1"
Schritt 5
>1 Suche Stunde, in der <= 3 Lehrer verfügbar sind, wenn "Schritt 5 >1" nicht möglich, beende den Prozess
>2 Setze die 2 Lehrer mit den wenigsten Bereitschaftsstunden ein
>3 Streiche die beiden eingesetzten Lehrer aus allen anderen Stunden
>4 Spring zurück zu "Schritt 1 >1"
Dieser Algorithmus soll dann durchgeführt, sobald ich einen Button drücke: Soweit habe ich es jetzt in Delphi gebracht, jedoch geht es nicht ganz....
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28:
| procedure TForm1.BtstartClick(Sender: TObject); var dayindex, lesindex, anzahl, voranzahl : integer; Stunde: string; begin Teachers.Clear; For dayindex := 0 to 4 do
begin For lesindex := 0 to 4 do Teachers.Clear; fn := IncludeTrailingBackSlash(ExtractFilePath('C:\temp\')) + Day.Items[Day.ItemIndex] + '-' + Lesson.Items[Lesson.Itemindex] + '.txt'; if FileExists(fn) then Teachers.Items.LoadFromFile(IncludeTrailingBackSlash(ExtractFilePath('C:\temp\')) + Day.Items[Day.ItemIndex] + '-' + Lesson.Items[Lesson.Itemindex] + '.txt') else; anzahl := Teachers.Items.Count; if anzahl = 1 then begin Case dayindex of 0: Stunde := 'Monlesson[lesindex+1]' ; 1: Stunde := 'Tuelesson[lesindex+1]' ; 2: Stunde := 'Wedlesson[lesindex+1]' ; 3: Stunde := 'Thulesson[lesindex+1]' ; 4: Stunde := 'Frilesson[lesindex+1]' ; end;
Stunde := Teachers.Items[1] end; end; |
Vielen Dank im Voraus!!!
Moderiert von
Narses: Topic aus Dateizugriff verschoben am So 12.12.2010 um 20:23