Неочевидное поведение TStringList

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Неочевидное поведение TStringList

Сообщение Brainenjii » 25.01.2013 17:24:46

Код:
Код: Выделить всё
program Project1;
Uses
  Classes;
Var
  aStringList: TStringList;
begin
  aStringList := TStringList.Create;
  aStringList.Values[''] := '100';
  aStringList.Values['wtf'] := '200';
  aStringList.Values['wtf'] := '300';
  aStringList.Values[''] := '400';
  WriteLn(aStringList.Text);
  aStringList.Free;
end.

Ожидалось увидеть:
=400
wtf=300

Обнаружено:
=100
wtf=300
=400
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Re: Неочевидное поведение TStringList

Сообщение NTFS » 25.01.2013 19:17:36

Да, в Delphi работает не так.

Нашли баг, поздравляю. Можно слать отчет.
NTFS
постоялец
 
Сообщения: 388
Зарегистрирован: 05.11.2007 14:57:50
Откуда: Краснодар

Re: Неочевидное поведение TStringList

Сообщение daesher » 27.01.2013 08:24:31

NTFS писал(а):Нашли баг, поздравляю. Можно слать отчет.

Насколько это документировано - присваивать значение пустому имени?
daesher
постоялец
 
Сообщения: 221
Зарегистрирован: 09.03.2010 22:17:14

Re: Неочевидное поведение TStringList

Сообщение NTFS » 27.01.2013 11:02:22

Неважно, насколько документировано - все равно документацию никто не читает :-)
Важно, чтобы с включенной опцией {$mode delphi} поведение компилятора на 100% соответствовало тому компилятору, которое делал давно ушедший от нас Borland.
Иначе FreePascal из довольно полезной и самобытной поделки превращается в очередной PascalABC - учиться на нем можно, но смысл?
NTFS
постоялец
 
Сообщения: 388
Зарегистрирован: 05.11.2007 14:57:50
Откуда: Краснодар

Re: Неочевидное поведение TStringList

Сообщение daesher » 27.01.2013 15:27:54

NTFS писал(а):Неважно, насколько документировано - все равно документацию никто не читает :-)
Важно, чтобы с включенной опцией {$mode delphi} поведение компилятора на 100% соответствовало тому компилятору, которое делал давно ушедший от нас Borland.
Иначе FreePascal из довольно полезной и самобытной поделки превращается в очередной PascalABC - учиться на нем можно, но смысл?

Ну, в {$mode delphi} может быть, хотя, конечно, за недокументированными функциями VCL гнаться не обязательно - пусть лучше правят исходники те, кто их зачем-то использует (благо, исходники есть, иначе особо не попортируешь). Заодно выявляются явные баги, которые в delphi были менее заметны.
Да и сейчас freepascal имеет куда более высокий уровень, нежели PascalABC - на нём много чего написано и переписано; скоро будет больше, чем на Delphi
А что действительно серьёзно - так это отсутствие в рабочем виде нормальных package, появившихся ещё с первых версий Delphi - о каких недокументированных функциях вообще идёт речь, пока нет их?
daesher
постоялец
 
Сообщения: 221
Зарегистрирован: 09.03.2010 22:17:14


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 6

Рейтинг@Mail.ru