[fpc-devel] Is the code in wiki correct?

Michael Van Canneyt michael at freepascal.org
Sat May 9 08:53:59 CEST 2020



On Fri, 8 May 2020, Amir wrote:

> Hi there,
>
>   I was looking for a native implementation for JoinStrings and ended up in 
> TStringList-TStrings_Tutorial 
> <https://wiki.freepascal.org/TStringList-TStrings_Tutorial>.
>
>
> <https://wiki.freepascal.org/TStringList-TStrings_Tutorial>
> In Conversion to and from delimited strings 
> <https://wiki.freepascal.org/TStringList-TStrings_Tutorial#Conversion_to_and_from_delimited_strings> 
> section, it claims the following code works if the separator is a string:
> MyStringList:= TStringList.create;
> MyStringList.SkipLastLineBreak := True;
> MyStringList.add('1');
> MyStringList.add('2');
> MyStringList.add('3');
> result := StringReplace(MyStringList.Text,Lineending,'\n', [rfReplaceAll, 
> rfIgnoreCase]);
>
> I believe this is not correct. What if there is a newline(LineEnding) in one 
> of the strings?

It will also be replaced. So yes, the code is wrong for such a case.

TStringlist is not a silver bullet, and it is definitely not a replacement
for CSV-kind of functionality. If someone needs CSV, (s)he should use the TCSVDocument class.


Michael.


More information about the fpc-devel mailing list