AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi MemoBox bzw. Textdatei im Speicher verwalten
Thema durchsuchen
Ansicht
Themen-Optionen

MemoBox bzw. Textdatei im Speicher verwalten

Ein Thema von kuba · begonnen am 20. Jul 2008 · letzter Beitrag vom 21. Jul 2008
Antwort Antwort
Seite 2 von 3     12 3      
mkinzler
(Moderator)

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

Re: MemoBox bzw. Textdatei im Speicher verwalten

  Alt 21. Jul 2008, 12:54
Zitat:
[OT]Warum deklarieren hier alle etwas besseren Delphi-Programmierer eine StringListe nur als TStrings? Bringt das was oder ist das wirklich einfach nur kürzer? Mr. Green [/OT]
TStrings ist der abstrakte Vorgänger von TStringList.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Diamondback2007
Diamondback2007

Registriert seit: 2. Feb 2007
260 Beiträge
 
Delphi 2007 Professional
 
#12

Re: MemoBox bzw. Textdatei im Speicher verwalten

  Alt 21. Jul 2008, 13:02
Zitat von mkinzler:
Zitat:
[OT]Warum deklarieren hier alle etwas besseren Delphi-Programmierer eine StringListe nur als TStrings? Bringt das was oder ist das wirklich einfach nur kürzer? Mr. Green [/OT]
TStrings ist der abstrakte Vorgänger von TStringList.
Ich weiß, aber was macht es für einen Sinn bei der Deklaration nicht auch schon den Nachfolger zu deklarieren?
Im Moment sehe ich nur den Sinn, dass TStrings einfach weniger zu schreiben ist. Klärt mich auf wenn ich falsch liege.
Fabian E.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#13

Re: MemoBox bzw. Textdatei im Speicher verwalten

  Alt 21. Jul 2008, 13:34
Z.B. TMemo.Lines sind als TStrings deklariert und nicht als TStringList. Deklarierst Du also einen Übergabeparameter als TStringlist, kannst Du TMemo.Lines nicht mehr übergeben, so einfach ist das
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

Re: MemoBox bzw. Textdatei im Speicher verwalten

  Alt 21. Jul 2008, 13:47
Hallo,

da muß ich nun doch wiedersprechen.
Delphi-Quellcode:
var
  ll : tstrings;
begin
  ll:=tstringlist.Create;
  ll.add('einms');
  ll.add('zwei');
  ll.add('dreir');
  ll.add('vier');
  ll.add('fünf');
  ll.sort; {---- das geht nicht!}
  ll.Free;
end;
Wenn man die StringList sortieren will, oder sonst etwas nutzen will was in TStrings enthalten ist, dann knallt's.
Und die Übergabe geht über .Text ganz gut.

Gruß
K-H
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: MemoBox bzw. Textdatei im Speicher verwalten

  Alt 21. Jul 2008, 13:50
Und was willst Du damit zum Ausdruck bringen (vor allem, wem widersprichst Du denn da nun)?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
nat

Registriert seit: 10. Nov 2005
216 Beiträge
 
RAD-Studio 2009 Pro
 
#16

Re: MemoBox bzw. Textdatei im Speicher verwalten

  Alt 21. Jul 2008, 14:07
Zitat von p80286:
Hallo,

da muß ich nun doch wiedersprechen.
Delphi-Quellcode:
var
  ll : tstrings;
begin
  ll:=tstringlist.Create;
  ll.add('einms');
  ll.add('zwei');
  ll.add('dreir');
  ll.add('vier');
  ll.add('fünf');
  ll.sort; {---- das geht nicht!}
  ll.Free;
end;
Wenn man die StringList sortieren will, oder sonst etwas nutzen will was in TStrings enthalten ist, dann knallt's.
Und die Übergabe geht über .Text ganz gut.

Gruß
K-H
über
TStringList(l1).sort; würde das dann auch wieder gehen
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: MemoBox bzw. Textdatei im Speicher verwalten

  Alt 21. Jul 2008, 14:13
Ist zwar in diesem Fall wurscht, aber IMO wäre es besser mit(ll as TStringList).sort;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

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

Re: MemoBox bzw. Textdatei im Speicher verwalten

  Alt 21. Jul 2008, 14:30
Hallo

ich hatte den Eindruck, das sich Kuba mit den Stringlisten ein wenig schwer tut, und dann ist eine eine solche Konstruktion meiner Meinung nach nicht das wahre:

Delphi-Quellcode:
var
  sl : TStrings;

  sl:=TStringlist.create;
Wenn dann irgendwo hinten im Code eine Methode oder eine Eigenschaft von TStringlist genutzt wird, ist Hängen im Schacht. Wenn man nur die Methoden und Eigenschaften von TStrings benötigt, und man ist sich dessen bewusst, ist dies ein gangbarer Weg. Aber dann sollte man nicht von Stringlisten sondern von "deabstrahiertem" (oder wie ach immer das heißt) TStrings sprechen.

Und daß
Delphi-Quellcode:
  
  TStringlist(ll).sort
funktioniert, wußte ich nicht.

Typecasting mit Klassen eröffnet ganz neue Möglichkeiten.

Gruß
K-H
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: MemoBox bzw. Textdatei im Speicher verwalten

  Alt 21. Jul 2008, 14:34
Der harte Cast sollte aber, wie Detlef schon erwähnt hat, durch eine Softcast ersetzt werden.
Die Verwendung des abtrakten Vorgängers bei der Variablendeklaration hat weiterhin den Vorteil, dass man später die implementierende lasse einfacher ändern kann. Deshalb wird innerhalb der VCL auch immer TStrings als Typ verwendet.
Markus Kinzler
  Mit Zitat antworten Zitat
nat

Registriert seit: 10. Nov 2005
216 Beiträge
 
RAD-Studio 2009 Pro
 
#20

Re: MemoBox bzw. Textdatei im Speicher verwalten

  Alt 21. Jul 2008, 14:43
Zitat von mkinzler:
Der harte Cast sollte aber, wie Detlef schon erwähnt hat, durch eine Softcast ersetzt werden.
Die Verwendung des abtrakten Vorgängers bei der Variablendeklaration hat weiterhin den Vorteil, dass man später die implementierende lasse einfacher ändern kann. Deshalb wird innerhalb der VCL auch immer TStrings als Typ verwendet.
warum?
in diesem fall weiß ich doch 100%ig von welchem typ mein objekt ist und, dass ich das garantiert zu TStringList casten kann.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 05:44 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