![]() |
скрипт для создания системы взаимопомощи на дороге
Уважаемые гуру BAT-файлов
прошу помочь в написании скрипта для создания системы взаимопомощи на дороге для одного из автоклубов при поступлении смс скрипт определяет номер отправителя и если этот номер есть в базе, он формирует смс сообщения для остальных участников суть: имеем 3 текстовых файла: 1. in_file.txt - содержит смс принятые gprs-модемом 2. out_file.txt - содержит смс, которые модем должен отправить 3. base.txt - содержит номера телефонов куда отправлять для взаимодействия с модемом используется отдельная программа при получении смс, в определенной папке на диске она создает текстовый файл, в который пишет данные вот в таком виде: ![]() на пк постоянно крутиться скрипт на BAT/CMD файле, который: 1. раз в минуту проверяет пришло ли новое сообщение (появилась ли новая строка в файле, либо изменилось ли время изм файла) 2. считывает номер отправителя и текст сообщения в буфер 3. проверяет, есть ли такой отправитель в базе (защита от спама) 4. если отправитель есть - скрипт формирует файл для отправки смс следующего вида: ![]() каждая строка - это отдельное смс для каждого телефона из базы 5. помещает его в папку отправки после чего программа работы с модемом отправляет все смс и удаляет файл сам я давным давно уже ничего подобного не писал, потому обращаюсь за помощью заранее спасибо |
Цитата:
Зачем это «либо»: Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
формируется вот такой файл: ![]() в каждой строке будет одно и тоже сообщение (то которое пришло) а номера разные (из базы) ну т.е. один из тех кто есть в базе (участник системы) отправляет на сервисный номер смс с текстом: я такой-то, стою там-то, проблема такая-то это смс потом отправляется все остальным участникам программа приема и отправки есть, надо написать скрипт который будет считывать пришедшее смс из текстового файла, а затем формировать текстовый файл для отправки сообщений |
Ага. Теперь примерно понятно, что требуется.
Выложите образцы (а не скриншоты) реальных файлов «sms1.txt» и «primer1.txt». |
Вложений: 3
файл in_file.txt (входящие смс, на скриншоте он называется sms1.txt):
Формат файла входящих смс: дата-время_отправки_смс;номер_отправителя;текст_сообщения файл out_file.txt (исходящие смс, на скриншоте он называется primer1): Формат файла исходящих смс: номер_отправителя;M;R;текст_сообщения файл base.txt (база данных номеров): Формат файла: каждая строчка - номер телефона в формате 7хххххххххх |
Весь день изучал форум... голова кругом
в итоге набросал вот такой код (некоторые места не понял как сделать, потому написал просто что нужно) прошу поправить/подсказать/посоветовать как лучше это реализовать Код:
@echo off |
VAFER, в качестве варианта — скрипт WSH на vbscript:
Вместо «E:\Песочница\0199» укажите Ваш путь к папке с файлами. В той же папке создайте файл «Schema.ini» со следующим содержимым: Ограничения: 1. В текстах сообщений нельзя использовать символ «;». В принципе, это ограничение лечится использованием кавычек для ограничения текстовых строк в файлах «base.txt», «in_file.txt», «out_file.txt»: Код:
04:18:26;"79831501993";"Стою на ленина. Прошу помощи. Макар." 2. Файл «out_file.txt» может очищаться, но не должен удаляться. В принципе, можно сделать и обходной путь, ежели никак иначе нельзя. 3. Что такое «M» и «R» в «out_file.txt»? |
Iska, спасибо за предложение, но мне все же хотелось реализовать данный алгоритм на BAT/CMD.
Я не представляю, что мне делать с WSH на vbscript, куда его пихать, как запускать ?! Да и опять надо по новой изучать язык. Кавычки " увы применить нельзя. Программа работы с модемом не поймет. M и R - это формат отправки сообщения М - означает международный формат телефонного номера R - текст на русском языке |
я создал файлы "prog.vbs" и "Schema.ini"
прописал путь к файлам но как это запустить ??? при простом двойном клике ничего не происходит при запуске в командной строке висит окно: Сервер сценариев Windows (Microsoft R) версия 5.8 c Корпорация Майкрософт (Microsoft Corp.), 1996-2001. Все права защищены. и ничего не происходит я никогда раньше с WSH на vbscript не работал... |
Добил всё таки вариант с BAT/CMD :)
Код:
@echo off т.к. в этом виде она просто берет последнее сообщение из всех и формирует рассылку и так каждые 60 сек :) думал сделать внешний файл "count.txt" в котором хранить текущее количество входящих сообщений и чтобы программа сравнивала число из файла с числом реальных сообщений в файле мб есть более элегантные способы ? :) |
в итоге получилось вот так:
Код:
@echo off |
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
|
Iska, большое спасибо за участие, но я уже сделал то что мне было нужно на BAT/CMD :)
|
VAFER, ну, что ж тут поделаешь ;).
|
Время: 19:16. |
Время: 19:16.
© OSzone.net 2001-