Autor Beitrag
Delphi-Laie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Di 25.10.11 14:02 
user profile iconHorst_H hat folgendes geschrieben Zum zitierten Posting springen:
Hallo,

das ist noch nicht so,wie ich mir das vorstellte.
Am Ende sollte die Sortierung farblich harmonisch sein ;-)


Genau das (und noch andere Dinge) sind jetzt implementiert.

Sinnvoll ist es m.E. nicht, aber es ist schönes Futter für die Augen. :wink:

Gruß

Delphi-Laie
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Do 04.10.12 19:27 
Hallo Delphi-Laie,
ich habe Deine neue Programmversion getestet.
Dabei ist mir ein kleines Problem aufgefallen. Bei der Menge "Dreieckspermutation (Spitze oben)" und binärer Vorsortierung meldet das Programm eine ungültige Zeigeroperation.
Klickt man diese weg und sortiert, so beendet sich das Programm automatisch nach dem Sortieren.
Als ich den Fehler nochmals reproduzieren wollte, ging alles gut, bis nach dem Sortieren. Dann kam eine Zugriffsverletzung bei Adresse 00401C30 und das Programm konnte nur noch über den Taskmanager geschlossen werden.

Ansonsten ist die Menge der von Dir umgesetzten Sortieralgorithmen beeindruckend.

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein

Für diesen Beitrag haben gedankt: Delphi-Laie
Delphi-Laie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Fr 05.10.12 16:06 
Hallo Mathematiker, besten Dank für Deinen Beitrag und auch Deine Mühe!

Zunächst einmal bin ich damit beschäftigt, einen Computer (Surf- und Programmierlaptop) neu einzurichten, weil mein treuer Rechenknecht gestern nach 6 Jahren seinen Geist aufgab. Das gröbste müßte aber nun(mehr) überstanden sein.

Beileibe bin ich niemand, der Fehler abstreitet (um sich so Arbeit vom Halse zu halten, um es sich nicht einzugestehen und so die Aura im Selbstbild nicht anzukratzen, was auch immer), aber es kommt auch jetzt so, wie es fast gesetzmäßig kommen muß: Ich kann es nicht reproduzieren und benötige mithin mehr Informationen!

1. Welche Programmversion zeigt dieses Fehlverhalten? Alle?
2. Wieviel Vorsortierschleifen schaltetest Du zu?
3. Bei welcher Sortieralgorithmus zeigt sich der Fehler? Oder ist das egal ("invariant"), d.h. bei jedem?
4. Evtl. noch wichtig: Bei welcher Auflösung?

Nach ca. 4 Jahren Programmierdauer werden die Fehler zum Glück allmählich selten, doch sie komplett, vollständig auszumerzen ist wie mit dem perfekten Umweltschutz, indem man alle Schadstoffe ausfiltert: Es ist nahezu unmöglich.

Dank im voraus und viele Grüße

Delphi-Laie
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Fr 05.10.12 16:42 
Hallo Delphi-Laie,
user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
1. Welche Programmversion zeigt dieses Fehlverhalten? Alle?
2. Wieviel Vorsortierschleifen schaltetest Du zu?
3. Bei welcher Sortieralgorithmus zeigt sich der Fehler? Oder ist das egal ("invariant"), d.h. bei jedem?
4. Evtl. noch wichtig: Bei welcher Auflösung?

Ich habe es gerade noch einmal getestet; Version D4 laufzeitflexible Längen.
Starte ich das Programm und klicke sofort Vorsortierung binär (eine Vorsortierschleife), so geht das Programm ohne Meldung einfach zu.
Wähle ich Dreieckspermutation und ebenfalls binäre Vorsortierung und sortiere mit dem 1.Verfahren AVL-Sort, so geht es gut, bis nach dem Sortieren. Dann kommt die Zugriffsverletzung, der Eingabedialog wird unsichtbar und nur nach ALT-F4 schließt das Programm.
Bei einigen Verfahren funktioniert alles ok. Wähle ich Heapsort, so sortiert es korrekt und beendet sich danach selbst.
Die Auflösung meines Computers ist 1280 x 800 Pixel mit Windows Vista.
Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein

