Как работать с длинными строками ?

Обсуждение программ nnCron и nnCron LITE

Как работать с длинными строками ?

Postby mihast » Thu, 06 Aug 2015, 18:25

Слова PLACE +PLACE работают со строками до 255 символов.

У меня строки AU длиннее. Какими словами их привязывать к буферу, созданному по USER-ALLOT или ALLOCATE ?
mihast
 
Posts: 51
Joined: Tue, 23 Aug 2005, 21:14

Re: Как работать с длинными строками ?

Postby VoidVolker » Thu, 06 Aug 2015, 20:30

Code: Select all
0 VALUE buf
10240 ALLOCATE THROW TO buf
S" long string less 10240 bytes"
DUP buf !    \ Сохраняем счетчик строки
buf CELL+   \ Пропускаем счетчик
SWAP CMOVE  \ Перемещаем строку
0 buf @ buf CELL+ + !   \ Записываем в конец строки ноль (опционально)

buf CELL+ buf @ \ a u


Code: Select all
: SPLACE   \ ( a u buf -- )
    >R
    DUP R@ !                \ Сохраняем счетчик строки
    R@ CELL+                \ Пропускаем счетчик
    SWAP CMOVE              \ Перемещаем строку
    0 R@ @ R> CELL+ + !     \ Записываем в конец строки ноль (опционально)
;

: SCOUNT   \ ( buf -- a u )
    DUP CELL+ SWAP @
;

: +SPLACE   \ ( a u buf -- )
    DUP >R      \ a u buf       R: buf
    SCOUNT +    \ a u bufEnd    R: buf
    OVER R@ +!  \ a u bufEnd
    SWAP CMOVE
    0 R> SCOUNT + !
;


Для работы с большими строками (сотни КБ и более) не следует использовать память, выделяемую через USER-ALLOT и ALLOT, т.к. данные блоки памяти распологаются в кодофайле, который ограничен размером в 1мб, при этом половина занята самим ннкроном.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Как работать с длинными строками ?

Postby mihast » Fri, 07 Aug 2015, 10:27

Спасибо ОГРОМНОЕ !

Замечательно работает !
mihast
 
Posts: 51
Joined: Tue, 23 Aug 2005, 21:14


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 2 guests

cron