Русское сообщество AutoIt

  • Май 20, 2012, 12:32:32 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:

Открыт новый раздел Полезняшки - Полезные решения, функции и скрипты в помощь кодеру

:Typing:

Реклама

Автор Тема: [Данные, строки] При выводе данных на экранную форму символ "/" самопроизвольно меняется на "."  (Прочитано 2527 раз)

0 Пользователей и 1 Гость смотрят эту тему.

Linaleks [?]

  • Новичок
  • *
  • Репутация: 0
  • Offline Offline
  • Сообщений: 2
  • Версия AutoIt: v3.3.6.1
    • Награды
Добрый день!
Помогите, пожалуйста, разобраться вот с таким вопросом:
Есть Excel файл, с единственным столбцом, в ячейках которого указаны номера вида: 0001/1; 0002/1; 0003/1 и так далее.
Задача состоит в следующем: запускается Win32 приложение, в котором активируется окно запроса в БД.
Далее номер из первой ячейки Excel файла вставляется в поле на экранной форме запроса, далее создается новый запрос - в поле вставляется номер из второй ячейки Excel файла, и т.д.
А проблема возникает вот такая: из Excel копируется номер 0001/1, а в поле на экранной форме отображается 0001.1
Подскажите, пожалуйста, как "заставить" Autoit передавать номер именно в том формате, в котором он у меня указан, т.е. чтобы символ / на экран передавался именно как символ /?
Заранее благодарю за помощь!

Привожу код ниже:
Код: AutoIt [Выделить]
Local $sFilePath = 'C:\File1.xls' ;адрес файла Excel
_ExcelBookOpen($sFilePath)
Local $oExcel = _ExcelBookAttach($sFilePath)
Local $i = 1
 For $i = 1 to 400
    Do
        Local $sCell_Series = _ExcelReadCell($oExcel, $i, 1)

            Do
            WinActivate($WindowCaption_Terminal) ;активируем окно
            Sleep($MinSleepTime)
            Until WinActive($WindowCaption_Terminal)
                ;Открываем окно нового запроса(ниже):
                Send("{ALT}")
                Send("{RIGHT}{ENTER}")
                Sleep(500)
                ;Запрашиваем информацию по номеру (ниже):
                Send("{TAB}")
                Send($sCell_Series)
                Sleep(500)
                ;Сохраняем и отправляем запрос (ниже):
                Send("{ALT}")
                Send("{DOWN}{ENTER}")
                Sleep(500)
                $i = $i+1
        Until $i = 400
    Next
_ExcelBookClose($oExcel)


З.Ы. Пробовала вместо переменной из Excel
Код: AutoIt [Выделить]
Send($sCell_Series)
посылать в поле экранной формы конкретное значение:
Код: AutoIt [Выделить]
Send("0001/1")
Результат тот же: на экране появляется 0001.1
« Последнее редактирование: Октябрь 26, 2010, 21:13:32 от Linaleks »



  Записан

Sp01LeR [?]

  • Новичок
  • *
  • Репутация: 10
  • Offline Offline
  • Сообщений: 45
  • Версия AutoIt: 3.3.2.0
    • Награды
Это из-за русской раскладки, установленой по-умолчанию...

Чтобы не заморачиваться с переключением, я сделал обертку для Send() - теперь текст будет посылаться в окно независимо от раскладки:

Код: AutoIt [Выделить]
Func _SendAsc($str2s)
    Local $c = 0, $char = 0, $resStr =""
    If $str2s Then
        For $c=1 to StringLen ($str2s)
            $char=Asc(StringMid($str2s, $c, 1))
            If $char > 0 And $char < 100 Then
                $resStr &= "{ASC 0"&$char&"}"
            ElseIf $char > 0 And $char > 100 Then
                $resStr &= "{ASC "&$char&"}"
            Else
                ;Nothing
            EndIf
        Next
        Send($resStr)
        Return 1
    Else
        Return 0
    EndIf
EndFunc

Local $sFilePath = 'C:\File1.xls' ;адрес файла Excel
_ExcelBookOpen($sFilePath)
Local $oExcel = _ExcelBookAttach($sFilePath)
Local $i = 1
 For $i = 1 to 400
    Do
        Local $sCell_Series = _ExcelReadCell($oExcel, $i, 1)

            Do
            WinActivate($WindowCaption_Terminal) ;активируем окно
            Sleep($MinSleepTime)
            Until WinActive($WindowCaption_Terminal)
                ;Открываем окно нового запроса(ниже):
                Send("{ALT}")
                Send("{RIGHT}{ENTER}")
                Sleep(500)
                ;Запрашиваем информацию по номеру (ниже):
                Send("{TAB}")
                _SendAsc($sCell_Series)
                Sleep(500)
                ;Сохраняем и отправляем запрос (ниже):
                Send("{ALT}")
                Send("{DOWN}{ENTER}")
                Sleep(500)
                $i = $i+1
        Until $i = 400
    Next