Für diesen Beitrag haben gedankt: Delphi-Laie
Delphi-Laie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Fr 05.10.12 17:14 
Danke, ich bekomme es jetzt einigermaßen reproduziert.

In der Lazarus-Variante taucht dieser Fehler nicht auf, mit anderen Sortieralgorithmen auch nicht immer...das kann ja heiter werden.

Nichtdestoweniger werde ich als alter Pedant (sind wir Programmierer das nicht alle mehr oder weniger?) der Sache natürlich auf den Grund gehen.

Viele Grüße

Delphi-Laie
Delphi-Laie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Fr 05.10.12 21:31 
So, Ursache des Problems gefunden und es (hoffentlich) beseitigt. Und natürlich danach die Verbesserung auch veröffentlicht.

Es war ein Array-Dimensionierungsfehler: Ein um 1 zu kleines Array. Merkwürdig nur, daß das parallele, fast quelltextgleiche Lazarus-Compilat (das ich auch gleich noch bereinigte) nicht zickte. Normalerweise ist Lazarus (und auch seine Compilate?) gegenüber Programmierfehlern empfindlicher.

Was ich auf meinem jetzigen Laptop wieder unangenehm wahrnehme (auch auf einem anderen Computer schon, nicht jedoch auf meinem Hauptcomputer bis gestern abend): Der Endpiep kommt vor dem Ende des Sortierens. Offensichtlich werden die Graphikbefehle (Linien zeichnen) an die Graphikkarte gesandt, von dieser geschluckt und damit der Graphikaufbau als schon erledigt betrachtet. Im Quelltext ist alles schön sequentiell. Wie diesem kleinen, aber unschönen Problem beizukommen ist, ist mir völlig rätselhaft.

Danke noch einmal, Mathematiker!

Für diesen Beitrag haben gedankt: Mathematiker
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Fr 05.10.12 22:21 
Hallo Delphi-Laie,
user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
So, Ursache des Problems gefunden und es (hoffentlich) beseitigt.

Funktioniert jetzt einwandfrei. Danke. :D

Zwei Wünsche hätte ich noch:
1. Durch die grafische Veranschaulichung ist eine reelle Zeitmessung nicht möglich. Dennoch wäre es nicht schlecht, wenn man eine ungefähre Zeitangabe hätte. Dann könnte man die Güte der Verfahren besser miteinander vergleichen.

2. Das Ini-File wird im Exe-Ordner abgelegt. In unserem Netzwerk gibt es dabei ein Problem, da nicht jeder Schreibrechte auf den Ordner hat. Vielleicht kann die Ini-Datei in den temporären Nutzerordner ausgelagert werden.

Ob das eine oder andere machbar ist, kann ich nicht einschätzen. Ich hoffe, dass es zumindest Anregungen sind.

Viel Erfolg beim weiteren Sortieren und beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein
Delphi-Laie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Fr 05.10.12 22:47 
Die ich rief, die Geister....

Du hast ja vielleicht ein paar Sonderwünsche. ;-) Einige Anregungen "wehrte" ich schon ab, teils im Forum öffentlich und teils auch schon per PM bei einem mir altbekannten Forumsmitglied.

Das mit den Schreibrechten ist mir wohlbekannt, ich las dazu schon Luckies Ausführungen. Nur, wenn man das Recht hat, in irgendein Verzeichnis die Exe abzulegen, so nahm ich an, daß diese Exe dasselbe Recht hat, nämlich, ihre ini-Datei abzulegen. Ist dem nicht so? Nun, dann müßte ich mich damit beschäftigen, wo sie sonst abzulegen ist. Ein Verzeichnis, auf dem man nach meinem Wissen immer Schreibrechte hat (auch als ausgegrenztester Gast), ist das Temp-Verzeichnis. Nur, das kann man gelegentlich auch bereinigen (lassen).

Die Zeitmessung ist auch so eine Sache, weil nicht allzu aussagekräftig. Das Programm verzerrt die Sortiergeschwindigkeiten wegen der ständigen Ausgabe ohnehin.

