Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Скрипт обработки содержания *.txt файла

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Скрипт обработки содержания *.txt файла
Имя
Сообщение << Старые топики   Новые топики >>
Скрипт обработки содержания *.txt файла - 2007-12-14 00:34:24.763333   
vohakot

Сообщений: 4
Оценки: 0
Присоединился: 2007-12-14 00:19:08.880000
Помогите пожалуйста новичку, который в скриптах мало что понимает.
Вот такая задача:
!. Имеется файл SMSREADL.TXT (прилагается) в который записывается каждое новое СМС сообщение пришедшее на мобильный телефон новой строкой.
2. Необходим скрипт, который анализировал этот текстовый файл и при совпадении 2 условий (номера с которого отправлено СМС и содержание текста СМС) запускал тот или иной (*.bat) файл на исполнение в зависимости от второго условия (содержание текста СМС). Т.е. на номер, с которого отправлено СМС, должен стоять фильтр (от нежелательных гостей), а на текст СМС запуск разных программ и *.bat файлов на исполнение.
Заранее, огромное спасибо всем, кто не останется равнодушным к этому посту.
Post #: 1
RE: Скрипт обработки содержания *.txt файла - 2007-12-15 15:59:16.760000   
Alaget

Сообщений: 330
Оценки: 0
Присоединился: 2007-11-08 15:57:53.170000
Сформулируй условия.
Написать это лекго и я напишу если ты просто объяснишь что надо конкретно.


Post #: 2
RE: Скрипт обработки содержания *.txt файла - 2007-12-15 17:02:10.973333   
vohakot

Сообщений: 4
Оценки: 0
Присоединился: 2007-12-14 00:19:08.880000

quote:

ORIGINAL: Alaget

Сформулируй условия.
Написать это лекго и я напишу если ты просто объяснишь что надо конкретно.


Попробую объяснить более конкретно.
Есть мобильный телефон подключенный к компу и программа (smsread) которая считывает каждое новое СМС сообщение и вписывает его новой строкой в файл SMSREADL.TXT (лежит в каталоге F:\SMS_log\)

14.12.2007 0:07:59 #From=7911ххххххх #Time=07-12-14 00:07:39 [+3] Текст сообщения № 1
14.12.2007 0:09:39 #From=7921ххххххх #Time=07-12-14 00:09:22 [+3] Текст сообщения № 2
14.12.2007 0:12:29 #From=7905ххххххх #Time=07-12-14 00:12:17 [+3] Текст сообщения № 3

Нужно, чтобы сообщения обрабатывались принятые только с заданного одного или максимум трех номеров (допустим, для примера с этого 79602214545) и в зависимости от содержания СМС запускали файлы 01.bat-10.bat (с каталога С:\RUN\).

Например. Пришло СМС с номера 79602214545 и содержит команду "!run 01" на компе происходит запуск файла 01.bat и так далее до 10.
Ну а если номер не совпадает с тем списком, что заранее записан или СМС не содержит команды, то соответственно ничего не происходит.
Post #: 3
RE: Скрипт обработки содержания *.txt файла - 2007-12-15 17:06:45.583333   
Alaget

Сообщений: 330
Оценки: 0
Присоединился: 2007-11-08 15:57:53.170000
К понедельнику будет.
Post #: 4
RE: Скрипт обработки содержания *.txt файла - 2007-12-15 17:09:27.506666   
vohakot

Сообщений: 4
Оценки: 0
Присоединился: 2007-12-14 00:19:08.880000

quote:

ORIGINAL: Alaget

К понедельнику будет.


Спасибо огромное! С меня причетается. :)
Post #: 5
RE: Скрипт обработки содержания *.txt файла - 2007-12-15 18:54:49.470000   
rgo

Сообщений: 7170
Оценки: 281
Присоединился: 2004-09-25 05:14:25
quote:

ORIGINAL: vohakot
Есть мобильный телефон подключенный к компу и программа (smsread) которая считывает каждое новое СМС сообщение и вписывает его новой строкой в файл SMSREADL.TXT (лежит в каталоге F:\SMS_log\)

14.12.2007 0:07:59 #From=7911ххххххх #Time=07-12-14 00:07:39 [+3] Текст сообщения № 1
14.12.2007 0:09:39 #From=7921ххххххх #Time=07-12-14 00:09:22 [+3] Текст сообщения № 2
14.12.2007 0:12:29 #From=7905ххххххх #Time=07-12-14 00:12:17 [+3] Текст сообщения № 3

Нужно, чтобы сообщения обрабатывались принятые только с заданного одного или максимум трех номеров (допустим, для примера с этого 79602214545) и в зависимости от содержания СМС запускали файлы 01.bat-10.bat (с каталога С:\RUN\).

Например. Пришло СМС с номера 79602214545 и содержит команду "!run 01" на компе происходит запуск файла 01.bat и так далее до 10.
Ну а если номер не совпадает с тем списком, что заранее записан или СМС не содержит команды, то соответственно ничего не происходит.


tail -f SMSREADL.TXT | grep '#From=79602214545' | awk '$7 == "!run" {system ("$8.bat");}' я может где-то в awk поднаврал – редко его пользую, а с мануалом сверяться влом.
Post #: 6
RE: Скрипт обработки содержания *.txt файла - 2007-12-16 10:45:57.376666   
Alaget

Сообщений: 330
Оценки: 0
Присоединился: 2007-11-08 15:57:53.170000
Извини меня пожайлуста много дел появилось. Код надо немного подправить, и доделать попроси кого нибудь, создай тему в компилируемые языки.
unit Unit1; interface uses &nbsp; Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, &nbsp; Dialogs, StdCtrls, ExtCtrls, ShellAPI; type &nbsp; TForm1 = class(TForm) &nbsp;&nbsp;&nbsp; Timer1: TTimer; &nbsp;&nbsp;&nbsp; Button1: TButton; &nbsp;&nbsp;&nbsp; Button2: TButton; &nbsp;&nbsp;&nbsp; procedure Button1Click(Sender: TObject); &nbsp;&nbsp;&nbsp; procedure Timer1Timer(Sender: TObject); &nbsp; private &nbsp;&nbsp;&nbsp; { Private declarations } &nbsp; public &nbsp;&nbsp;&nbsp; { Public declarations } &nbsp; end; var &nbsp; Form1: TForm1; &nbsp; List: TStringList; &nbsp; F: TextFile; &nbsp; s, nomer: string; &nbsp; i: integer; &nbsp; l: boolean; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin &nbsp; List := TStringList.Create; &nbsp; List.LoadFromFile('C:\RUN\nomera.txt'); &nbsp; Timer1.Enabled := True; &nbsp; Button1.Enabled := False; &nbsp; AssignFile(F, 'F:\SMS_log\SMSREADL.TXT'); &nbsp; ReWrite(F); &nbsp; CloseFile(F); end; procedure TForm1.Timer1Timer(Sender: TObject); begin &nbsp; AssignFile(F, 'F:\SMS_log\SMSREADL.TXT'); &nbsp; Reset(F); &nbsp; while not Eof(F) do &nbsp;&nbsp;&nbsp; begin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Readln(F, s); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if Copy(s, 25, 1) = '=' then &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nomer := Copy(s, 26, 11); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; l := True; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; else &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nomer := Copy(s, 26, 11); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; l := False; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for i:=0 to List.Count-1 do &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if List[i] = nomer then &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if l = True then &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if l = False then &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; begin &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if Copy(s, 67, Length(s)) = '!run 01' then ShellExecute(Handle, nil, 'C:\RUN\01.bat', nil, nil, SW_SHOW); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if Copy(s, 67, Length(s)) = '!run 01' then ShellExecute(Handle, nil, 'C:\RUN\02.bat', nil, nil, SW_SHOW); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; end; //14.12.2007 0:07:59 #From=7911ххххххх #Time=07-12-14 00:07:39 [+3] Текст сообщения № 1 &nbsp;&nbsp;&nbsp; end; &nbsp;&nbsp;&nbsp; CloseFile(F); end; end.
Post #: 7
RE: Скрипт обработки содержания *.txt файла - 2007-12-16 18:39:30.743333   
vohakot

Сообщений: 4
Оценки: 0
Присоединился: 2007-12-14 00:19:08.880000

quote:

ORIGINAL: Alaget

Извини меня пожайлуста много дел появилось. Код надо немного подправить, и доделать попроси кого нибудь, создай тему в компилируемые языки.
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, ShellAPI; type TForm1 = class(TForm)    Timer1: TTimer;    Button1: TButton;    Button2: TButton;    procedure Button1Click(Sender: TObject);    procedure Timer1Timer(Sender: TObject); private    { Private declarations } public    { Public declarations } end; var Form1: TForm1; List: TStringList; F: TextFile; s, nomer: string; i: integer; l: boolean; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin List := TStringList.Create; List.LoadFromFile('C:\RUN\nomera.txt'); Timer1.Enabled := True; Button1.Enabled := False; AssignFile(F, 'F:\SMS_log\SMSREADL.TXT'); ReWrite(F); CloseFile(F); end; procedure TForm1.Timer1Timer(Sender: TObject); begin AssignFile(F, 'F:\SMS_log\SMSREADL.TXT'); Reset(F); while not Eof(F) do    begin      Readln(F, s);      if Copy(s, 25, 1) = '=' then        begin           nomer := Copy(s, 26, 11);           l := True;        end      else        begin          nomer := Copy(s, 26, 11);          l := False;        end;      for i:=0 to List.Count-1 do        begin          if List[i] = nomer then            begin              if l = True then                begin                end;              if l = False then                begin                  if Copy(s, 67, Length(s)) = '!run 01' then ShellExecute(Handle, nil, 'C:\RUN\01.bat', nil, nil, SW_SHOW);                  if Copy(s, 67, Length(s)) = '!run 01' then ShellExecute(Handle, nil, 'C:\RUN\02.bat', nil, nil, SW_SHOW);                end;            end;        end; //14.12.2007 0:07:59 #From=7911ххххххх #Time=07-12-14 00:07:39 [+3] Текст сообщения № 1    end;    CloseFile(F); end; end.



ОК. Спасибо еще раз. Теперь думаю будет намного легче все это осуществить.
Post #: 8
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Скрипт обработки содержания *.txt файла







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.