Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.03.22;
Скачать: CL | DM;

Вниз

TStringList.AddObject добавление строки вместо TObject   Найти похожие ветки 

 
Unknown user ©   (2012-03-06 11:24) [0]

Подскажите, можно ли так добавлять строки к TStringList?

var
 AnotherString: string;

TStringList.AddObject(S, Pointer(AnotherString))

или обязательно делать копию строки

TStringList.AddObject(S, Pointer(NewStr(AnotherString)))

Строки имеют счетчик ссылок и вроде бы такой каст не должен нарушить его работу. Правильно?


 
Ega23 ©   (2012-03-06 11:33) [1]

Что ты хочешь сделать?


 
Медвежонок Пятачок ©   (2012-03-06 11:36) [2]

и вроде бы такой каст не должен нарушить его работу.

он и не нарушит.
тем, что никак не повлияет на количество ссылок на строку. и как только она выйдет из области видимости то в списке будет невалидный указатель


 
Dimka Maslov ©   (2012-03-06 11:37) [3]

Если уж очень надо - объяви класс с единственным членом - строкой и пудзырь его экземпляры в TStrings.Objects. Только потом не забывай вовремя удалять их.


 
Игорь Шевченко ©   (2012-03-06 11:40) [4]


> Подскажите, можно ли так добавлять строки к TStringList?


лучше через KEY=VALUE, TStringList умеет работать с такими строками
читать TStrings.Names, TStrings.Values, и т.п.


 
Unknown user ©   (2012-03-06 11:50) [5]

Все понял, спасибо.

Это мне приходится чужой код рихтовать, тут вообще подход в стиле

var Res:PChar; S: String;

  S:=Socket.RemoteHost;
  GetMem(Res,16); FillChar(Res[0],16,32); Res[15]:=#0;
  Move(S[1],Res[0],Length(S));
  Usernames.AddObject(UserName,TObject(Res));

Мало что S может быть длиннее 16 символов, а памяти выделяется только 16 байт (это еще AnsiString). Так еще и выделенная память нигде не освобождается.



Страницы: 1 вся ветка

Текущий архив: 2013.03.22;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.047 c
2-1333101588
leklerk
2012-03-30 13:59
2013.03.22
Как сделать в DBGrid для поля заголовок в 2 строки?


6-1258651624
DesWind
2009-11-19 20:27
2013.03.22
Формирование запроса idHTTP


2-1338803238
rioko
2012-06-04 13:47
2013.03.22
Работа с нетипизированными файлами более 2 гигабайт


3-1285063680
yurikon
2010-09-21 14:08
2013.03.22
TADOQuery и TADODataSet


2-1335937740
Александр_12
2012-05-02 09:49
2013.03.22
Возможно ли управлять PowerPoint