AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi String richtig sortieren
Thema durchsuchen
Ansicht
Themen-Optionen

String richtig sortieren

Ein Thema von Walter Landwehr · begonnen am 16. Mai 2015 · letzter Beitrag vom 18. Mai 2015
Antwort Antwort
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#1

AW: String richtig sortieren

  Alt 17. Mai 2015, 04:53
Entschuldigt, da geht mir der Hut hoch!
Entweder der Feldinhalt ist numerisch oder ein Text. da sollte man sich vorher entscheiden und dementsprechend sortieren. Erreicht man das gewünschte Ergebnis nicht, könnten z.B. führende Nullen weiter helfen. Kommt man so immer noch nicht zum Ziel, stellt sich die Frage ob das gewählte Format überhaupt das richtige ist.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#2

"Wort zum Sonntag"

  Alt 17. Mai 2015, 06:41
Entschuldigt, da geht mir der Hut hoch! Entweder der Feldinhalt ist numerisch oder ein Text. da sollte man sich vorher entscheiden und dementsprechend sortieren. Erreicht man das gewünschte Ergebnis nicht, könnten z.B. führende Nullen weiter helfen. Kommt man so immer noch nicht zum Ziel, stellt sich die Frage ob das gewählte Format überhaupt das richtige ist.
Mal davon abgesehen, wie sinnvoll oder -los das Anliegen des TE ist: eine derart emotionale Beteiligung am Programmierstil eines Forenmitglieds, mit dem du vermutlich weder Projekte gemeinsam umsetzen noch dessen Anwendungen benutzen mußt, hilft weder dem TE noch dir selbst und läßt auch sonst keinen nennenswerten Nutzen erkennen ...

Es spricht ja im Grunde nichts dagegen, den eigenen Programmierstil insgeheim für den weltweit besten zu halten. Das tun hier offenbar viele, sollte aber deren Privatvergnügen bleiben bzw. ihren eigenen selbstedukatorischen Zwecken dienen. Doch anderen ihren eigenen Stil auf diese Weise madig machen zu wolllen, indem man eine starke emotionale Reaktion ("mir geht der Hut hoch" impliziert Wut oder Zorn, zumindest aber große Verärgerung) demonstriert, um damit beim Gegenüber eine entsprechende Reaktion hervorzurufen, ist meines Empfindens nach nicht wirklich angebracht, zumal nicht nur in diesem Fall jegliche Sachargumentation vollständig ausbleibt.

Wie mir einmal Daniel – absolut berechtigt – auf eine ähnliche Reaktion meinerseits erwiderte, vergrault man damit empfindsame User, und das macht ja nun wohl gar keinen Sinn. Aus meiner Sicht empfiehlt es sich daher, die Themen hier und auch in anderen Foren mit dem gebührenden emotionalen Abstand zu betrachten, und wenn das nicht gelingt, die daraus resultierenden unkontrollierbaren Reaktionen für sich zu behalten. Man trägt sonst lediglich die eigenen innere Konflikte an Leute heran, die damit nicht das Geringste zu tun haben und daher auch nichts damit anzufangen wissen – außer eben emotional darauf zu reagieren ... und wohin das führt, wissen wir alle nur zu gut.

Ich weiß aus eigener Erfahrung ziemlich genau, worüber ich hier schreibe.
_________________________________

Und nun zurück zum Thema:

Welche Anforderungen beim TE genau vorliegen bzw. weshalb er in seiner Tabelle diese Werte genau so stehen hat oder haben muß, wissen wir nicht. Fakt ist jedoch erst einmal, daß er diese Tabellen-Inhalte so, wie sie nunmal vorliegen, zu sortieren wünscht. Mir fällt im Augenblick außer der genannten Methode keine weitere ein, die das Problem des TE zu lösen imstande wäre.

Ich hatte einmal ein ähnliches Problem, da wollte der Kunde Artikelnummern, die stets mit Buchstaben begannen und mit Ziffern endeten, auf dieselbe Weise sortiert haben. Das war nur zu machen, indem man Buchstaben- und Ziffernanteile in zwei Spalten verwaltete und diese bei Reports wieder zusammensetzte. Vielleicht klärt uns ja der TE noch darüber auf, was genau dahintersteckt, wäre aber für die Lösung des Problems nicht unbedingt notwendig.

Geändert von Perlsau (17. Mai 2015 um 08:07 Uhr) Grund: Tippfehler korrigiert
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#3

AW: String richtig sortieren

  Alt 17. Mai 2015, 07:34
Meistens ist es im echten Leben so, das man sich die Gegebenheiten nicht aussuchen kann, sondern sich mit ihnen arrangieren muss. Hier ist es eben so, das eine Spalte nach bestimmten Regeln sortiert werden muss, die sich nicht so ohne weiteres umsetzen lassen.

Da muss man durch.