Es gab z.B. auch den Wunsch, die Anzahl der Vergleiche und der Vertauschungen zu zählen und auszugeben. Teilweise gibt es aber Verschiebungen statt Vertauschungen (eine Vertauschung wären dann 3 Verschiebungen). Bei komplizierten Algorithen (AVL, B, Skiplist) werde ich damit wohl überfordert sein. Die speziellen Sortieralgorithmen vergleichen gar nicht. Oder eine farbliche Markierung/Hervorhebung der demnächst zu tauschenden Elemente (hier: Längslinien). Das geht aber so schnell, daß man es nicht erfassen kann (das weiß ich von einer anderen Sortieranimation). Vertikale Vertauschungen zu programmieren, macht nur mehr Arbeit, der Informationszuwachs ist gleich 0. Man könnte genausogut auch einige Algorithmen umgekehrt laufen lassen (sodaß z.B. Bubblesort nicht erst die kleinsten, also aufsteigend, sondern die größten Elemente zuerst, also absteigend, sortiert) oder gleich komplett invers (absteigend) sortieren (lassen). Irgendwann verliert man sich in tausenden Einzelheiten.

Mit dem Schreiberverzeichnis/-rechten sehe ich noch am ehesten eine Chance. Die Zeitmessung ist schon wesentlich weniger sinnvoll. Ich habe ja auch gemogelt: Um flüssiges Sortieren zu gewährleisten, krallt sich dieses Programm maximale Prozeßpriorität (Echtzeit ist nicht möglich, warum, weiß ich nicht) und maximale Threadpriorität. Allein dafür würden mich manche wahrscheinlich schon "lynchen". Für systematisches Eindringen in die Welt der Sortieralgorithmen ist mein Programm in dieser Form ungeeignet und wird es wegen der betonten Beschränkung auf die Darstellung des Verlaufes (Animation) auch nimmer werden.


Zuletzt bearbeitet von Delphi-Laie am Sa 06.10.12 00:11, insgesamt 5-mal bearbeitet
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Fr 05.10.12 23:42 
Hallo Delphi-Laie,
user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Du hast ja vielleicht ein paar Sonderwünsche. ;-) Einige Anregungen "wehrte" ich schon ab, teils im Forum öffentlich und teils auch schon per PM bei einem mir altbekannten Forumsmitglied.

Es sind nur Anregungen!
Die Sache mit der Zeitmessung ist mir eigentlich klar; durch die grafische Darstellung unrealistisch. Muss ja auch nicht sein.
Das Problem mit der Ini-Datei ist weniger problematisch. Statt
ausblenden Delphi-Quelltext
1:
IniFile:=TIniFile.Create(ChangeFileExt(ParamStr(0),'.ini'));					

müsste nur
ausblenden Delphi-Quelltext
1:
IniFile:=TIniFile.Create(tempordner+ChangeFileExt(ParamStr(0),'.ini'));					

mit
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
function Tempordner: string;
begin
  SetLength(Result,MAX_PATH + 1);
  SetLength(Result,GetTempPath(length(Result),@Result[1]));
end;

eingefügt werden, hoffe ich.

Beste Grüße und nichts für ungut, wenn meine Wünsche etwas extrem sind. :wink:
Mathematiker

Nachtrag: Ich habe es gerade getestet. Mein Vorschlag funktioniert nicht. Irgendwo habe ich einen Denkfehler.

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein

Für diesen Beitrag haben gedankt: Delphi-Laie
Delphi-Laie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Fr 05.10.12 23:57 
Nein, solche Wünsche sind beileibe nicht "extrem", es war schon heftiger (wie weiter oben erwähnt). Auf das Temp-Verzeichnis schreibend zugreifen zu lassen, ist mir allerdings ein klein wenig anders bekannt als bei Deiner hier vorgestellten Lösung.

Den Speicherort kann ich leider nicht in die ini-Datei (oder jede andere Datendatei) schreiben, denn an diese sicher zu gelangen, ja, sie überhaupt erst einmal zu erstellen, ist ja das eigentliche Problem. Also müßte das in die exe eincompiliert ("fest verdrahtet" ) werden und ich mithin weitere Programmversionen erstellen. Das wird mir eigentlich allmählich zu unübersichtlich. Alternativ kannst Du doch diese paar wenigen Zeilen, die Du hier vorstelltest, doch gleich in meinen Quelltext einfügen?!

