Что нового

[Окна, Диалоги] Работа с ini файлом и бесконечным циклом

Roman89

Новичок
Сообщения
107
Репутация
3
Всем доброго времени суток дорогие форумчани!)
Я тут ломаю голову уже третий день и не как у меня не получается реализовать небольшую программку!
Почитайте может кто поможет чем!
Значит нужно сделать что ini постояно подкачивался на комп! допустим каждые 3 секунды
Код:
While 1
Sleep('3000')
Inetget("http://www.frostkill.com/ini/Taim.ini","Taim.ini")
WEnd

Теперь нужно сделать что бы программа читала ini фалй и если в ini файле такие строчки:
То никаких действий не происходило и повторялась загрузка!
Если же в ini фале такие строчки:
То программа выдавала сообщение (Привет)
А если такие строчки:
То выдавала сообщение (Пока)
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Попробуй так:
Код:
Global $Ini = @TempDir & '\Taim.ini'

While 1
	Sleep(3000)
	$Download = Inetget("http://www.frostkill.com/ini/Taim.ini", $Ini)
	$ReadIni = IniRead($Ini, 'Options', '1', '')
	Switch $ReadIni
		Case 1
			MsgBox(0, 'Test', 'Привет')
		Case 2
			MsgBox(0, 'Test', 'Пока')
	EndSwitch
WEnd
 
Автор
R

Roman89

Новичок
Сообщения
107
Репутация
3
Большое спасибо Zaramot, мне очень помог ваш скрипт!
Вот мой вариант скрипта в котором все работает!
Тойсть как только меняется цифра на сайте сразу меняется месеч в программе!
Код:
While 1
    Sleep(3000)
    $Download = InetGet("http://akk-shop.ru/Taim.ini", "Taim.ini", 1)
    $ReadIni = IniRead('Taim.ini', 'Options', '1', '')
    Switch $ReadIni
        Case 1
            MsgBox(0, 'Test', 'Привет')
            FileDelete('Taim.ini')
        Case 2
            MsgBox(0, 'Test', 'Пока')
            FileDelete('Taim.ini')
        Case 3
            MsgBox(0, 'Test', '3')
             FileDelete('Taim.ini')
    EndSwitch
WEnd
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Roman89,
Без скачивания файла можно так попробовать.
Код:
$sVal = StringRegExpReplace(BinaryToString(InetRead('http://akk-shop.ru/Taim.ini', 17)), '(?si).*?\Q[options]\E.*?\r\n1=(\d{1})(?:\r\n|$).*', '$1')
If @extended <> 1 Then
	ConsoleWrite('Error' & @LF)
Else
	ConsoleWrite('Val = ' & $sVal & @LF)
EndIf
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
madmasles [?]
Без скачивания файла можно так попробовать
Для этого есть IniString UDF:

Код:
#include "IniString.au3"

$sIni = BinaryToString(InetRead("http://akk-shop.ru/Taim.ini", 1))
$ReadIni = _IniString_Read($sIni, 'Options', '1', '')
 
Автор
R

Roman89

Новичок
Сообщения
107
Репутация
3
CreatoR, спасибо за скрипт! без сохранения на комп скрипт реально лучше работает!
Вот что у меня получилось:
Код:
#include "IniString.au3"
While 1
    Sleep(3000)
$sIni = BinaryToString(InetRead("http://akk-shop.ru/Taim.ini", 1))
$ReadIni = _IniString_Read($sIni, 'Options', '1', '')
    Switch $ReadIni
        Case 1
            MsgBox(0, 'Test', 'Привет')
            FileDelete('Taim.ini')
        Case 2
            MsgBox(0, 'Test', 'Пока')
            FileDelete('Taim.ini')
        Case 3
            MsgBox(0, 'Test', '3')
             FileDelete('Taim.ini')
    EndSwitch
WEnd
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
CreatoR [?]
Но так нет записи на диск
wink.gif
.
в Temporary Internet Files у IE лежит.
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
значит в другом месте. или может у тебя сразу удаляется.
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Kaster [?]
может у тебя сразу удаляется
Точно, Process Monitor показывает запись...

Тогда так:

Код:
$sRead = _HTTPRead("akk-shop.ru", "/Taim.ini")
$sRead = StringRegExpReplace($sRead, '(?s).*\r\n\r\n(\[.*)', '\1')

ConsoleWrite($sRead & @LF)

Func _HTTPRead($sHost, $sPage)
	TCPStartup()
	
	Local $sName_To_IP = TCPNameToIP($sHost)
	Local $iSocket = TCPConnect($sName_To_IP, 80)
	
	If $iSocket = -1 Then
		TCPShutdown()
		Return SetError(1, 0, "")
	EndIf
	
	Local $sCommand = "GET " & $sPage & " HTTP/1.1" & @CRLF
	
	$sCommand &= "Host: " & $sHost & @CRLF
	$sCommand &= "User-Agent: AutoIt/" & @AutoItVersion & " (Windows; U; Windows NT 5.1; en-US; rv:1.8.1)" & @CRLF
	$sCommand &= "Referer: " & $sHost & @CRLF
	$sCommand &= "Connection: close" & @CRLF & @CRLF
	
	Local $BytesSent = TCPSend($iSocket, $sCommand)
	
	If $BytesSent = 0 Then
		TCPShutdown()
		Return SetError(2, @error, 0)
	EndIf
	
	Local $sRecv = "", $sCurrentRecv
	
	While 1
		$sCurrentRecv = TCPRecv($iSocket, 16)
		
		If @error <> 0 Then
			ExitLoop
		EndIf
		
		If $sCurrentRecv <> "" Then
			$sRecv &= $sCurrentRecv
		EndIf
	WEnd
	
	TCPCloseSocket($iSocket)
	TCPShutdown()
	
	Return BinaryToString(StringToBinary($sRecv), 4)
EndFunc


Вроде ничего не пишет.
:smile:
 
Автор
R

Roman89

Новичок
Сообщения
107
Репутация
3
Всем доброго времени суток!
Подскажите пожалуйста как реализовать чтение ini файла с сайта но без скачивания его на компьютер?
Именно без скачивания, сохранения, удаления и т д!
Заранее большое спасибо!
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4,020
Репутация
626
Roman89
темы объединил. за дублирование тем в дальнейшем последуют санкции.
 
Верх