Что нового

[Данные, строки] GUICtrlRead передает предыдущее значение элемента GUICtrlCreateInput

AtoS

Новичок
Сообщения
57
Репутация
2
Доброго времени суток!

Уважаемые форумчане, столкнулся со следующей проблемой:
при каждом повторном запуске команда GUICtrlRead передает предыдущее значение элемента GUICtrlCreateInput на запись в ini-файл.

Кто-нибудь сталкивался с подобной проблемой?
 

Tempo

AutoIT Гуру
Сообщения
616
Репутация
205
AtoS, приведите пример кода в котором вы наблюдаете данную проблему
 
Автор
A

AtoS

Новичок
Сообщения
57
Репутация
2
Вот код:

Код:
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <Array.au3>

$get_cassa="somepc1-012"
$sResult = StringTrimRight($get_cassa, 4)
$get_cassa_num = StringRegExpReplace ( $sResult, "[^0-9]", "")
$sKey = 'PORT_IP'
$sText = FileRead('C:\pr2\INI\ini.ini')
$aText = StringRegExp($sText, '(?m)^' & $sKey & '=(.*?)\r?$', 3)
$aGetZero=StringRight( $aText[0], 2 )
$sGetZero=StringLeft( $aGetZero, 1 )
If $sGetZero==0 Then
   $setCassaNum= StringRight ( $aGetZero, 1 )
Else
   $setCassaNum= StringRight ( $aGetZero, 2 )
EndIf

$get_shop_num=StringRight ( $get_cassa, 3 )
$azaza= StringLeft ( $get_shop_num, 1 )
if $azaza==0 Then
   $azazaz2=StringRight ( $get_shop_num, 2 )
   TCPStartup()
	  $sIP = TCPNameToIP("some"&$azazaz2&"server")
	  TCPShutdown()
Else
   TCPStartup()
	  $sIP = TCPNameToIP("some"&$get_shop_num&"server")
	  TCPShutdown()
EndIf
$sKey = 'PORT_IP'
$sText = FileRead('C:\pr2\INI\ini.ini')
$aText = StringRegExp($sText, '(?m)^' & $sKey & '=(.*?)\r?$', 3)
$setport= StringRight ( $aText[0], 2 )
$sPath_shablon='D:\SOFT\pr2'
$sPathUCS = 'C:\pr3'

$Window = GUICreate ( "Версия 1.0", 300, 200)
GUICtrlCreateLabel ( "Номер ПК:            "&$setCassaNum, 10, 30, 200)
$PIN_TID = GUICtrlCreateInput ( "Введите ID", 10, 85, 250, -1,$ES_NUMBER)
$aSetTID = GUICtrlCreateButton ( "Установить ID", 10, 150 )
GUICtrlSetLimit ( $PIN_TID, 11 )

GUISetState(@SW_SHOW, $Window) ;статус окна

   While 1
	  $msg = GUIGetMsg()
	  If $msg = $GUI_EVENT_CLOSE Then ExitLoop
	  Select
	  Case $msg = $aSetTID
		 $TID_READ = GUICtrlRead ($PIN_TID, 1)
		 $test_tid = MsgBox(1+48, "Проверка ID", "     Проверьте корректность ID:"&@CRLF&@CRLF&"     "&"W"&$TID_READ)
		 If $test_tid = 1 Then
			If $TID_READ="Введите ID" Then
			   MsgBox (16, "ВНИМАНИЕ!", "Вы не ввели ID")
			   ContinueLoop
			Else
			    DirMove ($sPathUCS, $sPathUCS&'_'&@YEAR&'-'&@MON&'-'&@MDAY&'_'&@HOUR&@MIN&@SEC, 1)
		        DirCopy($sPath_shablon&'\pr3', $sPathUCS)
				Sleep(5000)
				FileOpen($sPath_shablon&'\pr3\BIN\pr3_ms.ini')
				IniWrite($sPath_shablon&'\pr3\BIN\pr3_ms.ini','Settings','ID', '1'&$TID_READ)
			   $tid_ok = MsgBox(1+64, "Установка ID", "ID установлен!")
			   FileClose($sPath_shablon&'\pr3\BIN\pr3_ms.ini')

			   Exit
			EndIf
		 Else
			ContinueLoop
		 EndIf
	  EndSelect
   WEnd
 
A

Alofa

Гость
А зачем вы используете FileOpen(), FileClose() при обращении к INI?
Уберите эти строки.


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

Да и все "ContinueLoop" тоже.
 
Автор
A

AtoS

Новичок
Сообщения
57
Репутация
2
Alofa сказал(а):
А зачем вы используете FileOpen(), FileClose() при обращении к INI?
Уберите эти строки.
Строки уберу.
Alofa сказал(а):


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

Да и все "ContinueLoop" тоже.



А ContinueLoop почему убрать надо?
 
Автор
A

AtoS

Новичок
Сообщения
57
Репутация
2
Alofa сказал(а):
AtoS сказал(а):
... Строки уберу...
Уберите, попробуйте и отпишитесь.

AtoS сказал(а):
... А ContinueLoop почему убрать надо?
А зачем они в данном скрипте, какую роль они играют?
В общем, как хотите.

убрал - тоже самое
 
A

Alofa

Гость
А при срабатывании скрипта папка "pr3" должна исчезнуть?
 
Автор
A

AtoS

Новичок
Сообщения
57
Репутация
2
Нет,папка не должна исчезать.
Значение должно быть записано в ini файл каталога pr3
 
A

Alofa

Гость
AtoS сказал(а):
... должно быть записано в ini файл каталога pr3
А в реальности запись идет в "D:\SOFT\pr2\pr3\BIN\pr3_ms.ini".

Код:
; ...
; IniWrite($sPath_shablon & '\pr3\BIN\pr3_ms.ini', 'Settings', 'ID', '1' & $TID_READ)
IniWrite($sPathUCS & '\BIN\pr3_ms.ini', 'Settings', 'ID', '1' & $TID_READ)
; ...
 
Автор
A

AtoS

Новичок
Сообщения
57
Репутация
2
Спасибо большое - ошибку осознал!
 
Верх