Ответ: CorelScript: как из string получить все символы в array?
Аркадий...
[скриплю старыми костями... вспоминаю 10 класс, когда я программировал в кодах на ДВК... вспоминаю 3 курс... когда я начал писАть на ассемблере... вспоминаю свою прогу, которая писала сектор в обход 13 прерывания биоса... вспоминаю другую свою прогу, которая рисовала на экране быстрее, чем движется луч... вспоминаю, что потом я решил вообще работать с видеопамятью в офлайне, нарисовав всё заранее, и только переключая цветА черех порты... вспоминаю, что ТурбоДебаггер я не видел уже лет 13... опять скреплю старыми костями... и...]
Аркадий... а зачем переливать байты из пустого в порожнее?
А аффтара есть уже структура данных. Он делает другую структуру и руками, грубо, говорит - вот эта структура начинается в памяти с того же места, откуда начинается первая структура.
Особенно эффективно это будет для Вашего примера с 10 миллионами... Мы не переливаем эти 10 метров из одной области в другую, а просто переназначаем пойнтеры.
В общем же, лично я теперь работаю, например, так:
AppActivate ("CorelDraw"), False
SendKeys "% {DOWN 4}{ENTER}"
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
' Close #1
CorelScript.SetReferencePoint 9
CorelScript.CreateTextString 550000, -550000, -550000, 550000, outstr$
'CorelScript.UnSelectAll
'CorelScript.CreateRectangle 560000, -560000, -560000, 560000, 0
CorelScript.SelectObjectsInRect 560000, -560000, -560000, 560000, 0
CorelScript.SetFrameColumn 0, 330000, 10000
CorelScript.SetFrameColumn 1, 330000, 10000
CorelScript.SetFrameColumn 2, 330000, 10000
newHour = Hour(Now())
newMinute = Minute(Now())
newSecond = Second(Now()) + 1
waitTime = TimeSerial(newHour, newMinute, newSecond)
Application.Wait waitTime
SendKeys "^8", True
и очень хорошо себя чувствую.
Вы можете спросить - что делает последний сендкиз? Отвечу - в Кореле на этом кее сидит команда "подогнать текст под рамку". Она в скриптах не разрешена. И из меню/шорткатов - пожалуйста. Поэтому мы садим в Кореле команду на шорткат, а потом вот так вот впихиваем Корелу в глотку.
А Вы говорите - экономный код...
Главное - решить задачу в целом. Ни к чему стремиться на секунду быстрее спуститься на лифте, если впереди большой турпоход...