Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > импорт из Excel по DDE


Автор: cheska 12.4.2007, 19:50
При импорте по DDE из ячейки Excel (через DdeClientConv1.RequestData) получаю 
значение в ячейке с непонятной мне "добавкой" в виде #$D#$A , т.е. вместо 'test' я вижу 'test'#$D#$A это так я это вижу в дебугере, в Local Variables.
Мне нужно сравнивать полученное значение с контрольным, но эта добавка мешает, а я даже не понимаю что это , вернее понимаю что это что-то типа конца данных с переводом строки, но точно не понимаю и не понимаю,
Как мне от этого избавиться (от этой добавки) или что добавить к контрольному значению.

Автор: _hunter 12.4.2007, 20:09
ну так удаляй эту добавку... в чем проблема?

Автор: cheska 12.4.2007, 20:18
Я дико извиняюсь, но я к своему стыду даже не понимаю что это точно и как это убрать или может прощще добавить к стороке сравнения.
А то сейчас я это делаю так
Код

       Memo1.Text:= DDERequestData('Data',xlRange);
       sBuffer:=Memo1.Lines.Strings[0];

здесь DDERequestData - функция которая собственно через DDE обращается к Excel.
Но понимаю что это неправильно и наверное не рационально так как несмотря на имя переменной xlRange, я реально обращаюсь к одной ячейке с простым текстом

Добавлено через 3 минуты и 27 секунд
Вернее я дагадываюсь что это Tab и конец строки , но почему они так отображаються ? #$D и #$A 

Автор: artemiy 13.4.2007, 15:17
Это шестнадцатеричные значения окончания строки и перевода каретки; #$D - это #13, #$A - #10. А сам код перевода строки - #13#10. Видимо в ячейке кто то поставил enter после "test", который не виден невооруженным глазом, но программой воспринимается так же, как и остальные символы. Вот получается ты и видишь это в конце переменной. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)