Доступ к индикатору выполнения в строке состояния Офисного приложения

Основное различие заключается в классах.

Например, U + 00FF - это "ÿ", но не символ ASCII. Так что \w (Соответствует «символу слова» или буквам)

re.search(r'\w', '\xFF')  # match
re.search(rb'\w', b'\xFF')  # no match
re.search(rb'\w', '\xFF'.encode())  # still no match

(И другие буквы Unicode тоже подойдут)

Если вы посмотрите https: // docs .python.org / 3 / library / re.html , вы можете увидеть три класса, к которым это относится:

\d

Для шаблонов Unicode (str) :

Соответствует любой десятичной цифре Юникода (то есть любому символу в категории символов Юникода [Nd]). Это включает в себя [0-9], а также много других цифровых символов. Если используется флаг ASCII, сопоставляется только [0-9].

blockquote>

Для 8-битных (байтовых) шаблонов:

Соответствует символам, которые считаются пробелами в наборе символов ASCII; это эквивалентно [ \t\n\r\f\v].

blockquote> blockquote>

\s

Для шаблонов Unicode (str):

Соответствует символам пробела Unicode (который включает в себя [ \t\n\r\f\v], а также многие другие символы, например неразрывные пробелы, предписанные правилами типографики во многих языках). Если используется флаг ASCII, сопоставляется только [ \t\n\r\f\v].

blockquote>

Для 8-битных (байтовых) шаблонов:

Соответствует символам, которые считаются пробелами в наборе символов ASCII; это эквивалентно [ \t\n\r\f\v].

blockquote> blockquote>

\w

Для шаблонов Unicode (str):

Соответствует символам слов Unicode; это включает в себя большинство символов, которые могут быть частью слова на любом языке, а также цифры и подчеркивание. Если используется флаг ASCII, сопоставляется только [a-zA-Z0-9_].

blockquote>

Для 8-битных (байтовых) шаблонов:

Соответствует символам, которые считаются буквенно-цифровыми в наборе символов ASCII; это эквивалентно [a-zA-Z0-9_]. Если используется флаг LOCALE, соответствует символам, которые считаются буквенно-цифровыми в текущей локали и подчеркивании.

blockquote> blockquote>

Таким образом, если вы установите флаг ASCII , они должны быть в основном одинаковыми.

Для вашей точной функции, пример будет: test(r'\w|.', '\xFF')

5
задан braX 12 June 2018 в 13:52
поделиться

4 ответа

Следующее моделирует индикатор выполнения в строке состояния Excel:

Public Sub UpdateStatusBar(percent As Double, Optional Message As String = "")

    Const maxBars As Long = 20
    Const before As String = "["
    Const after As String = "]"

    Dim bar As String
    Dim notBar As String
    Dim numBars As Long

    bar = Chr(31)
    notBar = Chr(151)
    numBars = percent * maxBars

    Application.StatusBar = _
    before & Application.Rept(bar, numBars) & Application.Rept(notBar, maxBars - numBars) & after & " " & _
         Message & " (" & PercentageToString(percent) & "%)"

    DoEvents

End Sub
4
ответ дан 14 December 2019 в 09:04
поделиться

AFAIK, нет никакого способа воспроизвести синюю строку точек, используемых Word & Excel для показа продвижения к 100%, например, при открытии файла.

Я помню однажды видящий некоторый код для тиражирования его в строке состояния, но это было сложно, и я не рекомендую это, когда будет довольно достаточно вместо этого сказать "X %, завершенные" в строке состояния, с помощью Приложения. StatusBar.

0
ответ дан 14 December 2019 в 09:04
поделиться

Я рекомендовал бы, кроме того, записать текущее состояние StatusBar, затем восстановил бы его, когда все сделано.

Dim OldStatus
With Application
    OldStatus = .DisplayStatusBar
    .DisplayStatusBar = True
    .StatusBar = "Doing my duty, please wait..."
End With
' Do what you do best here (you can refresh the .StatusBar message with updted, as needed)
With Application
    .StatusBar = False
    .DisplayStatusBar = OldStatus
End With
3
ответ дан 14 December 2019 в 09:04
поделиться

Я не получил доступ к индикатору выполнения, но я использовал в прошлом что-то вроде этого для размещения текста состояния задачи в строку состояния...

Sub StatusBarExample()
    Application.ScreenUpdating = False 
    ' turns off screen updating
    Application.DisplayStatusBar = True 
    ' makes sure that the statusbar is visible
    Application.StatusBar = "Please wait while performing task 1..."
    ' add some code for task 1 that replaces the next sentence
    Application.Wait Now + TimeValue("00:00:02")
    Application.StatusBar = "Please wait while performing task 2..."
    ' add some code for task 2 that replaces the next sentence
    Application.Wait Now + TimeValue("00:00:02")
    Application.StatusBar = False 
    ' gives control of the statusbar back to the programme
End Sub
0
ответ дан 14 December 2019 в 09:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: