Что нового

[Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением .cfg

Rocky Balboa

Новичок
Сообщения
11
Репутация
0
Версия AutoIt: 3.3.8.1

Описание: есть текстовой документ находящийся по пути www.site.ru/id.txt, в нем
есть 17 символов произвольных (ввида 12323-SDQAS-ASDAD), на хосте есть файл winroute.cfg
в нем есть строчка "<variable name="TrialId">12323-SDQAS-ASDAD</variable>"она постоянна третья
задача в том что нужно брать id с www.site.ru/id.txt (ввида 12323-SDQAS-ASDAD) и вставлять его в 3-ю строчку файла winroute.cfg между слова "<variable name="TrialId">СЮДА</variable>".....

Примечания: прошу сильно не нервничать.....по возможности прошу помощи.....спасибо
 

mef-t

Осваивающий
Сообщения
306
Репутация
30
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

Привет.
Пиши в личку.
Сделаем.
 
Автор
R

Rocky Balboa

Новичок
Сообщения
11
Репутация
0
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

не могу вам написать в ЛС выдаёт ошибку! как можно с вами связаться???
 

mef-t

Осваивающий
Сообщения
306
Репутация
30
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

icq: 248681994
почта: [email protected]

Лучше сразу на почту скинуть подробное описание с примером.
 
Автор
R

Rocky Balboa

Новичок
Сообщения
11
Репутация
0
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

up
 

mef-t

Осваивающий
Сообщения
306
Репутация
30
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

Зачем "Up"?
Вы же написали, что сами разобрались.
Ваши слова:
"Здравствуйте извините что крутил мозги но проблему решил сегодня утром спасибо еще раз"


Добавлено:
Сообщение автоматически объединено:

Если Вас не устроила цена, можно было об этом указать.
А так получается, что Вы до сих пор пытаетесь "крутить мозги".
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

mef-t
Цена? За что тут платить то?

Код:
#Include <FTPEx.au3>

Local $sID = InetRead ( "http://site.ru/id.txt", 2 )
If Not StringRegExp( $sID, "^[0-9]{5}-[A-Z]{5}-[A-Z]{5}$" ) Then _
	Exit MsgBox( 16, "Error", "ID not found!" )
; << Получаем ID с хоста

Local $FtpOpen, $FtpConnect, $sWinroute

$FtpOpen = _FTP_Open( "Total Commander (UTF-8)" )
$FtpConnect = _FTP_Connect( $FtpOpen, "host", "username", "password", 1 )

$sWinroute = @ScriptDir & "\winroute.cfg"
_FTP_FileGet( $FtpConnect, "/winroute.cfg", $sWinroute )
; << Подключаемся к FTP хоста и читаем файл

Local $sRead, $sWrite, $hFile

$sRead = FileRead( $sWinroute )
$sWrite = StringRegExpReplace( $sRead, '(<variable name="TrialId">)[^\<]*(</variable>)', "${1}" & $sID & "${2}", 1 )

$hFile = FileOpen( $sWinroute, 2 )
FileWrite( $sWrite )
FileClose( $hFile )
; << Обрабатываем файл

_FTP_FilePut( $FtpConnect, $sWinroute, "/winroute.cfg" )
_FTP_Close( $FtpOpen )
; << Загружаем файл обратно на фтп и закрываем соединение


Исходил из:
Хост с ID.txt даст скачать его без авторизации.
Содержимое ID.txt - сугубо наш ID без лишней информации.

Если же файлы лежат на одном хосте и хост требует авторизации для чтения, то:
1) Удали все что до ;<< Получаем ID с хоста
2) Добавь после
Код:
_FTP_FileGet( $FtpConnect, "/winroute.cfg", $sWinroute )

Следующее:
Код:
Local $sIdTxt = @ScriptDir & "\id.txt", $sID
	_FTP_FileGet( $FtpConnect, "/idx.txt", $sIdTxt )

$sID = FileRead( $sIdTxt )
If Not StringRegExp( $sID, "^[0-9]{5}-[A-Z]{5}-[A-Z]{5}$" ) Then _
	Exit MsgBox( 16, "Error", "ID not found!" )



Примерно год назад работал подобным образом с FTP Ucoz'а и Narod'а, думаю ничего не изменилось.
 