PS: Auch zum Thema: Muss es eine Firebird/DB-Lösung sein? Das ist nicht so leicht. In Delphi schreibt man einfach eine Vergleichsfunktion und kann das dann mal eben schnell sortieren.

Geändert von Dejan Vu (17. Mai 2015 um 07:37 Uhr)
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
405 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: String richtig sortieren

  Alt 17. Mai 2015, 08:27
Es handelt sich hierbei um ein Gebührenverzeichnis für Heilpraktiker. Leider hat man 1987, so alt ist das Verzeichnis, nicht an EDV gedacht. Man möchte aber die Sortierung so haben wie Sie in Buchform gedruckt ist.

Ich weiß nicht welcher Dämon hier p80286 ergriffen hat, so emotional zu reagieren. Ich hatte nicht die Absicht hier eine sinnlose Diskussion loszutreten sondern habe lediglich um eine Lösung gebeten. Ich hätte vielmehr von p80286 eine vernünftige Lösung erwartet, als sich hier völlig daneben zu benehmen.

Ich werde mal den Vorschlag von Perlsau testen und über das Ergebnis berichten.
Walter Landwehr
Mfg

Walter

Geändert von Walter Landwehr (17. Mai 2015 um 08:34 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: String richtig sortieren

  Alt 17. Mai 2015, 09:10
Diese Art der Daten wird eben von keinem Standard-Sortierer abgedeckt.

Wenn man diese Daten mal aufbricht, dann hat man so etwas
Delphi-Quellcode:
TFoo = record
  Section: array of integer;
  SubSection: string;
end;
Somit müsste ein immer korrekt funktionierender Sortier-Algorithmus vorher den Wert parsen und dann nach den einzelnen Teilen sortieren.

Eine immer korrekt funktionierende Sortierung für diese Daten kann also nur in der Anwendung selber erfolgen oder man erstellt sich eine UDF, die den Wert sortierfreundlich umwandelt.
Code:
1    => 001
10   => 010
2    => 002
3    => 003
30   => 030
3a  => 003 a
10.1 => 010.001
2a  => 002 a
2b  => 002 b
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.174 Beiträge
 
Delphi 12 Athens
 
#6

AW: String richtig sortieren

  Alt 17. Mai 2015, 09:21
Spricht etwas dagegen eine weitere Spalte als Suchfeld hinzuzufügen ?
Dann müsste man nur einmal mit einem speziellen Algorithmus drüberlaufen und diese nach beliben Setzen,
danach könnte man schnell per z.B. Integer-Feld sortieren.

Rollo
  Mit Zitat antworten Zitat
Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#7

AW: String richtig sortieren

  Alt 17. Mai 2015, 09:41
Spricht etwas dagegen eine weitere Spalte als Suchfeld hinzuzufügen ?
Dann müsste man nur einmal mit einem speziellen Algorithmus drüberlaufen und diese nach beliben Setzen,
danach könnte man schnell per z.B. Integer-Feld sortieren.

Rollo
Ich muss in meinen Projekten leider auch öfter auf Fremddaten zurückgreifen, deren Inhalt, Formatierung und Sortierung nicht meiner Kontrolle unterliegen. Da ist fast immer unmöglich einfach mal ein Feld hinzuzufügen, oder die Tabelle nach eigenen Ansprüchen zu verändern. Zum einen weiß man nicht immer welche Probleme man damit in der Erstellersoftware hervorruft, zum anderen bekommt man selten von den Entwicklern dieser Tabelle die Genehmigung oder die Unterstützung (schon gar nicht, wenn es sich dabei um größere Unternehmen handelt, wenn man denn überhaupt die Erlaubnis bekommt). Und dann passiert es sogar ab und an, dass die Erstellersoftware diese Erweiterungen der Tabelle beim nächsten Start oder der nächsten Reorganisationen mal flux wieder zu nichte macht.
Ich seh bei solchen Sachen tunlichst zu, dass ich das dies in meiner Software erledige. Ob im Speicher oder in einer eigenen DB hängt von Größe und Frequenz der Änderungen ab. Dann allerdings kann ich das so machen, wie ich will.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
405 Beiträge
 
Delphi 10.4 Sydney
 
#8

AW: String richtig sortieren

  Alt 17. Mai 2015, 11:25
Hallo Rollo,

nein dagegen spricht nichts. DB und Software liegt in meiner Veantwortung.
Walter Landwehr
Mfg

Walter

Geändert von Walter Landwehr (17. Mai 2015 um 11:33 Uhr) Grund: Text Ergänzt.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.875 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: String richtig sortieren

  Alt 17. Mai 2015, 09:22
PS: Auch zum Thema: Muss es eine Firebird/DB-Lösung sein? Das ist nicht so leicht. In Delphi schreibt man einfach eine Vergleichsfunktion und kann das dann mal eben schnell sortieren.
Diese könnte man dann u.U. auch als UDF in FireBird benutzen.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:31 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz