[DUG] String Concatenation

Rohit Gupta r.gupta at xtra.co.nz
Fri Nov 4 12:50:37 NZDT 2005


You havent mentioned what version you are using.  D5 has a severe 
problem where it gets confused between shortstring and ansistring.  It 
just shows up at random, when you examine the assembler code, you can 
see the fault.  The only solution I found was to explicitly declare 
ansistring and shortstring instead of using string.  Of course thsi 
still stuffs up because all vcl uses string.

I havent had any problems with D7 or D2005.

You dont have any timers or events stuffing things up ? 

Note you really wanted maxDataIndex-1

Allan, Samuel wrote:

> We have a weird problem where we are building a string up. It is quite 
> a large string, but not exceptionally large. About maybe 1000 
> characters. The code to create the string approximates:
>  
> insertString, finalString: string;
>  
> for i := 0 to maxDataIndex do
>    insertString := insertString + dataItem[i];
>  
> finalString := CONSTANT_A + insertString + CONSTANT_B + insertString + 
> CONSTANT_C;
>  
> Without throwing an overflow warning or any other warning, this code 
> results in a finalString where the first instance of insertString is 
> whole and complete. The second instance is interrupted half-way by 
> what looks like a random memory dump, and there is no CONSTANT_C 
> afterwards. insertString remains pristine and untouched.
>  
> We have also tried several variations on the above code:
>  
> Using Copy() to create two additional strings, one for each insert. 
> Same result for finalString, both additional insert strings are fine.
>  
> Putting placeholder tokens in the finalString, then running 
> StringReplace(). Same result.
>  
> We tried to isolate the code in a separate application. The separate 
> application works fine, as you would expect. So we think it may be 
> something to do not with the code itself, but with the structure of 
> our application. However, code like this is widely used within this 
> application and elsewhere works fine.
>  
> Our application implicitly compiles several packages into itself. The 
> code in question is in one of these packages. So compiling any change 
> to it requires compiling the package, then compiling the application.
>  
> We have searched the web, and found an exact match for this posted in 
> some newsgroup in 1998, but there were no responses. The match does 
> not mention packages however.
>  
>
>------------------------------------------------------------------------
>
>_______________________________________________
>Delphi mailing list
>Delphi at ns3.123.co.nz
>http://ns3.123.co.nz/mailman/listinfo/delphi
>  
>




More information about the Delphi mailing list