mef-t

Осваивающий
Сообщения
306
Репутация
30
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

Приношу извинения, перепутал раздел с покупкой.


Добавлено:
Сообщение автоматически объединено:

Код:
#region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Compile_Both=y
#AutoIt3Wrapper_Res_Fileversion=0.1
#AutoIt3Wrapper_Res_LegalCopyright=mef-t
#endregion ;**** Directives created by AutoIt3Wrapper_GUI ****

#include <Inet.au3>

;~ ----- Объявление хоткеев -----

HotKeySet('{ESC}', '_Exit') ; выход из скрипта по ES

;~ ----- Объявление переменных -----

Global $Program_Caption	= "id_copy"
Global $Program_Version	= "0.1"
Global $Program_Author	= "mef-t"
Global $sIni			= @ScriptDir & "\settings.ini" ;ini файл с полным путем

Global $site			= "http://site.ru/id.txt"
Global $file			= "C:/programs files/kerio/winroute firewall/winroute.cfg"

;~ ----- Запуск программы -----

If FileExists($sIni) = 0 Then
	write_ini()
Else
	read_ini()
EndIf

$Id			= _INetGetSource($site) ; поиск Нового ID
If $Id = "" Then
	MsgBox(4096, "Ошибка", "ID не найден")
    Exit
EndIf

$FileID		= FileOpen($file) ; открытие cfg для чтения

If $FileID = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
EndIf

$TextCfg	= FileRead ($FileID) ; чтение cfg
$TextCfg	= StringRegExpReplace($TextCfg, 'TrialId">.*<', 'TrialId">' & $Id & '<') ; замена ID в прочитанном тексте

FileClose($FileID) ; закрытие файла

$FileID = FileOpen($file, 2) ; открытие cfg для записи

If $FileID = -1 Then
    MsgBox(4096, "Ошибка", "Невозможно открыть файл.")
    Exit
EndIf

FileWrite($FileID, $TextCfg) ; запись с измененным ID

FileClose($FileID) ; закрытие файла

Func write_ini() ;функция создает ini-файл

	If FileExists($sIni) = 1 Then FileDelete($sIni)

	; Раздел Info
	$sData = 'Caption = ' & $Program_Caption & @LF & 'Аuthor = ' & $Program_Author & @LF & 'Version = ' & $Program_Version
	IniWriteSection($sIni, 'Info', $sData)
	FileWriteLine($sIni, "")

	; Раздел Settings

	$sData = 'site = ' & $site & @LF & 'file = ' & $file
	IniWriteSection($sIni, 'Settings', $sData)
	FileWriteLine($sIni, "")

EndFunc   ;==>write_ini

Func read_ini() ;функция чтения ini-файла

	If FileExists($sIni) = 0 Then
		write_ini()
	EndIf

	$site = IniRead($sIni, "Settings", "site", $site)
	$file = IniRead($sIni, "Settings", "file", $file)

EndFunc   ;==>read_ini

Func _Exit()
	Exit
EndFunc   ;==>_Exit
 
Автор
R

Rocky Balboa

Новичок
Сообщения
11
Репутация
0
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

mef-t
ни кого не хотел обидеть но
были бы деньги заплатил бы без разговоров, и здесь стол как я понял бесплатных заказов.....
я к вам претензий не имею, каждый зарабатывает как может....
firex
а вам Господин большое при большое спасибо, чтоб вам зар.плату подняли :smile:
вы наверно догадались для чего это все если хотите дайте почту или номер телефона объясню через whatsapp
еще раз спасибо буду пробовать
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

firex,
А Вы случайно не забыли после InetRead() использовать BinaryToString()?
И options в InetRead() я бы поменял на 1 или 17.
 
Автор
R

Rocky Balboa

Новичок
Сообщения
11
Репутация
0
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

firex
рано радовался....(сразу предупрежу я чайник :smile:)у меня чуть другая ситуация....id файлик лежит в корне сайт,сам скомпилированный скрипт лежит на системном диске в корне программы kerio control(c:/program files/kerio/winroute firewall/)
в этой части кода помоему ошибка
Код:
If Not StringRegExp( $sID, "^[0-9]{5}-[A-Z]{5}-[A-Z]{5}$" ) Then

