Autor |
Beitrag |
Raytek
Hält's aus hier
Beiträge: 12
|
Verfasst: Di 02.11.10 15:12
Liebes Forum,
Vorwort :
Mir ist bewusst das das Forum eigentlich für Hilfestellungen oder Berichtigungen von Quelltexten gedacht ist.
Ich habe zu morgen(!) eine Hausaufgabe auf in der ich ein Programm schreiben soll das 2 Wörter alphabetisch ordnet.
Oben sollen 2 Edit-Felder sein und darunter ein Memo. Man gibt nun 2 Wörter ein die im Memo dann auf Button-Klick sortiert sein sollen.
Zur Verfügung stehen :
- 2 Edit Felder zum eintragen der beiden Wörter
- 2 Button, einer zum Beenden der andere zur Freigabe des Sortieralgorithmus.
- 1 Memo für die Ausgabe der Sortierung
Umgangsprachlich kann ich das Problem lösen.
- Wörter die mit Umlauten beginnen bzw. welche enthalten müssen geändert werden (Übersicht -> Uebersicht)
- Groß- und Kleinschreibung muss ignoriert oder in eine Form Umgewandelt werden.
Meine Bitte an euch ist es jetzt einen Quelltext dafür zu entwerden. Ich hab in Sachen Sortieren nicht viel Ahnung deshalb brauche ich eure Hilfe.
Ohne euch bin ich verloren also bitte helft mir.
MfG Raytek
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Di 02.11.10 15:23
Hallo und  in der Entwickler-Ecke,
Zur "Sortierung" von zwei Wörtern braucht man keinen Sortieralgorithmus, da reicht ein einzelner Vergleich. Für Strings liefert Delphi da auch einiges mit - für dich dürfte da AnsiCompareText das richtige sein. Das funkioniert mit Umlauten, und Groß/Kleinschreibung wird ignoriert.
Die Frage ist nur, ob ihr das benutzen dürft. 
_________________ We are, we were and will not be.
|
|
Tankard
      

Beiträge: 217
Erhaltene Danke: 96
|
Verfasst: Di 02.11.10 15:23
Hallo Leute,
ich hab hier ein Lastenheft und fände es toll, wenn Ihr mir die Sachen programmiert. Das Lastenheft habe ich nicht selber geschrieben, sondern es in einem anderen Forum erstellen lassen. Nun such ich noch ne paar andere Dumme, die mir die Sachen programmieren.
Alle die mir helfen, bekommen auch über den Danke Knopf ne Danke von mir.
Aufwand würde auch schon von einem Programmiere geschätzt, sind nur 6 Monate.
Ihr müsst mir dringend helfen, da ich nur Urlaub machen möchte und mich garnicht mit Programmierung beschäftigen möchten.
Gruss
Tankard aus der Karibik.
|
|
MaxWurzel
      
Beiträge: 77
Erhaltene Danke: 10
|
Verfasst: Di 02.11.10 15:30
Zuletzt bearbeitet von MaxWurzel am Di 02.11.10 15:31, insgesamt 1-mal bearbeitet
|
|
Raytek 
Hält's aus hier
Beiträge: 12
|
Verfasst: Di 02.11.10 15:30
@ Tankard : Was hat das mit meinem Thread zu tun ? Eröffne deinen eigenen.
@ Gausi : Ich weiß nicht was du damit meinst - wir sind nicht die Hellsten in Delphi tut mir leid..
|
|
Tankard
      

Beiträge: 217
Erhaltene Danke: 96
|
Verfasst: Di 02.11.10 15:31
Raytek hat folgendes geschrieben : | @ Tankard : Was hat das mit meinem Thread zu tun ? Eröffne deinen eigenen.
|
rofl. der war gut.
Für diesen Beitrag haben gedankt: BenBE, Flamefire, glotzer, jasocul
|
|
Raytek 
Hält's aus hier
Beiträge: 12
|
Verfasst: Di 02.11.10 15:32
Es handelt sich um Delphi 7.
|
|
Gausi
      
