|
![]() |
#1 |
Боец
|
При множественном копирования имен объектов АОТ (контекстное меню\Add-Ins\Copy\Names) и последующей вставке в редактор X++ наблюдаем неприятный эффект:
все имена вставляются в одну строчку; при этом они разделены кривым символом-разделителем, который приводит к ошибке редактора и невозможности что-то в нем сохранить. Этот баг лечится очень просто. \Classes\SysTreeNodeNameCopyToClipboard\runsysContextMenu: X++: void runsysContextMenu(SysContextMenu _sysContextMenu) { TreeNode aNode = _sysContextMenu.first(); TextBuffer textBuffer = new TextBuffer(); int lines; while (aNode) { if (lines) //copy AOT names fix, EVO --> //orig: textBuffer.appendText('\n'); textBuffer.appendText(strfmt("%1%2", num2char(0x0D), num2char(0x0A))); //copy AOT names fix, EVO <-- textBuffer.appendText(aNode.treeNodeName()); lines++; aNode = _sysContextMenu.next(); } if (lines) textBuffer.toClipboard(); } Последний раз редактировалось DSPIC; 16.10.2009 в 19:29. |
|
|
За это сообщение автора поблагодарили: Gustav (2). |
![]() |
#2 |
Moderator
|
Сейчас попробовал в оригинальной строке просто заменить n на r
X++: // // textBuffer.appendText('\n'); // textBuffer.appendText('\r'); ![]() Блокноту - всё так же нет, Excel'ю - по-прежнему хорошо |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#3 |
Участник
|
Цитата:
Может стоит строку попроще сделать textBuffer.appendText('\r\n'); Это виндовый разделитель 0x0D 0x0A. |
|
![]() |
#4 |
Боец
|
Цитата:
Используя явные HEX байты, мы на 100% отсекаем эту ошибку преобразования, поэтому: Цитата:
Может стоит строку попроще сделать textBuffer.appendText('\r\n');
Насколько я помню, \n = 0x0D + 0x0A, а \r - это возврат каретки P.S. Из теории Цитата:
...
Управляющие символы Основная статья: Управляющие символы Различные операционные системы придерживаются своего представления перевода строки и конца файла. В UNIX перевод строки состоит из одного символа LF (0x0A), в Mac OS — из символа CR (0x0D), а в DOS и Microsoft Windows перевод строки кодируется последовательностью двух символов CR LF. В DOS и Microsoft Windows конец файла кодируется символом 0x1A, а в UNIX символ конца файла не употребляется ... http://wapedia.mobi/ru/%D0%A3%D0%BF%...BE%D0%BB%D1%8B т.е. для винды нужно сделать возврат каретки+перевод строки: 0x0D + 0x0A = '\n' , а '\r' - это пол дела ![]() Последний раз редактировалось DSPIC; 16.10.2009 в 20:19. |
|
Теги |
ax2009, ax3.0, ax4.0, drag-n-drop, полезное, редактор |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|