Ich arbeite auf meinen privaten Computern grundsätzlich als Adminstrator ohne irgendwelche Konten und individuelle Anmeldung(szwänge) und lasse mich in der Beziehung auch von niemandem belehren. Schließlich heißt PC ja persönlicher Computer, und das nehme ich wörtlich. Deshalb bleiben mir solche Niederungen wie fehlende Schreibrechte (bei denen ich eigentlich einen dicken Hals bekomme, ich hatte diese ewigen Bevormundungen eigentlich satt, bin aber davon zum Glück seit Jahren nicht mehr betroffen) leider verborgen. Ich vermute, daß Du die exe auf einem Server liegen hast und diese von verschiedenen Clienten aus gestartet werden soll, nicht wahr?

Edit: Die Speicherung der Optionen in die ini-Datei war auch eine Anregung (von einem Teilnehmer eines externen Forums) und m.E. die einzige, die ich bisher umsetzte. Und die hatte es schon in sich (der Teufel steckte auch hier in vielen Details), weil ich einen Teil des Programmcodes dazu komplett überarbeiten mußte.

Edit 2: Das Temp(orär)verzeichnis ermittelte ich bis dato so:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
function GetTemppfad: String;
var Dir: array[0..MAX_PATH+1of Char;
begin
GetTemppath(SizeOf(Dir),Dir);
Result:=String(Dir)
end;
Delphi-Laie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Sa 06.10.12 11:35 
user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Nachtrag: Ich habe es gerade getestet. Mein Vorschlag funktioniert nicht. Irgendwo habe ich einen Denkfehler.


Die Fehlermeldung brachte den Fehler an den Tag: Auf C:\Temp\C:\.....(Mein Temp-Verzeichnis und mein Speicherort der Exe-Datei) kann natürlich nicht geschrieben werden. Wir benötigen nur den Exe-Dateinamen ohne vorangestellten Pfad und ohne Dateiparameter.

Aber mit

ausblenden Delphi-Quelltext
1:
IniFile:=TIniFile.Create(Gettemppfad+ExtractFileName(ChangeFileExt(ParamStr(0),'.ini')))					

(in der Initialisation)

und, nicht zu vergessen, mit

ausblenden Delphi-Quelltext
1:
if Fileexists(Gettemppfad+ExtractFileName(ChangeFileExt(ParamStr(0),'.ini'))) then					

(im FormCreate)

scheint es tadellos zu klappen.

Ergänzung:

Deine vorgestellte Tempordnerfunktion scheint auch etwas vereinfacht:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
function Tempordner: string;
begin
SetLength(Result,MAX_PATH + 1);
GetTempPath(length(Result),@Result[1])
end;


gleichermaßen zu funktionieren. Das Verb "scheinen" ist bei meinen Aussagen zudem mein Lieblingswort.

Für diesen Beitrag haben gedankt: Mathematiker
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: So 21.10.12 22:03 
Hallo Delphi-Laie,
user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Aber mit
ausblenden Delphi-Quelltext
1:
IniFile:=TIniFile.Create(Gettemppfad+ExtractFileName(ChangeFileExt(ParamStr(0),'.ini')))					

(in der Initialisation)
und, nicht zu vergessen, mit
ausblenden Delphi-Quelltext
1:
if Fileexists(Gettemppfad+ExtractFileName(ChangeFileExt(ParamStr(0),'.ini'))) then					

(im FormCreate)
scheint es tadellos zu klappen.

Meine Rückmeldung kommt etwas spät.
Es funktioniert tadellos. Dein Programm läuft ohne Probleme im Netzwerk, jetzt auch auf den Terminals ohne Schreibrechte.
Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein

Für diesen Beitrag haben gedankt: Delphi-Laie
Delphi-Laie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Mo 22.10.12 09:03 
user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Meine Rückmeldung kommt etwas spät.


Sie hätte auch gar nicht kommen müssen (ich weiß es ja per PN), aber danke! Und sogar, wenn sie zu spät gekommen wäre (was wäre in diesem Kontext "zu"?), macht alles nichts. Als Student hatte ich auch nicht immer Lust, pünktlich aufzustehen, und kam in einigen Fällen zu spät. Und das eine Jahr, in dem ich selbst vor Studenten stand, war es nicht anders. Ich sagte zu den Nachzüglern immer: "Besser zu spät als gar nicht." ;-) Aber übernimm diesen Spruch bitte nicht für Deine "Schöler"!

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Es funktioniert tadellos. Dein Programm läuft ohne Probleme im Netzwerk, jetzt auch auf den Terminals ohne Schreibrechte.


In die Temp(orär)-Verzeichnisse, nicht wahr? Ist nun die Frage, in das nutzerinterne, -spezielle oder das generelle für die jeweilige Windows-Installation? Im ersteren hätte jeder seine Einstellungen, im zweiten eben nicht. Spontan weiß ich natürlich nicht, welches aufgerufen wird, ja nicht einmal, ob es in der Beziehung zwei verschiedene Kategorien gibt.


Zuletzt bearbeitet von Delphi-Laie am Mo 22.10.12 09:38, insgesamt 1-mal bearbeitet
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: Mo 22.10.12 09:28 
Hallo Delphi-Laie,
user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
Sie hätte auch gar nicht kommen müssen (ich weiß es ja per PN), aber danke! Und sogar, wenn sie zu spät gekommen wäre (was wäre in diesem Kontext "zu"?), macht alles nichts.

Ich habe mich nur an die Regeln gehalten.
Zitat:
4.7 Antworten IMMER ins Forum
Wer in der EE fragt, liest auch in der EE! Deshalb: Antworten auf Fragen bitte IMMER im Forum posten. Antworten (ausschließlich) per Email/PN oder über andere nicht-öffentliche Kanäle sind nicht erwünscht, da wir Wissen nicht verstecken, sondern für spätere Leser mit ähnlichen Fragen oder Problemen bewahren wollen.

Oh je, jetzt kommt bei mir der (Be)Lehrer durch. :mahn:
user profile iconDelphi-Laie hat folgendes geschrieben Zum zitierten Posting springen:
In die Temp(orär)-Verzeichnisse, nicht wahr? Ist nun die Frage, in das nutzerinterne, -spezielle oder das generelle für die jeweilige Windows-Installation?

Werde ich testen. Sobald ich es weiß, melde ich es hier im Forum. :mrgreen:

Beste Grüße
Mathematiker

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein

Für diesen Beitrag haben gedankt: Delphi-Laie
Delphi-Laie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Mo 22.10.12 09:37 
Für fachliche Antworten trifft das zu, denn die helfen allen. Allein ein Dank erfüllt diese Anforderung nicht (überhaupt, ist vieler "smaller Talk" beim Extrahieren der eigentlichen Informationen natürlich hinderlich), ist aber auch öffentlich schön.

Was ich noch ergänzen wollte: In dem einen Jahr, in dem es nicht anders war (das Zuspätkommen), traf das Zuspätkommen natürlich nicht auf mich zu, da war ich ja geläutert und vorbildlich (hingen ja auch Anstellung und Einkommen davon ab). Ich meinte natürlich die Studenten. Die ändern sich eben nie... ;-)
Delphi-Laie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Fr 23.11.12 19:04 
Hallo Mathematiker, das müßte auch einfacher funktionieren:

ausblenden Delphi-Quelltext
1:
if Fileexists(IniFile.Filename) then					


Damit muß die Funktion zum Ermitteln des Temp-Verzeichnisses nur einmal aufgerufen werden. Ich werde das in eine try-Anweisung packen, wie jüngst unter www.entwickler-ecke....ewtopic.php?t=110615 angeregt. Damit kann dieses mein Programm in sein eigenes Verzeichnis zu schreiben versuchen und, wenn das nicht klappt (z.B. bei Netzwerkbetrieb), in das für Schreibvorgänge n.m.W. immer empfängliche benuterspezifische Tempverzeichnis schreiben.
Mathematiker
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2622
Erhaltene Danke: 1447

Win 7, 8.1, 10
Delphi 5, 7, 10.1
BeitragVerfasst: So 24.11.13 15:06 
Hallo Delphi-Laie,
ich habe Deine neue Version des Sortierkinos getestet und bin beeindruckt. :zustimm:
Zum einen ist die Menge der verschiedenen Sortierverfahren; einige kenne ich gar nicht; sehr groß, zum anderen ist es sehr schön, dass nun jeder Sortiervorgang problemlos unterbrochen werden kann.
Damit hast Du wohl eines der umfangreichsten Programme zum Sortieren.

