Вверх ↑
Ответов: 16884
Рейтинг: 1239
#1: 2015-03-29 23:06:53 ЛС | профиль | цитата
1. Для кого нужно писать s := ReadString(_Data, _data_Str, _prop_Str) + #0? Это сишные мансы для типа *char
тип String писал(а):
В Object Pascal(DELPHI) и STL(стандартная библиотека шаблонов в языке программирования C++) строка является «чёрным ящиком», в котором выделение/высвобождение памяти происходит автоматически — без участия программиста. При создании строки память выделяется автоматически; как только на строку не останется ни одной ссылки, память возвращается системе. Преимущество этого метода в том, что программист не задумывается над работой строк. С другой стороны, программист имеет недостаточный контроль над работой программы в критичных к скорости участках; также трудно реализуется передача таких строк в качестве параметра в DLL. Также Object Pascal автоматически следит, чтобы в конце строки был символ с кодом 0. Поэтому если функция требует на входе нуль-терминированную строку, для конвертации надо просто написать PAnsiChar(строковая_переменная) или PWideChar(строковая_переменная) (для Pascal), переменная.c_str() (для Builder/STL).

2.
Rysik писал(а):
это что одноразовый компонент что ли...
Скорее "односторонний". Выпустил из вида, что SetLength может не только обрезать, но и увеличивать строку. Это да, каюсь, упустил. Завтра добавлю.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0