3 столбца по пять знаков, "-"остается всегда стоит после 5-ого знака,но первый столбец как и второй и третий ряд знаков может иметь и цифры и буквы(всегда заглавные, и оказывается я сам не правильно объяснил в своем первом посте)от сюда у меня постоянно "id not found"...и после того как мы получаем id его нада сунут в конфиг kerio(winroute.cfg), 3-ю строчку "<variable name="TrialId">СЮДА</variable>"
еще раз спасибо всем за внимание....
заранее благодарен!!!


Добавлено:
Сообщение автоматически объединено:

mef-t
блин извините не заметил кнопочку подробнее.....пускай вам тоже зар.плату поднимут
спасибо
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

Rocky Balboa
Ну так и написали бы, у вас в условии файл winroute.cfg лежит на хосте.

madmasles
Да, вы правы.

Код:
Local $sID = BinaryToString( InetRead ( "http://site.ru/id.txt", 17 ) ), $sWrite, $hFile, $sWinroute
If Not StringRegExp( $sID, "^[\dA-Z]{5}-[\dA-Z]{5}-[\dA-Z]{5}$" ) Then _
    Exit MsgBox( 16, "Error", "ID not found!" )
; << Получаем ID с хоста

$sWinroute = @ScriptDir & "\winroute.cfg"
$sWrite = StringRegExpReplace( FileRead( $sWinroute ), '(<variable name="TrialId">)[^\<]*(</variable>)', "${1}" & $sID & "${2}", 1 )
$hFile = FileOpen( $sWinroute, 2 )
FileWrite( $sWrite )
FileClose( $hFile )
; << Обрабатываем файл
 
Автор
R

Rocky Balboa

Новичок
Сообщения
11
Репутация
0
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

firex
здравствуйте
еще раз спасибо...
но возникла такая вот ошибка

и конфиг с расширением .cfg затирается полностью
спасибо
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

Rocky Balboa [?]
но возникла такая вот ошибка
Поменяйте
Код:
FileWrite( $sWrite )
на
Код:
FileWrite($hFile, $sWrite)

firex,
Внимательнее пишите код.
 
Автор
R

Rocky Balboa

Новичок
Сообщения
11
Репутация
0
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

спасибо
 
Автор
R

Rocky Balboa

Новичок
Сообщения
11
Репутация
0
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

Здравствуйте....можно как нить сделать так чтобы при сохранении конфига ему задавалась кодировка UTF-8 а то после применения скрипта кодировка меняется ANSI, соответственно конфиг начинает работать не правильно....
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

Можно.
Код:
BinaryToString("Your data", 4)
 
Автор
R

Rocky Balboa

Новичок
Сообщения
11
Репутация
0
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

не понял как правильно его вставить....вот сам скрипт
Код:
Local $sID = BinaryToString( InetRead ( "http://site.ru/id.txt", 17 ) ), $sWrite, $hFile, $sWinroute
If Not StringRegExp( $sID, "^[\dA-Z]{5}-[\dA-Z]{5}-[\dA-Z]{5}$" ) Then _
    Exit MsgBox( 16, "Error", "ID not found!" )
; << Получаем ID с хоста

$sWinroute = @ScriptDir & "\winroute.cfg"
$sWrite = StringRegExpReplace( FileRead( $sWinroute ), '(<variable name="TrialId">)[^\<]*(</variable>)', "${1}" & $sID & "${2}", 1 )
$hFile = FileOpen( $sWinroute, 2 )
FileWrite($hFile, $sWrite)
FileClose( $hFile )
; << Обрабатываем файл
 

alex33

Скриптер
Сообщения
1,457
Репутация
186
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

Rocky Balboa
не понял как правильно его вставить.
Ну просто же...
Код:
Local $sID = BinaryToString( InetRead ( "http://site.ru/id.txt", 17 ), 4 ), $sWrite, $hFile, $sWinroute
 
Автор
R

Rocky Balboa

Новичок
Сообщения
11
Репутация
0
Re: [Сеть, интернет] [Автоматизация] Взятие 17 символов с сайта и вставка их в файл с расширением

нет все равно сохраняется в кодировке ansi....
 
Верх