_ExcelBookClose($oExcel)
 

но, если текст в юникоде, то нужно заменить в функции строку
Код: AutoIt [Выделить]
$char=Asc(StringMid($str2s, $c, 1))

на

Код: AutoIt [Выделить]
$char=AscW(StringMid($str2s, $c, 1))
« Последнее редактирование: Октябрь 27, 2010, 01:43:12 от Sp01LeR »



  Записан

Linaleks [?]

  • Новичок
  • *

  • Автор темы
  • Репутация: 0
  • Offline Offline
  • Сообщений: 2
  • Версия AutoIt: v3.3.6.1
    • Награды




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
[Время / дата] Как вычесть из "1 октября" "30-е сентября" и получить "1"? разн
AutoIt для новичков
akoulev 6 3457 Последний ответ Октябрь 07, 2009, 09:36:42
от akoulev
[Данные, строки] Как "вытащить" данные от "return"при использовании "call"?
AutoIt для новичков
akoulev 9 3083 Последний ответ Октябрь 28, 2009, 01:23:30
от Yashied
[Данные, строки] Перекодировать символы в файле "\u041f\u0435\u0440\u0432", удалить все "Enter"
AutoIt для новичков
ol1o 8 2543 Последний ответ Февраль 09, 2011, 22:04:08
от Kaster
Как послать "Tab" и ""Enter" в скрытое окно интернет эксплорера?
AutoIt для новичков
forfrends 8 1838 Последний ответ Апрель 10, 2011, 11:50:11
от madmasles
как привязать клавиши "-" и "+" на цифр. клавиатуре для умень. и увел. звука?
AutoIt для новичков
agikon 6 921 Последний ответ Август 05, 2011, 23:10:44
от Yashied
как правильно Run("C:\r\no.bat","",@SW_HIDE) ;отсылаем сообщение
AutoIt для новичков
gagarin74 5 730 Последний ответ Август 17, 2011, 14:16:28
от Kaster
Как в слове "пример" букву "м" сделать красной?
AutoIt для новичков
agikon 8 771 Последний ответ Август 23, 2011, 17:48:01
от Kaster
Как "привязать" массив определённых чисел к условию "if" ?
AutoIt для новичков
agikon 19 579 Последний ответ Март 12, 2012, 16:53:08
от agikon
Почему _GUIColorPicker_Create сохраняет цвет в виде "15070215" а не в "0x00FFFF"
AutoIt для новичков
agikon 2 132 Последний ответ Март 31, 2012, 16:45:37
от agikon
"Ты" или "Вы" ?
Общение
Александр 12 511 Последний ответ Май 15, 2012, 15:54:26
от Garrett


Реклама

* Последние сообщения на форуме
post Re: Защита исходного кода программы
[AutoIt для новичков] Ganibal95 Сегодня в 12:21:05
post Re: Проблема с циклами While
[AutoIt для новичков] Yashied Сегодня в 12:14:25
post Сглаживание рывков при передачи новых координат игрока по TCP/IP
[Общение] Ganibal95 Сегодня в 12:10:37
post Перенесено: Уроки программирования и автоматизации посредством AutoIt для чайников
[AutoIt для новичков] Yashied Сегодня в 12:09:28
post Re: Защита исходного кода программы
[AutoIt для новичков] iamOmg Сегодня в 12:09:05
post Проблема с циклами While
[AutoIt для новичков] Andeangl Сегодня в 11:03:15
post Уроки программирования и автоматизации посредством AutoIt для чайников
[Инструменты и помощь по AutoIt] aak Сегодня в 09:41:45
post Re: Как спарсить ссылку внутри тега "td" определенного класса
[Регулярные выражения и прочее] eropov Сегодня в 05:27:00
post Re: Ограничение доступа(блокировка) к компьютеру если не вставлен носитель с ключом
[AutoIt для новичков] Pat4005 Сегодня в 01:02:55
post Re: Развитие русской справки
[Инструменты и помощь по AutoIt] CreatoR Сегодня в 00:02:03

* Пользователи онлайн
  • Dot Гостей: 103
  • Dot Скрыт: 1
  • Dot Пользователей: 28
  • Dot Пользователи Online: