Недавние сообщения

Страницы: 1 [2] 3 4 ... 10
11
Общие вопросы по AutoIt / Re: Неизвестная папка на пути к исполняющему файлу
« Последний ответ от gunter123 Отправлен Вчера в 15:11:46 »
Код: AutoIt [Выделить]
#include <Array.au3>
#include <File.au3>

$sPath = _GetPath()

Func _GetPath()
   Local $aList = _FileListToArray(@ProgramFilesDir & '\1c', '*', 2)
   If @error Then Return SetError(2, 0, 0)

   For $i = UBound($aList) -1 To 0 Step -1
      Local $aSplit = StringSplit($aList[$i], '.', 2)
      If @error OR UBound($aSplit) <> 4 Then
         _ArrayDelete($aList, $i)
      EndIf
   Next

   If UBound($aList) = 0 Then Return SetError(1, 0, 0)
   Return @ProgramFilesDir & '\1c\' & $aList[UBound($aList)-1] & '\bin\file.exe'
EndFunc
 

12
Общие вопросы по AutoIt / Re: Редактирование XML файла
« Последний ответ от InnI Отправлен Вчера в 14:47:50 »
Grizli
Не забудьте сделать резервную копию файлов

Код: AutoIt [Выделить]
$sFilePath = @ScriptDir & "\4280_10.06.S_016 - копия.XML"
If Not FileExists($sFilePath) Then Exit ConsoleWrite("!> Файл не найден" & @CRLF)

$oXML = ObjCreate("Microsoft.XMLDOM")
If Not IsObj($oXML) Then Exit ConsoleWrite("!> Ошибка создания объекта XML" & @CRLF)
$oXML.load($sFilePath)

$oPacElements = $oXML.SelectSingleNode("//pac:elements")
If Not IsObj($oPacElements) Then Exit ConsoleWrite("!> Ошибка поиска элемента <pac:elements>" & @CRLF)

$oPacFacts = $oPacElements.SelectNodes("//pac:fact")
If Not $oPacFacts.length Then Exit ConsoleWrite("!> Элементы <pac:fact> не найдены" & @CRLF)

For $oPF In $oPacFacts
  $oPacElements.appendChild($oPF)
Next

$oXML.save(@ScriptDir & "\test.xml")

13
Код: AutoIt [Выделить]
; Пример переработан и слизан отсюда: http://autoit-script.ru/index.php?topic=12322.0
; Почитайте эту тему

#Include <GUIConstants.au3>

GUICreate("MyGUI", 200, 50)
$Input = GUICtrlCreateInput("", 15, 15, 170)
GUIRegisterMsg($WM_COMMAND, "_WM_COMMAND")
GUISetState()

Do
Until GUIGetMsg() = $GUI_EVENT_CLOSE

Func _WM_COMMAND($hWnd, $iMsg, $wParam, $lParam)
    Switch BitAND($wParam, 0xFFFF)
        Case $Input
            Switch BitShift($wParam, 16)
                Case $EN_CHANGE
                    Local $Data = GUICtrlRead($Input)
                    If StringLen($Data) = 1 Then
                        $Data = StringRegExpReplace($Data, '[^+-]', '')
                    Else
                        $Data = StringRegExpReplace($Data, '(.+)\D', '$1')
                    EndIf
                    GUICtrlSetData($Input, $Data)
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc

14
Общие вопросы по AutoIt / Re: Редактирование XML файла
« Последний ответ от Grizli Отправлен Вчера в 14:18:38 »
вставляется строка в нужное место, удаляется из неправильного в конце файла. в первом сообщении темы на скриншоте стрелкой нарисовал откуда и куда должна перемещаться строка.
файл после правки прикрепил к сообщению.
15
Общие вопросы по AutoIt / Re: Неизвестная папка на пути к исполняющему файлу
« Последний ответ от Alofa Отправлен Вчера в 14:04:14 »
У вас
Код: AutoIt [Выделить]
что показывает?
16
Общие вопросы по AutoIt / Re: Редактирование XML файла
« Последний ответ от gunter123 Отправлен Вчера в 13:31:10 »
Зачем вставлять строку </pac:fact>, а потом ее же удалять?  :think:
Цитировать
после каждой строки  </pac:lastChanging>
вставить строку </pac:fact> и в конце файла удалить такое количество строк </pac:fact>, какое было расставлено по файлу

Скиньте, пожалуйста, файл до и после изменения.
17
Общие вопросы по AutoIt / Re: Неизвестная папка на пути к исполняющему файлу
« Последний ответ от Dobrodei Отправлен Вчера в 13:25:48 »
... 'Ни один из файлов или каталогов не соответствует маске поиска'...
Вы проверьте какой путь вам нужен и какой путь прописан в моем скрипте. В первом посте у вас в пути присутствует папка "1c", а в другом уже "1cv8", вы уж определитесь.
Путь я сверяю перед компилированием, там проблема с алгоритмом поиска.


Добавлено: Вчера в 13:32:20
скрипт Гюнтера работает, как встроить его?  :think:
Код: AutoIt [Выделить]
#include <Array.au3>
#include <File.au3>

$aList = _FileListToArray(@ProgramFilesDir & '\1cv8', '*', 2)
If @error Then Exit MsgBox(4096, "", "Ошибка")

For $i = UBound($aList) -1 To 0 Step -1
   $aSplit = StringSplit($aList[$i], '.', 2)
   If @error OR UBound($aSplit) <> 4 Then
      _ArrayDelete($aList, $i)
   EndIf
Next

If UBound($aList) > 0 Then MsgBox(4096, '', @ProgramFilesDir & '\1cv8\' & $aList[UBound($aList)-1] & '\bin\chdbfl.exe')

18
Общие вопросы по AutoIt / Re: Неизвестная папка на пути к исполняющему файлу
« Последний ответ от Alofa Отправлен Вчера в 12:19:50 »
... 'Ни один из файлов или каталогов не соответствует маске поиска'...
Вы проверьте какой путь вам нужен и какой путь прописан в моем скрипте. В первом посте у вас в пути присутствует папка "1c", а в другом уже "1cv8", вы уж определитесь.
19
Общие вопросы по AutoIt / Re: Неизвестная папка на пути к исполняющему файлу
« Последний ответ от Dobrodei Отправлен Вчера в 12:09:41 »
Dobrodei, разрядность ОС? Проверьте существует ли изначальный путь

Код: AutoIt [Выделить]
MsgBox(0, @OSArch, @ProgramFilesDir & "\1cv8" & @CRLF & "Путь " & (FileExists(@ProgramFilesDir & "\1cv8") ? "существует" : "не существует"))

Была ошибка в разрядности , предыдущие скрипты по прежнему не работают.
"Путь существует"


Добавлено: Вчера в 12:12:23
... (например 8.9.3.4 меньше чем 8.9.4.1)...
... На всякий случай путь: C:\Program Files\1cv8\8.2.3.2170\bin\chdbfl.exe  (8.2.3.2170 не константа)
:o :blink: :stars:

Код: AutoIt [Выделить]
Local $sPath = 'Ни один из файлов или каталогов не соответствует маске поиска'
Local $sPathStart = EnvGet('SystemDrive') & '\Program Files\1с\'
Local $hSearch = FileFindFirstFile($sPathStart & '?.?.?.*')
If $hSearch <> -1 Then
    While 1
        $sFile = FileFindNextFile($hSearch)
        If @error Then ExitLoop
        $sFile = $sPathStart & $sFile & '\bin\file.exe'
        If FileExists($sFile) Then $sPath = $sFile
    WEnd
    FileClose($hSearch)
EndIf
MsgBox(262144, 'Результат:', $sPath) ; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< П Р О В Е Р К А >>>>>>>>>>>>>>>>>>>>>>>>

'Ни один из файлов или каталогов не соответствует маске поиска'
Кстати , проблема именно в поиске папки , если в первом скрипте меняем ?.?.?.? на нужную папку , скрипт работает.
20
AZJIO, а можно принудительно заставить вводить знак + или -, чтобы обязательно сначала знак, а  потом цифры
В варианте:
[^\d+-]|(?<!\A)[+-]
Можно ввести цифры без первого знака
Страницы: 1 [2] 3 4 ... 10