On Sun, 5 Mar 2006, L505 wrote:

> 
> > > But I mean if you are doing things at different times in the program:
> > >
> > > for i := 1 to 1000
> > >   DoSomestuff
> > >   s:= string + string;
> > >   DoOtherStuff
> > >   s:= string + string;
> > >
> > > in other words.. not one big concatenation at once such as:
> > >
> > > string.concatenate(string1, string2, string3, string4);
> > >
> > > The only way I saw it possible in my mind was through a special string
> buffer
> > > type (or hey, even a stringbuffer class if not a true system type).
> > >
> > > With TStrings.concatenate did you mean an all at once concatenation?
> >
> > All strings in the list are concatenated in one step, regardless of
> > when they were added to the list:
> >
> > Sl:=TStringList.Create;
> > for i := 1 to 10000000 do
> >  begin
> >  DoSomestuff;
> >  SL.Add(SomeString);
> >  DoOtherStuff;
> >  SL.Add(SomeOtherString);
> >  end;
> > Result:=SL.Concatenate; // This can be optimized to 1 getmem call.
> >
> > Michael.
> 
> 
> I suppose this is sort of like SetTextBuff for stringlist :)
> 
> And how about if you don't have any line delimiter? i.e. a string buffer with 
> no
> CRLF or LF.. does the TStrings type allow to disable the line delimiter?

That would be the difference between 'Text' and 'Concatenate': 
Text adds CR/LF between the strings, 'Concatenate' would not.

Michael.

_________________________________________________________________
     To unsubscribe: mail [EMAIL PROTECTED] with
                "unsubscribe" as the Subject
   archives at http://www.lazarus.freepascal.org/mailarchives

Reply via email to