|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] Скрипт создания файла данных через диологовое окно. как? |
|
|
[решено] Скрипт создания файла данных через диологовое окно. как?
|
Ветеран Сообщения: 2756 |
Помогите создать скрипт который бы создовал файл с расширением exp (обычный текстовый файл только с переименованным расширением). При этом нужно чтобы в файл вносились данные по определенному алгоритму.
Пример файла который нужно получить: [mm]p9=128 [mm]p10=133 [mm]p11=137 [mm]p12=25 [mm]p13=65 [mm]p14=60 [mm]p15=8 [mm]p16=89 [mm]p17=17 При запуске скрипта должно выскачить окно в котором можно ввести данные. Пример окна: То что текстом - это пояснения, а для цифр должно быть поле для их ввода. При этом каждой фразе пояснения должно автоматически подставлятся [mm]p17=. Но не по порядку как в примере. Фраза в скобках и цифра после p может быть любая, заранее мною определенная для каждой фразы пояснения. После того как все данные введены нажимаем OK и должен получится нужный файл. |
|
Отправлено: 20:50, 21-12-2009 |
![]() Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать #include <GUIConstantsEx.au3> $hWrite = FileOpen(@ScriptDir & '\file.ext', 2) $hGUI = GUICreate('I''m a crasy dentist', 300, 300) $hButton = GUICtrlCreateButton('Create file', 10, 260, 70, 30) Local $hLabel[9][2], $sLabel[9], $hInput[9] $sLabel[0] = 'Диаметр окружности впадин зубьев, df' $sLabel[1] = 'Делительный диаметр, d' $sLabel[2] = 'Диаметр окружности вершин зубьев, da' $sLabel[3] = 'Ширина, b' $sLabel[4] = 'Диаметр ступицы, dst' $sLabel[5] = 'Длина ступицы, Lst' $sLabel[6] = 'Толщина венца, hv' $sLabel[7] = 'Диаметр расположения отверстий, dro' $sLabel[8] = 'Диаметр отверстий, do' $hLabel[0][1] = '[mm]p9=' $hLabel[1][1] = '[mm]p10=' $hLabel[2][1] = '[mm]p11=' $hLabel[3][1] = '[mm]p12=' $hLabel[4][1] = '[mm]p13=' $hLabel[5][1] = '[mm]p14=' $hLabel[6][1] = '[mm]p15=' $hLabel[7][1] = '[mm]p16=' $hLabel[8][1] = '[mm]p17=' For $i = 0 to 8 $hLabel[$i][0] = GUICtrlCreateLabel($sLabel[$i], 10, 10 + $i * 28, 180, 15) $hInput[$i] = GUICtrlCreateInput($i, 230, 10 + $i * 28, 50, 15) Next GUISetState() While 1 $Msg = GUIGetMsg() Switch $Msg Case $GUI_EVENT_CLOSE GUIDelete($hGUI) ExitLoop Case $hButton For $i = 0 to 8 FileWriteLine($hWrite, $hLabel[$i][1] & GUICtrlRead($hInput[$i])) Next FileClose($hWrite) EndSwitch WEnd |
------- Отправлено: 22:58, 21-12-2009 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать kaster, а можно чтобы скрипт отслеживал введенные значения по полученному файлу?
|
------- Отправлено: 23:32, 21-12-2009 | #3 |
![]() Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать в чем проявляется слежение? и какой вид имеет полученный файл?
|
------- Отправлено: 23:45, 21-12-2009 | #4 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать Цитата kaster:
и зашитые по умолчанию цифры 1 2 3 4 5 ... как поменять на нужные не понял я что то |
||
------- Отправлено: 23:48, 21-12-2009 | #5 |
![]() Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать а. понял. последние введенные данные.
а выходной файл может иметь вид следующий? [settings] [mm]p9=128 [mm]p10=133 [mm]p11=137 [mm]p12=25 [mm]p13=65 [mm]p14=60 [mm]p15=8 [mm]p16=89 [mm]p17=17 1. длинный, и не совсем понятный для тебя судя по вопросам, код 2. создание вспомогательного файла, который будет практически дублировать file.ext но с заголовком [settings] |
------- Отправлено: 00:09, 22-12-2009 | #6 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать #include <GUIConstantsEx.au3> #include <EditConstants.au3> $hGUI = GUICreate('I''m a crasy dentist', 300, 300) $hButton = GUICtrlCreateButton('Create file', 10, 260, 70, 30) Local $hLabel[9][2], $sLabel[9], $hInput[9] $sLabel[0] = 'Диаметр окружности впадин зубьев, df' $sLabel[1] = 'Делительный диаметр, d' $sLabel[2] = 'Диаметр окружности вершин зубьев, da' $sLabel[3] = 'Ширина, b' $sLabel[4] = 'Диаметр ступицы, dst' $sLabel[5] = 'Длина ступицы, Lst' $sLabel[6] = 'Толщина венца, hv' $sLabel[7] = 'Диаметр расположения отверстий, dro' $sLabel[8] = 'Диаметр отверстий, do' $hLabel[0][1] = '[mm]p9=' $hLabel[1][1] = '[mm]p10=' $hLabel[2][1] = '[mm]p11=' $hLabel[3][1] = '[mm]p12=' $hLabel[4][1] = '[mm]p13=' $hLabel[5][1] = '[mm]p14=' $hLabel[6][1] = '[mm]p15=' $hLabel[7][1] = '[mm]p16=' $hLabel[8][1] = '[mm]p17=' For $i = 0 To 8 $sInput_Val = StringRegExpReplace(FileReadLine(@ScriptDir & '\file.ext', $i + 1), "^.*=(.*)$", "\1") If $sInput_Val = "" Then $sInput_Val = $i $hLabel[$i][0] = GUICtrlCreateLabel($sLabel[$i], 10, 10 + $i * 28, 180, 15) $hInput[$i] = GUICtrlCreateInput($sInput_Val, 230, 10 + $i * 28, 50, 17, $ES_NUMBER) Next GUISetState() While 1 $Msg = GUIGetMsg() Switch $Msg Case $GUI_EVENT_CLOSE GUIDelete($hGUI) ExitLoop Case $hButton $hWrite = FileOpen(@ScriptDir & '\file.ext', 2) For $i = 0 To 8 FileWriteLine($hWrite, $hLabel[$i][1] & GUICtrlRead($hInput[$i])) Next FileClose($hWrite) EndSwitch WEnd |
------- Отправлено: 00:18, 22-12-2009 | #7 |
Ветеран Сообщения: 2756
|
Профиль | Отправить PM | Цитировать Цитата kaster:
Цитата kaster:
Цитата kaster:
kaster, Вас опередили. Creat0R, все работает как нельзя лучше. Если мне нужно увеличить количество параметров то я меняю: Верно? |
|||
------- Отправлено: 00:18, 22-12-2009 | #8 |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Цитата Pozia:
#include <GUIConstantsEx.au3> #include <EditConstants.au3> $hGUI = GUICreate('I''m a crasy dentist', 300, 350) $hButton = GUICtrlCreateButton('Create file', 10, 310, 70, 30) Global $aLabels, $aInput_Vals, $aiInputs, $iCount $aLabels &= 'Диаметр окружности впадин зубьев, df|' $aLabels &= 'Делительный диаметр, d|' $aLabels &= 'Диаметр окружности вершин зубьев, da|' $aLabels &= 'Ширина, b|' $aLabels &= 'Диаметр ступицы, dst|' $aLabels &= 'Длина ступицы, Lst|' $aLabels &= 'Толщина венца, hv|' $aLabels &= 'Диаметр расположения отверстий, dro|' $aLabels &= 'Диаметр отверстий, do|' $aInput_Vals &= '[mm]p9=|' $aInput_Vals &= '[mm]p10=|' $aInput_Vals &= '[mm]p11=|' $aInput_Vals &= '[mm]p12=|' $aInput_Vals &= '[mm]p13=|' $aInput_Vals &= '[mm]p14=|' $aInput_Vals &= '[mm]p15=|' $aInput_Vals &= '[mm]p16=|' $aInput_Vals &= '[mm]p17=|' $aLabels = StringRegExpReplace($aLabels, '\|$', '') $aLabels = StringSplit($aLabels, '|') $aInput_Vals = StringRegExpReplace($aInput_Vals, '\|$', '') $aInput_Vals = StringSplit($aInput_Vals, '|') Dim $iCount = $aInput_Vals[0] Dim $aiInputs[$iCount+1] For $i = 1 To $iCount $sVal = StringRegExpReplace(FileReadLine(@ScriptDir & '\file.ext', $i), "^.*=(.*)$", "\1") If $sVal = "" Then $sVal = $i GUICtrlCreateLabel($aLabels[$i], 10, 10 + ($i-1) * 28, 180, 15) $aiInputs[$i] = GUICtrlCreateInput($sVal, 230, 10 + ($i-1) * 28, 50, 17, $ES_NUMBER) Next GUISetState() While 1 $Msg = GUIGetMsg() Switch $Msg Case $GUI_EVENT_CLOSE GUIDelete($hGUI) ExitLoop Case $hButton $hWrite = FileOpen(@ScriptDir & '\file.ext', 2) For $i = 1 To $iCount FileWriteLine($hWrite, $aInput_Vals[$i] & GUICtrlRead($aiInputs[$i])) Next FileClose($hWrite) EndSwitch WEnd |
|
------- Отправлено: 00:46, 22-12-2009 | #9 |
![]() Старожил Сообщения: 367
|
Профиль | Отправить PM | Цитировать Цитата Pozia:
|
|
------- Отправлено: 00:48, 22-12-2009 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
VBS/WSH/JS - [решено] Как вызвать диалоговое окно открытия файла? | jaki | Скриптовые языки администрирования Windows | 4 | 30-03-2011 12:12 | |
[решено] Как написать скрипт о проверке нужного файла на съемном носителе? | Pozia | AutoIt | 12 | 05-03-2009 20:20 | |
Интернет - Диалоговое окно загрузки файла IE убрать через реестр... | 12usver12 | Microsoft Windows 2000/XP | 6 | 26-05-2008 15:41 | |
Как остановить скрипт, пока юзер не закроет всплывающее окно? | Gamover jr | Вебмастеру | 5 | 16-04-2008 20:08 | |
Как взять дату создания файла из перла? | radioamator | Вебмастеру | 2 | 30-04-2004 11:14 |
|