Строки из текстового файла в переменные

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

Re: Строки из текстового файла в переменные

Postby VoidVolker » Thu, 16 Aug 2012, 12:16

Code: Select all
#( test_read_n_string
NoActive
VARIABLE my_va
Action:
S" C:\flag_1.txt" FILE S>NUM my_va ! \ Преобразуем в строку первое число в файле, если оно там есть, иначе — 0.
MSG: "%my_va @%"
)#
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Строки из текстового файла в переменные

Postby ascerdfg1 » Thu, 16 Aug 2012, 15:54

nncron.exe v 1.93b10 Build 1141
tm.exe v 1.93b10 Build 569
Windows XP (5.1.2600) SP3
Комп без nnCron - груда металла!
User avatar
ascerdfg1
 
Posts: 541
Joined: Thu, 29 Nov 2007, 02:45
Location: г. Алексин

Re: Строки из текстового файла в переменные

Postby ascerdfg1 » Thu, 16 Aug 2012, 16:47

Вот как заработало:
Code: Select all
    #( test_read_n_
    NoActive
    VARIABLE my_va1
    VARIABLE my_va2
    Action:
    S" C:\flag_1.txt" FILE S" /.*\s(\d+)\s(\d+)\s/" RE-MATCH
    IF
        $1 S>NUM my_va1 !
        $2 S>NUM my_va2 !
        MSG: "%my_va1 @% and %my_va2 @%"
    THEN
    )#
nncron.exe v 1.93b10 Build 1141
tm.exe v 1.93b10 Build 569
Windows XP (5.1.2600) SP3
Комп без nnCron - груда металла!
User avatar
ascerdfg1
 
Posts: 541
Joined: Thu, 29 Nov 2007, 02:45
Location: г. Алексин

Re: Строки из текстового файла в переменные

Postby ascerdfg1 » Thu, 16 Aug 2012, 17:05

ascerdfg1 wrote:http://www.nncron.ru/forums/viewtopic.php?f=5&t=10545&start=30#p30609

вопрос остаётся открытым
nncron.exe v 1.93b10 Build 1141
tm.exe v 1.93b10 Build 569
Windows XP (5.1.2600) SP3
Комп без nnCron - груда металла!
User avatar
ascerdfg1
 
Posts: 541
Joined: Thu, 29 Nov 2007, 02:45
Location: г. Алексин

Re: Строки из текстового файла в переменные

Postby ascerdfg1 » Thu, 16 Aug 2012, 17:17

ascerdfg1 wrote:Вот как заработало:
Code: Select all
    #( test_read_n_
    NoActive
    VARIABLE my_va1
    VARIABLE my_va2
    Action:
    S" C:\flag_1.txt" FILE S" /.*\s(\d+)\s(\d+)\s/" RE-MATCH
    IF
        $1 S>NUM my_va1 !
        $2 S>NUM my_va2 !
        MSG: "%my_va1 @% and %my_va2 @%"
    THEN
    )#

Но если в файле только два числа: "123 45 " то не ловит. Подскажите плиз, как использовать регексповский оператор "или" - "|" . Так: "/.*\s|пусто(\d+)\s(\d+)\s/" ?
nncron.exe v 1.93b10 Build 1141
tm.exe v 1.93b10 Build 569
Windows XP (5.1.2600) SP3
Комп без nnCron - груда металла!
User avatar
ascerdfg1
 
Posts: 541
Joined: Thu, 29 Nov 2007, 02:45
Location: г. Алексин

Re: Строки из текстового файла в переменные

Postby SeMa » Thu, 16 Aug 2012, 17:42

ascerdfg1 wrote:
ascerdfg1 wrote:http://www.nncron.ru/forums/viewtopic.php?f=5&t=10545&start=30#p30609

вопрос остаётся открытым

Ничего не менял - работает.
Файл содержит "100 10" и всё.
Если перед "100" есть ещё что-то - получим 0.
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

Re: Строки из текстового файла в переменные

Postby SeMa » Thu, 16 Aug 2012, 17:46

ascerdfg1 wrote:Подскажите плиз, как использовать регексповский оператор "или" - "|" . Так: "/.*\s|пусто(\d+)\s(\d+)\s/" ?

