Новые слова

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

Новые слова

Postby ask » Sat, 20 Jul 2013, 13:10

Добрый день. Помогите, пожалуйста, составить два новых слова:

FILE-COPY-DIRECT (копирование файла, даже если в целевой папке уже есть файл с таким именем)
FILE-COPY-IFNOT (копирование файла, только если в целевой папке нет файла с таким именем)
ask
 
Posts: 56
Joined: Sun, 11 Dec 2011, 09:38

Re: Новые слова

Postby VoidVolker » Sat, 20 Jul 2013, 14:22

Code: Select all
: FCOPY-HARD   \ ( a1 u1 a2 u2 -- ) Копирование файла с перезаписью
  2DUP + 1- C@
  [CHAR] \ OVER =
  SWAP [CHAR] / = OR IF
    2OVER ONLYNAME S+
  THEN
  2DUP EXIST? IF
    2DUP FDELETE
  THEN
  FCOPY
;

: FCOPY-SOFT   \ ( a1 u1 a2 u2 -- ) Копирование файла без перезаписи
  2DUP + 1- C@
  [CHAR] \ OVER =
  SWAP [CHAR] / = OR IF
    2OVER ONLYNAME S+
  THEN
  2DUP EXIST? IF
    2DROP 2DROP
  ELSE
    FCOPY
  THEN
;

: FCOPY-HARD:
  eval-string, eval-string,
  POSTPONE FCOPY-HARD
; IMMEDIATE

: FCOPY-SOFT:
  eval-string, eval-string,
  POSTPONE FCOPY-SOFT
; IMMEDIATE
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Новые слова

Postby ask » Sat, 20 Jul 2013, 15:19

Спасибо!

Я этот текст вынес в отдельный spf-файл и подключил его в nncron.ini
Но при попытке использовать слово:
Code: Select all
FCOPY-HARD: "%fb_reg_val1 ASCIIZ>%aliases.conf"  "%LetterRAMDrive COUNT%:\Firebird"


получаю ошибку:
Code: Select all
nnCron. v 1.93b13 Build 1172 18.03.2013
Copyright (C) 2000-2013 nnSoft. email:nemtsev@nncron.ru
Зарегистрирован только для некоммерческого использования
Registered for non-commercial use only
EXCEPTION!  CODE:C0000005  ADDRESS:4B2298  WORD:@  REGISTERS:
527ED7C   4C 00 8A 05  64 A4 8A 05  14 00 00 00  14 E5 90 7C L._.d¤_......е_|
527ED8C   3C EF 27 05  14 00 00 00  24 FE 27 05  98 22 4B 00 <п'.....$ю'._"K.
527ED9C   1B 00 00 00  06 02 01 00  AC EF 27 05  23 00 00 00 ........┐п'.#...
ask
 
Posts: 56
Joined: Sun, 11 Dec 2011, 09:38

Re: Новые слова

Postby VoidVolker » Sat, 20 Jul 2013, 18:52

Это как бы постфиксные слова. Добавил еще FCOPY-HARD: и FCOPY-SOFT:.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Новые слова

Postby ask » Sat, 20 Jul 2013, 19:27

Прошу прощения, не сообразил.
Но и после исправления - всё равно:

в nncron.out:
Code: Select all
nnCron. v 1.93b13 Build 1172 18.03.2013
Copyright (C) 2000-2013 nnSoft. email:nemtsev@nncron.ru
Зарегистрирован только для некоммерческого использования
Registered for non-commercial use only
EXCEPTION!  CODE:C0000005  ADDRESS:4B2298  WORD:@  REGISTERS:
536ED7C   4C 00 89 05  64 A4 89 05  14 00 00 00  14 E5 90 7C L.%.d¤%......е_|
536ED8C   3C EF 36 05  14 00 00 00  24 FE 36 05  98 22 4B 00 <п6.....$ю6._"K.
536ED9C   1B 00 00 00  06 02 01 00  AC EF 36 05  23 00 00 00 ........┐п6.#...
USER DATA: 589004C HANDLER: 536EFC0 RETURN STACK:
536EFAC :  4EE228 LAUNCH
536EFB0 :  53C092 RAMDrive_init
536EFB4 :  4EE1FF RUN
536EFB8 :  545ADD CLEAR_DISK_ON_STARTUP
536EFBC :  4B4E78 CATCH
536EFC0 :  0 <not found>


в nncron.log:
Code: Select all
20:22:31 3632 FirebirdToRamdrive: Синтаксическая ошибка в кронтабе!!!. Кронтаб: C:\Program Files\nnCron\nnRAMDrive.tab. Line: 131


