Thema
:
Delphi
Stringübergabe dauert sehr lange wer kann helfen ?
Einzelnen Beitrag anzeigen
shmia
Registriert seit: 2. Mär 2004
5.508 Beiträge
Delphi 5 Professional
#
14
Re: Stringübergabe dauert sehr lange wer kann helfen ?
14. Dez 2005, 18:34
Problem
markieren
Delphi-Quellcode:
// es wird 20000 Mal an sNew angehängt
// bei jedem Anhängen muss ein neuer speicherblock allokiert werden
// und der gesamte bisherige String kopiert werden !!!
sNew := sNew + '
' + Listbox1.Items.Strings[i];
Viel Schneller
ist:
zusammenfalten
·
markieren
Delphi-Quellcode:
function
CopyThatList(liste:TStrings;
const
delimstring:
string
):
string
;
var
i, L,
dl
: Integer;
size : integer;
P : PChar;
s :
string
;
begin
dl
:= Length(delimstring);
size := 0;
for
i := 0
to
liste.Count - 1
do
Inc(size, Length(liste[I]) +
dl
);
SetLength(result, size);
// Speicher nur einmal reservieren !!
p := PChar(Result);
for
i := 0
to
liste.Count - 1
do
begin
s := liste[i];
L := Length(s);
if
L <> 0
then
begin
System.Move(Pointer(S)^, P^, L);
Inc(P, L);
end
;
if
dl
<> 0
then
begin
System.Move(delimstring[1], P^,
dl
);
Inc(P,
dl
);
end
;
end
;
end
;
Andreas
Zitat
shmia
Öffentliches Profil ansehen
Mehr Beiträge von shmia finden