Beiträge: 8548
Erhaltene Danke: 477
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Di 02.11.10 15:36
AnsiCompareText ist eine Funktion (iirc aus der Unit StrUtils). Die bekommt zwei Strings als Eingabe und gibt aus, welcher der beiden alphabetisch vorne steht.
Dein ganzes Programm sähe dann so aus:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| if AnsiCompareText(Edit1.Text, Edit2.Text) > 0 then begin Memo1.Lines.Add(Edit1.Text); Memo1.Lines.Add(Edit2.Text); end else |
Wofür der zweite Button gut sein soll, weiß ich nicht. 
_________________ We are, we were and will not be.
Für diesen Beitrag haben gedankt: Raytek
|
|
Raytek 
Hält's aus hier
Beiträge: 12
|
Verfasst: Di 02.11.10 15:41
|
|
MaxWurzel
      
Beiträge: 77
Erhaltene Danke: 10
|
Verfasst: Di 02.11.10 15:53
Meinst du damit das Beenden des Programmes? Oder das Beenden des Sortierungsvorganges?
|
|
Raytek 
Hält's aus hier
Beiträge: 12
|
Verfasst: Di 02.11.10 15:54
MaxWurzel hat folgendes geschrieben : | Meinst du damit das Beenden des Programmes? Oder das Beenden des Sortierungsvorganges? |
Programm - Application.Terminate
Zuletzt bearbeitet von Raytek am Di 02.11.10 15:57, insgesamt 1-mal bearbeitet
|
|
jasocul
      
Beiträge: 6393
Erhaltene Danke: 147
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Di 02.11.10 15:57
@Tankard:
@Raytek:
Euer Lehrerli hat bestimmt an die StringReplace-Routine für die Sonderzeichen gedacht. Für die Umwandlung in Groß- oder Kleinschreibung gibt es auch Funktionen (UpperCase und LowerCase, bzw. AnsiUpperCase und AnsiLowerCase).
Für die Sortierung genügt ein einfacher Vergleich auf größer oder kleiner (Das sind diese Zeichen: "<" und ">")
Dieses einen Sortieralgo zu nennen, ist sicher eine "leichte" Übertreibung, aber mehr scheint von euch nicht gefordert zu sein.
Man kann natürlich die aufbereiteten Strings auch in eine TStringList packen und dort die Sortierfunktion der StringList nutzen. Danach müssen die Strings nur noch ins Memo übertragen werden.
Alle hier genannten Delphi-"Dinger" kann man problemlos in der Hilfe von Delphi nachlesen.
Der Aufwand für den Source ist so minimal, dass das auch eine Anfänger in weniger als einer halben Stunde schaffen sollte. Es sei denn, er hat die ganze Zeit im Unterricht gepennt (Sorry, das musste jetzt raus).
Für diesen Beitrag haben gedankt: Flamefire, Martok, Tankard
|
|
Raytek 
Hält's aus hier
Beiträge: 12
|
Verfasst: Di 02.11.10 16:06
Gausi hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7:
| if AnsiCompareText(Edit1.Text, Edit2.Text) > 0 then begin Memo1.Lines.Add(Edit1.Text); Memo1.Lines.Add(Edit2.Text); end else |
|
Erstmal danke für die schnellen Hilfen und sie haben etwas bewirkt. Durch diesen Zitierten Quelltext ist es gelungen die Wörter zu Sortieren. Dabei gibt es nur einen kleinen Fehler. Wenn ich ein Wort groß Schreibe, wie z.B. Bär und darauf ein Kleines wie aal. Sortiert es so, dass er Bär als 1. schreibt.
Kann damit zusammenhängen das ich nicht wusste was du mit //andersrum meinst. ;D
Update = Wenn ich in Edit1 ein Word schreibe das von der Rangordnung nachher stehen müsste, macht er nichts.
Zuletzt bearbeitet von Raytek am Di 02.11.10 16:11, insgesamt 2-mal bearbeitet
|
|
Tankard
      

Beiträge: 217
Erhaltene Danke: 96
|
Verfasst: Di 02.11.10 16:06
als ich damals in der Schule war, da mussten wir die Sachen selber programmieren und durften keine StringReplace, Upcase etc. benutzen. Wird wohl heute nicht mehr gefordert und wir wundern uns, warum die Jungs alle nicht programmieren können.
naja egal.
|
|
Raytek 
Hält's aus hier
Beiträge: 12
|
Verfasst: Di 02.11.10 16:16
Ok die der Thread kann geschlosssen werden es funktioniert alles. Ich bin glücklich. Danke
|
|