Полный текст задания, в котором выполняется вызов FCOPY-HARD:
Code: Select all
#( FirebirdToRamdrive
AsLoggedUser
LoadProfile
NoLog
NoDel
RunOnce
Time: 32 11 2 6 * 2008
Action:
SWHide   NormalPriority

  bFirebirdToRAMDrive COUNT S" Yes" COMPARE 0=
  IF
    \ Узнать папку установки Firebird
    S" HKEY_LOCAL_MACHINE\SOFTWARE\Firebird Project\Firebird Server\Instances" REG-KEY-EXIST?
    IF
      fb_reg_val1 GET-REG: "HKEY_LOCAL_MACHINE\SOFTWARE\Firebird Project\Firebird Server\Instances\DefaultInstance"
    THEN
     
     
    FILE-EXIST: "%LetterRAMDrive COUNT%:\Firebird\" NOT
    IF
      DIR-CREATE: "%LetterRAMDrive COUNT%:\Firebird"
      DIR-CREATE: "%LetterRAMDrive COUNT%:\Firebird\udf"
     
\     FILE-COPY:  "%fb_reg_val1 ASCIIZ>%aliases.conf"  "%LetterRAMDrive COUNT%:\Firebird"
      FCOPY-HARD: "%fb_reg_val1 ASCIIZ>%aliases.conf"  "%LetterRAMDrive COUNT%:\Firebird"

      FILE-COPY: "%fb_reg_val1 ASCIIZ>%firebird.conf" "%LetterRAMDrive COUNT%:\Firebird"
     
     
      FILE-EXIST: "%LetterRAMDrive COUNT%:\Firebird\firebird.msg" NOT
      IF
        FILE-COPY: "%fb_reg_val1 ASCIIZ>%firebird.msg"        "%LetterRAMDrive COUNT%:\Firebird"
      THEN
     
      FILE-EXIST: "%LetterRAMDrive COUNT%:\Firebird\security2.fdb" NOT
      IF
        FILE-COPY: "%fb_reg_val1 ASCIIZ>%security2.fdb"       "%LetterRAMDrive COUNT%:\Firebird"
      THEN
    ELSE
      START-APP: copy /Y "%fb_reg_val1 ASCIIZ>%aliases.conf"  "%LetterRAMDrive COUNT%:\Firebird"
      START-APP: copy /Y "%fb_reg_val1 ASCIIZ>%firebird.conf" "%LetterRAMDrive COUNT%:\Firebird"
    THEN

    PROC-EXIST: "fbserver.exe" NOT PROC-EXIST: "fb_inet_server.exe" NOT AND
    IF
      START-APP: net start "Firebird Server - DefaultInstance"
    THEN

    FILE-EXIST: "%LetterRAMDrive COUNT%:\Firebird\udf\fbudf.dll" NOT
    IF
      DIR-CREATE: "%LetterRAMDrive COUNT%:\Firebird\udf"
      START-APP: copy "%fb_reg_val1 ASCIIZ>%udf\*.dll" "%LetterRAMDrive COUNT%:\Firebird\udf"
    THEN
  THEN
)#
ask
 
Posts: 56
Joined: Sun, 11 Dec 2011, 09:38

Re: Новые слова

Postby VoidVolker » Sat, 20 Jul 2013, 20:34

Именно при попытке? Или при компиляции? У меня все работает.
Это ошибка доступа оп адресу словом @ - т.е. где-то что-то получает вместо адреса просто какое-то число.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Новые слова

Postby ask » Sat, 20 Jul 2013, 21:30

Ошибка - во время компиляции...
ask
 
Posts: 56
Joined: Sun, 11 Dec 2011, 09:38

Re: Новые слова

Postby VoidVolker » Sat, 20 Jul 2013, 22:14

Значит что-то сделано неправильно. Надо проверить весь код в кронтабе сначала.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Новые слова

Postby ask » Sun, 21 Jul 2013, 07:37

Вначале весь Ваш текст я вынес в плагин "VolidVolker.spf" и подключил его в nncron.ini.
nnCron почему-то не "подхватывал" его.

Как только я перенёс текст в один из существующих плагинов, всё сразу заработало.
Огромное спасибо!
ask
 
Posts: 56
Joined: Sun, 11 Dec 2011, 09:38

Re: Новые слова

Postby VoidVolker » Sun, 21 Jul 2013, 07:53

Обратный поиск есть в extwords.spf, если что.
ask wrote:nnCron почему-то не "подхватывал" его.

А ннкрон был перезапущен? При подключения плагинов ннкрон надо перезагружать. Или где-то что-то было неправильно сделано.
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Новые слова

Postby ask » Sun, 21 Jul 2013, 08:54

Да был, конечно...
Повожусь, попробую понять, в чём было дело. Если получится, - отпишусь.
ask
 
Posts: 56
Joined: Sun, 11 Dec 2011, 09:38

Re: Новые слова

Postby Morituruz » Sun, 21 Jul 2013, 14:42

VoidVolker wrote:BACK-SEARCH

Есть же ONLYNAME
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51

Re: Новые слова

Postby VoidVolker » Sun, 21 Jul 2013, 16:10

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


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 1 guest