Kleiner Hinweis: Bei den "Lazarus-Exen" überlappen sich die Auswahlfelder, so dass man es schlecht lesen kann.
Bei den "Delphi-Exen" ist alles perfekt.

Beste Grüße
Mathematiker

PS: Ich sehe gerade: 70 Bearbeitungen des Programms. Das ist ebenfalls beeindruckend.

_________________
Töten im Krieg ist nach meiner Auffassung um nichts besser als gewöhnlicher Mord. Albert Einstein

Für diesen Beitrag haben gedankt: Delphi-Laie
Delphi-Laie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: So 24.11.13 16:20 
Danke für das Lob, aber bin ich jetzt gegenüber dem eigenen Produkt betriebsblind?

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Kleiner Hinweis: Bei den "Lazarus-Exen" überlappen sich die Auswahlfelder, so dass man es schlecht lesen kann.


Was überlappt sich da und kann schlecht gelesen werden?

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Damit hast Du wohl eines der umfangreichsten Programme zum Sortieren.


Ich hoffe, daß es schon das Umfangreichste ist, falls nein, dann arbeite ich weiter daran (und auch ohne diese Zielsetzung). ;-)

user profile iconMathematiker hat folgendes geschrieben Zum zitierten Posting springen:
Ich sehe gerade: 70 Bearbeitungen des Programms. Das ist ebenfalls beeindruckend.


Naja, waren nicht immer echte Neuerungen. Manchmal fand ich - natürlich erst nach dem Hochladen / Veröffentlichen - noch kleine Fehlerchen, die ich so natürlich nicht belassen konnte. Das meiste waren aber schon echte Neuerungen i.S. von Funktionserweiterungen.
Tastaro
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 414
Erhaltene Danke: 23



BeitragVerfasst: Mi 22.02.17 12:57 
Ich mag dein Sortierkino und finde es sehr hilfreich.
Danke dafür

Für diesen Beitrag haben gedankt: Delphi-Laie
Delphi-Laie Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 1600
Erhaltene Danke: 232


Delphi 2 - RAD-Studio 10.1 Berlin
BeitragVerfasst: Mi 22.02.17 13:12 
user profile iconTastaro hat folgendes geschrieben Zum zitierten Posting springen:
Ich mag dein Sortierkino und finde es sehr hilfreich.
Danke dafür


Danke auch!

Nunja, jeder hat sein Steckenpferd, das für etliche andere wohl eher schon wie eine Macke, ein "Spleen" wirkt, was ich nachvollziehen kann. Algorithmen mochte ich schon immer, und die Sortieralgorithmen, die sich i.d.R. so schön visualisieren lassen, haben mich ganz in ihren Bann gezogen.

Das einzige, was mir an meinem Programm bis heute nicht so recht gefällt, ist das Layout des Bedienformulares. Es soll möglichst viel auf den ersten Blick erkennbar sein, jedenfalls kein unnötiges Herumgeklicke, um an die Optionen zu gelangen, verursachen (in den sog. "Menüs" läßt sich fast unendlich viel - dann verschachtelt - verstecken). Das ist meine Vorstellung von Softwareergonomie. Dann sollen die visuellen Komponenten einigermaßen logisch und geordnet angeordnet sein - weiter oben hinsichtlich der Sortiervorbereitung, weiter unten eher in Richtung Sortierdurchführung. Und dann soll das ganze auch noch platzsparend - ohne zu dicht gedrängt zu wirken - placiert sein, damit das Bedienformular möglichst kleingehalten und von der Startmenge im Hintergrund auch noch möglichst viel zu sehen ist.

Wer diesen Zielkonflikt besser als meine Wenigkeit gelöst, ja optimiert bekommt, dem gebe ich einen aus - versprochen!

Postscriptum: Ich entwickele unentwegt weiter, die Ideen, vor allem neue Algorithmen gehen mir nicht aus. Meistens gibt es im Wochenrythmus ein neues Update. In den nächsten Tagen soll u.a. ein weiteres Smoothsort hinzukommen.


Zuletzt bearbeitet von Delphi-Laie am Mi 22.02.17 16:01, insgesamt 1-mal bearbeitet