Autor Beitrag
Raytek
Hält's aus hier
Beiträge: 12



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Di 02.11.10 15:23 
Hallo und :welcome: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Administrator
Beiträge: 217
Erhaltene Danke: 96



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 77
Erhaltene Danke: 10



BeitragVerfasst: Di 02.11.10 15:30 


Zuletzt bearbeitet von MaxWurzel am Di 02.11.10 15:31, insgesamt 1-mal bearbeitet
Raytek Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Administrator
Beiträge: 217
Erhaltene Danke: 96



BeitragVerfasst: Di 02.11.10 15:31 
user profile iconRaytek hat folgendes geschrieben Zum zitierten Posting springen:
@ 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 Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Di 02.11.10 15:32 
Es handelt sich um Delphi 7.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8548
Erhaltene Danke: 477

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: 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:
ausblenden 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
// andersrum


Wofür der zweite Button gut sein soll, weiß ich nicht. :nixweiss:

_________________
We are, we were and will not be.

Für diesen Beitrag haben gedankt: Raytek
Raytek Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Di 02.11.10 15:41 
user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:

Wofür der zweite Button gut sein soll, weiß ich nicht. :nixweiss:


Einer zum Beenden der andere zum Starten der Sortierung.
MaxWurzel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 77
Erhaltene Danke: 10



BeitragVerfasst: Di 02.11.10 15:53 
Meinst du damit das Beenden des Programmes? Oder das Beenden des Sortierungsvorganges?
Raytek Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Di 02.11.10 15:54 
user profile iconMaxWurzel hat folgendes geschrieben Zum zitierten Posting springen:
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
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6393
Erhaltene Danke: 147

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 02.11.10 15:57 
@Tankard: :mrgreen:

@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 Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Di 02.11.10 16:06 
user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:

ausblenden 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
// andersrum



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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Administrator
Beiträge: 217
Erhaltene Danke: 96



BeitragVerfasst: 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 Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Di 02.11.10 16:16 
Ok die der Thread kann geschlosssen werden es funktioniert alles. Ich bin glücklich. Danke