AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TStringlist sortieren

Ein Thema von little_budda · begonnen am 11. Jan 2007 · letzter Beitrag vom 12. Jan 2007
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#1

TStringlist sortieren

  Alt 11. Jan 2007, 21:38
Hallo,

ich habe mir eine Stringliste deklariert mit folgendem Code
Delphi-Quellcode:
...
  slOutList : tstrings;
...
  slOutList := tstringlist.create();
...
Nun sind ca 400 Einträge in der Liste und ich würde sie gern alphabetisch sortieren.
Hier im Forum finde ich jede Menge Beispiele mit ".sort"
Nur wenn ich folgen Code probiere
Delphi-Quellcode:
...
  slOutList.sort;
...
sagt mir mein Compiler immer "Undefinierter Bezeichner 'sort'

Wo bitte liegt mein Fehler?

Gruß Holger.

Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: TStringlist sortieren

  Alt 11. Jan 2007, 21:43
Sort gibt nur bei TStringList und nicht bei TStrings.
Und da deine Variable vom Typ TStrings ist ...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: TStringlist sortieren

  Alt 11. Jan 2007, 21:50
Zitat von Bernhard Geyer:
Sort gibt nur bei TStringList und nicht bei TStrings.
Und da deine Variable vom Typ TStrings ist ...
???
Das dürfte doch kein Problem sein, da TStringList ja ne implementierende Abelitung der abstrakten Klasse TStrings ist.

Man muß nur Casten:


(slOutList as TStringList).sort;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von little_budda
little_budda

Registriert seit: 5. Mai 2006
Ort: Velbert
246 Beiträge
 
Delphi 2006 Professional
 
#4

Re: TStringlist sortieren

  Alt 11. Jan 2007, 22:03
Danke.

Mit "slOutList as TStringList" klappt es

Gruß Holger.
Holger
Glück findet sich nicht im Code
Gefahren werden ist nur solange schön wie man selbst nicht lenken möchte ...
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: TStringlist sortieren

  Alt 11. Jan 2007, 22:23
Zitat von mkinzler:
Zitat von Bernhard Geyer:
Sort gibt nur bei TStringList und nicht bei TStrings.
Und da deine Variable vom Typ TStrings ist ...
???
Das dürfte doch kein Problem sein, da TStringList ja ne implementierende Abelitung der abstrakten Klasse TStrings ist.

Man muß nur Casten:


(slOutList as TStringList).sort;
Stimmt schon. Wenn schon 'ne lokale Variable dann gleich den passenden Typ nehmen. Sonst casted man blindlinks: Ah TStrings hab ich: Caste ich mal schnell nach TStringlist und schon paßt es.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: TStringlist sortieren

  Alt 11. Jan 2007, 22:26
Wieso überhaupt TStrings deklarieren und nicht TStringList? Die Abstraktion braucht man in dem Fall ja extrem selten.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#7

Re: TStringlist sortieren

  Alt 12. Jan 2007, 09:06
Hallo Manuel,

Zitat von 3_of_8:
Wieso überhaupt TStrings deklarieren und nicht TStringList?
Informatiker lernen, dass man Variablen stets nur für diejenige Superklasse vereinbart, deren Methoden und Eigenschaften man zu nutzen gedenkt. Es handelt sich dabei um eine Spielart von information hiding. Dieses universelle Grundprinzip kennen nicht nur Software Ingenieure ...

Grüße vom marabu
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: TStringlist sortieren

  Alt 12. Jan 2007, 09:42
In diesem Fall (nämlich wenn man eine in der Superklasse nicht deklarierte Methode verwenden will, e.g. sort) hat man sich aber dann elegant vor sich selbst versteckt. Wenn man weiss was man will, sollte man natürlich so arbeiten, u.a. bei Streams.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#9

Re: TStringlist sortieren

  Alt 12. Jan 2007, 10:29
Zitat von marabu:
Zitat von 3_of_8:
Wieso überhaupt TStrings deklarieren und nicht TStringList?
Informatiker lernen, dass man Variablen stets nur für diejenige Superklasse vereinbart, deren Methoden und Eigenschaften man zu nutzen gedenkt. Es handelt sich dabei um eine Spielart von information hiding. Dieses universelle Grundprinzip kennen nicht nur Software Ingenieure ...
Ist für mich nicht logisch. (Liegt vieleicht daran, daß ich kein studierter Informatiker bin, sondern nur ein autodidaktischer Programmierer

Ich denke, wenn ich in einer Procedure ein Object deklariere, dann verwende ich als Variable auch den Type den ich brauche. Un anscheinend gedenkt little_budda ja die Functionen von TStringlist zu verwenden. Warum dann nicht die Variable als TStringlist deklarieren?


Gerd
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#10

Re: TStringlist sortieren

  Alt 12. Jan 2007, 10:53
Hallo Gerd,

die eigentliche Frage hatte Bernhard schon in Beitrag #2 beantwortet. Mein Beitrag bezog sich auf die Frage von Manuel:

Zitat von 3_of_8:
Wieso überhaupt TStrings deklarieren und nicht TStringList? Die Abstraktion braucht man in dem Fall ja extrem selten.
Durch den hervorgehoben Nachsatz habe ich die Frage als allgemeine Frage angesehen und versucht eine allgemeine Antwort zu geben.

Meine Antwort möchte ich so verstanden wissen:

Wird eine StringList instanziert, dann verwende ich eine Objektvariable vom Typ TStrings, wenn ich sowieso nur die von TStrings bereit gestellten Methoden verwenden möchte. Da Holger im konkreten Fall die Methode Sort() verwenden möchte, ist es kein Verstoß gegen das Universalprinzip die Objektvariable als TStringList zu deklarieren. Nur die unmotivierte Deklaration als TStringList ist unprofessionell.

Ich fürchte nach genauem Lesen, dass auch Union meinen Beitrag falsch interpretiert haben könnte und hoffe mit dieser Lesehilfe auf mehr Verständnis.

Freundliche Grüße
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 23:27 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz