WorldCup 을 보던 중에 패스 성공율에 대해 보여주는 화면이 나오더라고요...
패스 하는 걸 일일이 카운팅하는 사람들이 있을텐데
이건 그런 패스 카운팅하는 사람들이 쓸 것 같은? 어플입니다. ^^

그냥 TV 만 보느니 한번 만들어 볼까 해서 만들어봤습니다.



그냥 기본적인 문법을 사용한 거라서요...
뭐 건져가실 건 없을 겁니다.

^^'
다음번엔 패스 퍼센티지를 만들어 볼까? ㅋㅋㅋ

대~~애 한민국 짝!짝!~짝!~짝!짝!

필승입니다.

행복한 고수되셔요...

woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

깜빡잊고 실행파일과 소스를 안올렸네요... ㅋㅋ 필요는 없으시겠지만... ^^;
아르헨티나 경기 합니다.
오늘 필승입니다.

대애~~한 민국 짝짝짝짝짝... ^^

    1 Public Class frmCounter

    2 

    3     Dim ActionStack As Stack(Of String)

    4 

    5     Public Sub New()

    6 

    7         ' This call is required by the designer.

    8         InitializeComponent()

    9 

   10         ' Add any initialization after the InitializeComponent() call.

   11         ActionStack = New Stack(Of String)

   12 

   13     End Sub

   14 

   15     Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles pbBPassFore.Click, pbBPassCross.Click, pbBPassError.Click, pbBCancel.Click, pbRPassFore.Click, pbRPassCross.Click, pbRPassError.Click, pbRCancel.Click

   16         Dim pb As PictureBox = CType(sender, PictureBox)

   17         Dim buttonName As String = pb.Name

   18         Select Case buttonName

   19             Case "pbBPassFore"

   20                 nupBFore.UpButton()

   21             Case "pbBPassCross"

   22                 nupBCross.UpButton()

   23             Case "pbBPassError"

   24                 nupBError.UpButton()

   25             Case "pbRPassFore"

   26                 nupRFore.UpButton()

   27             Case "pbRPassCross"

   28                 nupRCross.UpButton()

   29             Case "pbRPassError"

   30                 nupRError.UpButton()

   31             Case "pbRCancel"

   32                 'VB 에는break나 Continue 문이 없는 관계로 ^^'

   33                 CancelCount()

   34             Case "pbBCancel"

   35                 CancelCount()

   36         End Select

   37 

   38         If Not (String.Equals(buttonName, "pbRCancel") Or String.Equals(buttonName, "pbBCancel")) Then

   39             ActionStack.Push(buttonName)

   40         End If

   41 

   42     End Sub

   43 

   44     Private Sub CancelCount()

   45         If ActionStack.Count < 1 Then

   46             Return

   47         End If

   48         Dim buttonName As String = ActionStack.Pop()

   49         Select Case buttonName

   50             Case "pbBPassFore"

   51                 nupBFore.DownButton()

   52             Case "pbBPassCross"

   53                 nupBCross.DownButton()

   54             Case "pbBPassError"

   55                 nupBError.DownButton()

   56             Case "pbRPassFore"

   57                 nupRFore.DownButton()

   58             Case "pbRPassCross"

   59                 nupRCross.DownButton()

   60             Case "pbRPassError"

   61                 nupRError.DownButton()

   62         End Select

   63     End Sub

   64 

   65 End Class

   66 

   67 



반응형
  1. 무명 2014.03.15 00:21

    vb에는 break와 같은 명령이 exit입니다.
    select문에서 break을 주려면 exit select 로 하면 됩니다.

    • Favicon of https://www.jumptovb.net BlogIcon woojja 2014.10.08 18:03 신고

      하지만 특별히 Break 문을 주지 않아도 되죠...
      관심 감사합니다. ^^


이 곳에 가시면 쏟아지는 VisualBasic 2010 책들의 List 를 보실 수 있습니다.

행복한 VisualBasic.NET 고수 되셔요...

woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\
반응형
XML Document 만들기 부터 Node 접근까지...


간단한 것이지만...
뭐 그리 뚜렷하게 풀어 설명해 놓은 것도 없기에...
그렇다고 자세히 설명 하는 것은 아니지만...

조그만 프로그램을 하나 만들고

소스를 디버깅하면서 아하... 이렇게 접근을 하는 구나 라고 느끼실 수 있을 것 같습니다.

만들 프로그램... 역시 그리 대단하지 않습니다.


 


폼하나 여시고 버튼세개를 올립니다.

비하인드 코드창에는 

Imports System.Xml

를 추가합니다.

XML 을 사용할 것이니 당연하겠죠..

그리고 



<?xml version="1.0" encoding="euc-kr"?>
<Filters />

이런 Filters Root Entity만 들어가 있는 XML 파일을 하나 만듭니다.
그리고 'UserFilter.xml" 이라는 이름으로 저장을 하시고

어플폴더에 복사를 해 놓습니다.

그리고 차례로 버튼을 더블클릭하여 이벤트 코드를 만드시고
아래의 소스를 복사해서 넣습니다.


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        doc = New XmlDocument()

        If (Not System.IO.File.Exists("Filter.xml")) Then
            doc.Load("UserFilter.xml")
        Else
            doc.Load("Filter.xml")
        End If

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Dim root As XmlNode = doc.DocumentElement

        For k As Integer = 0 To 2 Step 1

            Dim xeFilter As XmlElement = doc.CreateElement("Filter")
            Dim xeFilterName As XmlElement = doc.CreateElement("Name")

            Dim xeColumnFilters As XmlElement = doc.CreateElement("ColumnFilters")

            For j As Integer = 0 To 5 Step 1

                Dim xeColumnFilter As XmlElement = doc.CreateElement("ColumnFilter")
                Dim xaColumnName As XmlAttribute = doc.CreateAttribute("ColumnName")
                Dim xaLogicalOperation As XmlAttribute = doc.CreateAttribute("LogicalOperation")
                xaColumnName.InnerText = "CoumnName" + j.ToString()
                xaLogicalOperation.InnerText = "LogicalOperation" + j.ToString()
                xeColumnFilter.Attributes.Append(xaColumnName)
                xeColumnFilter.Attributes.Append(xaLogicalOperation)

                For i As Integer = 0 To 3 Step 1

                    Dim xeFilterCondition As XmlElement = doc.CreateElement("FilterCondition")
                    Dim xaComparisonOperator As XmlAttribute = doc.CreateAttribute("ComparisonOperator")
                    Dim xaCompareValue As XmlAttribute = doc.CreateAttribute("CompareValue")
                    xaComparisonOperator.InnerText = "ComparisonOperator" + i.ToString()
                    xaCompareValue.InnerText = "CompareValue" + i.ToString()
                    xeFilterCondition.Attributes.Append(xaComparisonOperator)
                    xeFilterCondition.Attributes.Append(xaCompareValue)

                    xeColumnFilter.AppendChild(xeFilterCondition)
                Next

                xeColumnFilters.AppendChild(xeColumnFilter)
            Next
            xeFilter.AppendChild(xeFilterName)
            xeFilterName.InnerText = "woojja" + k.ToString()

            xeFilter.AppendChild(xeColumnFilters)

            root.AppendChild(xeFilter)

        Next
        doc.Save("Filter.xml")

    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click

        Dim root As XmlNode = doc.DocumentElement

        Dim xmlColumnFilterList As XmlNodeList = root.SelectNodes("Filter[Name='woojja1']")
        xmlColumnFilterList = root.SelectNodes("Filter[Name='woojja1']/ColumnFilters")
        xmlColumnFilterList = root.SelectNodes("Filter[Name='woojja1']/ColumnFilters/ColumnFilter")

        For Each columnFilterNode As XmlNode In xmlColumnFilterList

            Dim strColumnName As String = columnFilterNode.Attributes("ColumnName").Value
            Dim strLogicalOperation As String = columnFilterNode.Attributes("LogicalOperation").Value

            Dim filterConditionList As XmlNodeList = columnFilterNode.SelectNodes("FilterCondition")

            For Each filterConditionNode As XmlNode In filterConditionList

                Dim strComparisonOperator As String = filterConditionNode.Attributes("ComparisonOperator").Value
                Dim strCompareValue As String = filterConditionNode.Attributes("CompareValue").Value
            Next
        Next
    End Sub


흑... 복사해 놓고 보니 토나올것 같군요... ㅡㅡ'

코드창에 복사해 넣으면 그리 나쁘진 않습니다.

그리고 위 빨갛게 칠해 놓은 부분에 BreakPoint 를 거신후에..

버튼 1, 2, 3번을 차례로 클릭합니다.

1번에서 에러나시는 분들... 꼭있습니다.
걍 적당히 xml 파일을 이동시켜 놓으세요. ㅋㅋㅋ (알아서 좀 하세요.)

버튼 2번은 내용은 잘 보시면 XML 의 Element와 Attribute 를 어떻게 추가하는지 아실 수있습니다.

그리고 버튼 3번은 Element 와 Attribute 를 어떻게 접근하는 지 아실 수 있는데...

BreakPoint 를 찍으라는 이유는...

        root.SelectNodes("Filter[Name='woojja1']")
        root.SelectNodes("Filter[Name='woojja1']/ColumnFilters")
        root.SelectNodes("Filter[Name='woojja1']/ColumnFilters/ColumnFilter")

XPath 를 어떻게 사용할 수 있는지 사용방법을 보시라고...

역시 허접한 정리였습니다.





부디 행복한 고수되셔요...



woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


Root 2008-04-22 오전 10:18:20
비주얼베이직에서 XML 다루는 예제를 찾고 있었는데 많은 도움이 되었습니다. 감사해요 ^^
반응형
폼을 하나 만드시고 
리스트 박스 하나, 버튼 두개 올리시고 아래 소스를 복사해서 실행시켜보시지요...

무식한 정환이... 
멀티 컬럼이라는 새로운 속성에 좋아라 했답니다.
근데 실은 멀티 컬럼이라고 해서 리스트 뷰처럼 하나의 아이템에 두 컬럼 혹은 세 컬럼이 나오는 그런 속성인줄 알았었는데... 조금은 실망했습니다. 하지만 서도 새로운 걸 발견했다는... (이제서야... ㅡㅡ')
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim x As Integer
        ' Add items to the ListBox.
        For x = 0 To 50
            ListBox1.Items.Add("Items " + x.ToString())
        Next x
        ' Display items in columns.
        ' Determine the width of the items in the list to get the best column width setting.
        Dim width As Integer = CInt(ListBox1.CreateGraphics().MeasureString(ListBox1.Items(ListBox1.Items.Count - 1).ToString(), _
           ListBox1.Font).Width)
        ' Set the column width based on the width of each item in the list.
        ListBox1.ColumnWidth = width

    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ListBox1.MultiColumn = Not ListBox1.MultiColumn
    End Sub
End Class


 


행복한 고수되셔요...


woojja ))*
\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\


== 소스는 MSDN 을 약간 변형한 것입니다.
반응형

+ Recent posts