Добрый день!
Столкнулся с некоторой странностью при работе с TStringList. Такое ощущение, что при использовании свойства Text для получения, собственно, текста, при конкатинации строк в конец каждой строки банально добавляется #10. То есть в выгруженном, с помощью вышеупомянутого свойства, тексте последний символ всегда #10 - хоть одна стока в массиве, хоть десять... Таким образом, отображая где-либо данный текст, мы получим одну лишнюю пустую строку снизу.
Проверил такое поведение на fpc версии 2.6.4 под Linux:
program TestStringList;
{$mode objfpc}{$H+}
uses Classes, SysUtils;
var
oTmp : TStringList;
cTmp : Char;
sTmp : string;
begin
oTmp:=TStringList.Create;
with oTmp do
begin
Add('Hello,');
Add('World!')
end;
sTmp:=oTmp.Text;
oTmp.Free;
for cTmp in sTmp do Write(IntToStr(Ord(cTmp))+' ');
Writeln
end.
Вывод в консоль:
~/Laboratory/FP$ ./teststringlist
72 101 108 108 111 44 10 87 111 114 108 100 33 10
Вот теперь думаю, баг это или не баг?
Приходится делать фильтр на последний символ для каждого применения свойства Text. Обидно будет, если добавят код, который будет отслеживать последнюю строку и блокировать добавление #10.