#delphi
Вопрос:
Я отправляю на свой сервер с помощью COM , TStringList внутри параметра типа OleVariant. Назначение его не было проблемой. Но на сервере я хочу преобразовать обратно в TStringList. Каков был бы наиболее правильный способ сделать это?
Клиент:
MetodClient(StringList.Text, OutParam);
Сервер:
function MetodServer(InputParams: OleVariant; var OutputParams: OleVariant): OleVariant;
var
MyList: TStringList;
begin
MyList:= TStringList.Create;
MyList.add(InputParams);
Как я это делаю, весь список Tstring добавляется с индексом 0
Комментарии:
1. Так же, как и при отправке — используйте текст.
MyList.Text := InputParams;
2. Лично я бы сохранил
TStringList
содержимое в виде массива строкOleVariant
, а не в виде одной строки.3. @RemyLebeau Вы имеете в виду, повторять
TStringList
и на каждой итерации добавлять элемент вOleVariant
преобразованный в массив вариант?4. @jmontegrosso Массив строк, а не массив вариантов. Вариант OLE может содержать безопасный набор элементов BSTR. Но по сути да, повторите
TStringList
, чтобы создать массив, а затем повторите массив, чтобы повторно заполнитьTStringList
.5. Передача массива строк, безусловно, была бы менее хрупкой. Использование текста вызывает проблемы, если какие-либо строки в списке уже содержат концы строк, поскольку они в конечном итоге разбиваются на несколько записей списка.