AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi dyn. Array of String gegen perfomance-schonenderes tauschen
Thema durchsuchen
Ansicht
Themen-Optionen

dyn. Array of String gegen perfomance-schonenderes tauschen

Ein Thema von Helmi · begonnen am 14. Feb 2010 · letzter Beitrag vom 15. Feb 2010
Antwort Antwort
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

dyn. Array of String gegen perfomance-schonenderes tauschen

  Alt 14. Feb 2010, 20:21
Hallo,

ich habe ein dynamisches Array of String dessen Länge (Anzahl der Elemente) mittels SetLength in einer Schleife (abhängig von bestimmten Bedingungen) vergrößert wird.
In das jeweilige Array-Element werden Strings eingefügt die an die bereits vorhandenen Strings mittels #10 getrennt werden.

Mir ist das ganze nicht perfomance-schonend.
Deswegen dacht ich mir, ich könnte ja ein Array of TStringList nehmen.
Aber das ist mir auch nicht sehr schön. Vor allem muss ich dabei ja extrem aufpassen, dass ich alles richtig wieder freigebe.

Weiss jemand vielleicht eine noch bessere Möglichkeit?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#2

Re: dyn. Array of String gegen perfomance-schonenderes tausc

  Alt 14. Feb 2010, 20:24
Eine TObjectList+TStringList ?


Die Unit Generics.Collections (aus neueren Delphis) mit TObjectList<TStringList> wird dir wohl nicht viel helfen.
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#3

Re: dyn. Array of String gegen perfomance-schonenderes tausc

  Alt 14. Feb 2010, 20:26
Zitat von himitsu:
Eine TObjectList+TStringList ?
kannst mir das etwas näher erklären?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#4

Re: dyn. Array of String gegen perfomance-schonenderes tausc

  Alt 14. Feb 2010, 20:28
Jetzt hast du ein Array mit vielen TStringList drinnen.

Damit hast du dann eine TObjectList, wo die vielen TStringList reinkommen.
Und die TObjectList läßt du auch gleich die TStringList löschen, wenn diese weg können.

> OwnsObjects oder so
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#5

Re: dyn. Array of String gegen perfomance-schonenderes tausc

  Alt 14. Feb 2010, 20:30
Zitat von himitsu:
Jetzt hast du ein Array mit vielen TStringList drinnen.

Damit hast du dann eine TObjectList, wo die vielen TStringList reinkommen.
Und die TObjectList läßt du auch gleich die TStringList löschen, wenn diese weg können.

> OwnsObjects oder so
Und immer wenn ich eine neue Stringliste brauche, dann einfach eine neue erzeugen und der Objectlist übergeben?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.139 Beiträge
 
Delphi 12 Athens
 
#6

Re: dyn. Array of String gegen perfomance-schonenderes tausc

  Alt 14. Feb 2010, 20:40
jupp
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#7

Re: dyn. Array of String gegen perfomance-schonenderes tausc

  Alt 15. Feb 2010, 05:52
Mich würde mal interessieren, was Du denn überhaupt machen willst.

Zunächst würde ich die Funktionalität in einer Klasse kapseln:
Delphi-Quellcode:
Type
  TStringMatrix = Class
  Public
     Constructor Create;
     Destructor Destroy; Override;
     Property Element [Row, Col : Integer] : String Read GetElement Write SetElement;
     Property RowCount : Integer Read fRowCount;
     Property ColCount[Row : Integer] : Integer Read GetColCount;
  End;
Der Setter der 'Element'-Eigenschaft kann z.B. dafür sorgen, das genügend Platz vorhanden ist. Wahlweilse führst Du einen Setter für die 'RowCount' und 'Colcount' Eigenschaften ein.

Nun kannst Du in Ruhe ans Implementieren gehen. Erstelle Dir eine Testumgebung, gegenüber der Du die Klasse testest.

Übrigens: Durch das Auslagern und Kapseln musst Du gar nicht mehr 'höllisch aufpassen', dass Du auch alles wieder freigibst: Das machst Du an einer einzigen Stelle: im Destruktor.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  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 16:04 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