Когда-то сталкивался.
/(образец1)|(образец2)/
Компьютер ─ устройство, разработанное для ускорения и автоматизации человеческих ошибок
User avatar
SeMa
 
Posts: 637
Joined: Fri, 15 Apr 2005, 12:49
Location: Украина

Re: Строки из текстового файла в переменные

Postby VoidVolker » Thu, 16 Aug 2012, 18:42

Code: Select all
S" C:\flag_1.txt" FILE S" /\D*(\d+)\D*/" RE-ALL
  $1 MsgBox
;RE-ALL


Code: Select all
S" C:\flag_1.txt" FILE S" /\D*(\d+)\D+(\d+)\D*/" RE-MATCH
$1 MsgBox $2 MsgBox
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

Re: Строки из текстового файла в переменные

Postby AlikasS » Fri, 17 Aug 2012, 01:34

из файла еще можно читать числа так

Code: Select all
#( test_read_n_
    NoActive
    VARIABLE my_va1
    VARIABLE my_va2
    Action:
    S" C:\flag_1.txt" FILE
<TIB get-number my_va1 ! get-number my_va2 ! TIB>

        MSG: "%my_va1 @% and %my_va2 @%"
)#

соответственно для чтения строк можно использовать get-string
добавлено:
здесь строка имеется ввиду получить текст от пробела до пробела, а не построчное чтение файла
Last edited by AlikasS on Fri, 17 Aug 2012, 09:48, edited 1 time in total.
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Строки из текстового файла в переменные

Postby ascerdfg1 » Fri, 17 Aug 2012, 08:06

Это плагин надо подключать?
nncron.exe v 1.93b10 Build 1141
tm.exe v 1.93b10 Build 569
Windows XP (5.1.2600) SP3
Комп без nnCron - груда металла!
User avatar
ascerdfg1
 
Posts: 541
Joined: Thu, 29 Nov 2007, 02:45
Location: г. Алексин

Re: Строки из текстового файла в переменные

Postby AlikasS » Fri, 17 Aug 2012, 09:47

ascerdfg1 wrote:Это плагин надо подключать?

не надо :)
User avatar
AlikasS
 
Posts: 1434
Joined: Wed, 28 Jun 2006, 05:39
Location: Khabarovsk

Re: Строки из текстового файла в переменные

Postby Morituruz » Fri, 17 Aug 2012, 10:29

AlikasS wrote:
Code: Select all
...
<TIB ... TIB>
...


Можно небольшое пояснение по этой штуке? Что она умеет делать в принципе?
User avatar
Morituruz
 
Posts: 725
Joined: Sun, 14 Oct 2007, 01:51

Re: Строки из текстового файла в переменные

Postby VoidVolker » Fri, 17 Aug 2012, 13:25

А вот так я бы не стал делать. Ибо TIB - буфер для входного потока и является частью интерпретатора форта. Соответственно использовать его для задач, не предназначенных для него не следует. Если в файле гарантировано лежат несколько чисел, то прое всего будет сделать так:
Code: Select all
S" C:\flag_1.txt" INCLUDED

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

Re: Строки из текстового файла в переменные

Postby ascerdfg1 » Fri, 17 Aug 2012, 14:28

Окажутся уже в цифровом виде? А пробелы в файле переварятся?
nncron.exe v 1.93b10 Build 1141
tm.exe v 1.93b10 Build 569
Windows XP (5.1.2600) SP3
Комп без nnCron - груда металла!
User avatar
ascerdfg1
 
Posts: 541
Joined: Thu, 29 Nov 2007, 02:45
Location: г. Алексин

Re: Строки из текстового файла в переменные

Postby VoidVolker » Fri, 17 Aug 2012, 17:43

Да, на стеке окажутся именно числа, как если бы их просто напечатали в консоли или в кронтабе. А пробелы — разделители.
INCLUDED можно определить так:
Code: Select all
: INCLUDED   FILE EVALUATE ;
95% вопросов уже обсуждались на форуме или ответы на них есть в мануале.        nnCron 1.93 b15.exe
Как правильно задавать вопросы.
User avatar
VoidVolker
Site Admin
 
Posts: 2898
Joined: Tue, 25 Apr 2006, 17:56

PreviousNext

Return to nnCron forum (Russian)

Who is online

Users browsing this forum: Google [Bot] and 1 guest

cron