Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi StringBuffer in Delphi? (https://www.delphipraxis.net/166367-stringbuffer-delphi.html)

Coffeecoder 9. Feb 2012 17:53

StringBuffer in Delphi?
 
Guten Abend,
Standardmässig gibt es keine StringBuffer in Delphi oder doch?
Wir wissen ja, dass jedes Mal einen neuen String angelegt wird, wenn man den manipulieren will. Sprich:
Delphi-Quellcode:
...
var Str : String;
...
  Str := 'Hallo';
...
  Str := Str + ' Welt';
Für die die in Java programmieren, gibt es eine (bessere) Varianten um nicht immer ein neues Stringobjekt anzulegen.
Die Klasse StringBuffer:
Code:
...
 StringBuffer meinString = new StringBuffer("Hallo");
...
Will man jetzt " Welt" hinzufügen macht man ja folgendes:
Code:
...
 meinString.append(" Welt");
...
Jetzt die große Lottofrage, gibt es sowas denn auch in Delphi? Eine Komponente die man downloaden kann?

Danke :)

DeddyH 9. Feb 2012 18:00

AW: StringBuffer in Delphi?
 
Eine Komponente braucht man da IMHO nicht, StrCat oder StrECopy sollten es auch tun.

Coffeecoder 9. Feb 2012 18:06

AW: StringBuffer in Delphi?
 
Zitat:

Zitat von DeddyH (Beitrag 1150186)
Eine Komponente braucht man da IMHO nicht, StrCat oder StrECopy sollten es auch tun.

Hey DeddyH, stimmt damit kann man einiges tun und kommt an StringBuffer ran. Danke dir :thumb:

jaenicke 9. Feb 2012 18:10

AW: StringBuffer in Delphi?
 
In der Regel ist das ganze schon optimiert genug, dass das kein Problem ist. Deshalb macht es eigentlich nur Sinn in der Richtung zu optimieren, wenn es denn tatsächlich mal ein Performance- oder Speicherproblem gibt.
Und dann kann man ja mit PChars und selbst vorher vergrößerten Strings arbeiten, was sicher sehr viel schneller ist als eine allgemeine Pufferung es sein kann. Denn die kann man ja nie auf den Einzelfall hin optimieren.

jbg 9. Feb 2012 18:34

AW: StringBuffer in Delphi?
 
Zitat:

Zitat von Coffeecoder (Beitrag 1150185)
Standardmässig gibt es keine StringBuffer in Delphi oder doch?

Klar hat Delphi einen TStringBuilder. Und das schon seit Jahren :-) Er wurde mit Delphi 2009 in der Unit SysUtils eingeführt. Ob er was bringt, sei jedem selbst überlassen.

himitsu 9. Feb 2012 18:41

AW: StringBuffer in Delphi?
 
Sowie einen TStringStream, TTextReader, TTextWriter, TStringReader, TStringWriter, TStreamWriter, TStreamReader, ...
Die TStringList kann man ebenfalls als sehr flotten String-Builder misbrauchen (indem man z.B. dessen LineBreak auf '' setzt), vorallem wenn zwischendurch Textabschnitte oft verändert werden.

Coffeecoder 9. Feb 2012 18:43

AW: StringBuffer in Delphi?
 
Zitat:

Zitat von jbg (Beitrag 1150195)
Klar hat Delphi einen TStringBuilder. Und das schon seit Jahren :-) Er wurde mit Delphi 2009 in der Unit SysUtils eingeführt. Ob er was bringt, sei jedem selbst überlassen.

Gut zu wissen und meine Version selbst ist zu "alt" ;)

[Add]: Meine Frage ist soweit beantwortet. Danke euch :)

s.h.a.r.k 9. Feb 2012 20:06

AW: StringBuffer in Delphi?
 
Zitat:

Zitat von jbg (Beitrag 1150195)
Klar hat Delphi einen TStringBuilder. Und das schon seit Jahren :-) Er wurde mit Delphi 2009 in der Unit SysUtils eingeführt. Ob er was bringt, sei jedem selbst überlassen.

Hatte da mal einen kleinen Test am laufen, aber wirklich sehr viel schneller war der TStringBuilder nicht. Die String-Operationen sind in Delphi imho sehr gut optimiert.

himitsu 9. Feb 2012 20:17

AW: StringBuffer in Delphi?
 
Zitat:

Zitat von s.h.a.r.k (Beitrag 1150218)
Die String-Operationen sind in Delphi imho sehr gut optimiert.

Hust.

So um 2006 rum wurde das FastCode-Projekt in Delphi integriert und hat viele alte schlecht weniger gut optimiere Funktionen ersetzt.
Leider hat man in der Zwischenzeit, bzw. beim Integrieren einige Stellen wieder verschlimmbessert. :cry:

s.h.a.r.k 9. Feb 2012 20:37

AW: StringBuffer in Delphi?
 
Gut, mein Test war glaub mit Delphi XE. Wenn überhaupt mit Delphi 2010, aber ich meine echt Delphi XE. XE2 kann ich auch ausschließen. Fazit war jedenfalls, dass der StringBuilder unwesentlich schneller war als die "normalen" String-Operationen, wobei, soweit ich weiß, nur die grundlegenden Dinge getestet hatte. Aber gut, ich will mich hier nicht total festlegen, auch nicht, ob mein Test ungemein aussagekräftig ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:17 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