Отправка SVN соглашается на канал RSS

Проблема в том, что после нажатия на оператор + текстовое поле может содержать два числа. Если вы хотите отформатировать их, вам нужно разделить строку на 1-е число, оператор и 2-е число и отформатировать два числа отдельно. val1 и val2 могут содержать что-то вроде "13.2+5" и не могут быть преобразованы с ToDecimal.

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

Текстовое поле следует использовать только для отображения, а не в качестве хранилища для ввода.

Private _input As String

Private Sub TypeDigit(ByVal key As Char)
    _input += key
    Display()
End Sub

Private Sub TypeOperator(ByVal key As Char)
    _input += " " & key & " "
    Display()
End Sub

Private Sub Execute(ByVal key As Char)
    Select Case key
        Case "="c
            _input = Calculate(_input)
        Case "C"c
            _input = ""
        Case Else
    End Select

    Display()
End Sub

Нам еще нужно объявить два метода Calculate и Display. Обратите внимание, что у нас есть 3 метода ввода. Каждый из них называет Display в конце. Display выполнит все форматирование и поместит результат в текстовое поле.

Обработчики событий щелчка:

Private Sub buttonClear_Click(ByVal sender As Object, ByVal e As EventArgs)
    Execute("C"c)
End Sub

Private Sub buttonDecimalPoint_Click(ByVal sender As Object, ByVal e As EventArgs)
    TypeDigit("."c)
End Sub

Private Sub button0_Click(ByVal sender As Object, ByVal e As EventArgs)
    TypeDigit("0"c)
End Sub

...

Private Sub button9_Click(ByVal sender As Object, ByVal e As EventArgs)
    TypeDigit("9"c)
End Sub

Private Sub buttonEquals_Click(ByVal sender As Object, ByVal e As EventArgs)
    Execute("="c)
End Sub

Private Sub buttonPlus_Click(ByVal sender As Object, ByVal e As EventArgs)
    TypeOperator("+"c)
End Sub

' other operators here...

Метод Display довольно сложен, потому что нам, возможно, придется форматировать неполные числа. Например. числа, начинающиеся или заканчивающиеся десятичной точкой или числа, имеющие конечные нули. Мы должны обеспечить их сохранение во время форматирования. Я закончил с

Private Sub Display()
    Dim parts As String() = _input.Split(New Char() {" "c}, StringSplitOptions.RemoveEmptyEntries)
    Dim display As String = ""
    Dim n As Decimal

    For Each part As String In parts
        If part = "." Then
            display += "0."
        ElseIf part.EndsWith(".") AndAlso Decimal.TryParse(part.Substring(0, part.Length - 1), n) Then
            display += n.ToString("#,##0") & "."
        ElseIf Decimal.TryParse(part, n) Then
            Dim decimalPoint As Integer = part.IndexOf("."c)

            If decimalPoint >= 0 Then
                Dim numDecimals As Integer = part.Length - decimalPoint - 1
                display += n.ToString("#,##0." & New String("0"c, numDecimals))
            Else
                display += n.ToString("#,##0")
            End If
        Else
            display += " " & part & " "
        End If
    Next

    textBoxDisplay.Text = display
End Sub

Я не реализовал метод Calculate. Я оставляю это на ваше усмотрение. Вам придется начать как в методе Display, разделив входные данные на части.

18
задан Josh Matthews 24 September 2008 в 02:13
поделиться

8 ответов

Я собирался предложить Trac также, пока я не понял, что Вы, вероятно, не имеете административного контроля над рассматриваемыми репозиториями. Возможно, это очевидное решение будет работать на Вас?

http://svnfeed.com/

Это, кажется, работает хорошо на один репозиторий, я примерил его, и это удивительно быстро.

9
ответ дан 30 November 2019 в 09:22
поделиться

SvnFeed

Также проверяет CommitMonitor для окон, какие функции действительно шлифуют различную поддержку

2
ответ дан 30 November 2019 в 09:22
поделиться

Я только что попробовал sventon хорошими результатами. Это - веб-средство просмотра SVN, разумное в том, что это делает, но обеспечивает хороший канал RSS на любом уровне, на который Вы хотите подписаться.

2
ответ дан 30 November 2019 в 09:22
поделиться

Подозрительный взгляд Atlassian ( http://www.atlassian.com/software/fisheye/ ) позволяет Вам получать уведомление о фиксации на электронной почте, а также RSS (и в качестве награды, можно выбрать, какой каталог/файл подписаться на, и только уведомляются относительно тех изменений файла/dir).

1
ответ дан 30 November 2019 в 09:22
поделиться

Попробуйте Trac. Помимо подачи можно просмотреть репозиторий, и он имеет хорошую Wiki.

0
ответ дан 30 November 2019 в 09:22
поделиться

Я использовал Sublety также. Это была настоящая неприятность, когда это ушло. Я закончил тем, что прокрутил свое собственное решение. Это - базирующаяся.NET и требует использования сценария рычага постфиксации. Это свободно, и я обеспечил оба двоичных файла и исходный код.

Подверсия Сценарий

Рычага Канала RSS C# Живая RSS лента репозитория с хорошим шаблоном xsl

0
ответ дан 30 November 2019 в 09:22
поделиться

Существует subveRSSed, который Вы просто заскакиваете в свое действие постфиксации.

-1
ответ дан 30 November 2019 в 09:22
поделиться

Мне нравится Trac, хотя это может быть излишество для того, в чем Вы нуждаетесь. WebSVN является также хорошим инструментом для просмотра репозиториев по сети. Оба из них обеспечивают каналы RSS для журнала. Можно также подписаться на журнал для просто конкретного ответвления, и т.д.

0
ответ дан 30 November 2019 в 09:22
поделиться
Другие вопросы по тегам:

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