Monday, October 18, 2010

Monday October 18th 2010

Working on some tutorials by Patrice Pelland. It's a bit of a nuisance navigating all the forms, etc. I can see how it is cool to be able to do these things with the design environment instead of coding it by hand, but I am just afraid that they will up and change everything with the next edition of visual basic. not sure if that concern is valid.



If e.CurrentProgress < e.MaximumProgress Then
If pbStatus.Value >= pbStatus.Maximum Then
pbStatus.Value =
pbStatus.Minimum
Else
pbStatus.PerformStep()
End If
Else
pbStatus.Value = pbStatus.Minimum
End If

Thursday, October 14, 2010

Thursday 10/14/2010

I am going to convert some psuedo-code I wrote for a class into real VB.net code.

First I am going to test to see if the general principles work.



Const month_list As String = "january february march april may june july august september october november december"


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim monthName As String
monthName = InputBox("Enter a month")
monthName = monthName.ToLower

If month_list.Contains(monthName) = True Then
MessageBox.Show("That is a month")
Else
MessageBox.Show("That is not a month")
End If
End Sub


OK here is the finished product. Debating whether or not to do a quick tutorial. Will smoke a cigarrette and walk to QT while deciding.



Public Class Form1

Const month_list As String = "january february march april may june july august september october november december"
Const month_31 As String = "january march may july august october december"
Const January_value As Integer = 31
Const February_value As Integer = 28
Const March_value As Integer = 31
Const April_value As Integer = 30
Const May_value As Integer = 31
Const June_value As Integer = 30
Const July_value As Integer = 30
Const August_value As Integer = 31
Const September_value As Integer = 30
Const October_value As Integer = 31
Const November_value As Integer = 30




Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim monthString, doAnother As String
Dim dayInteger, totalValue, totalRemainingValue As Integer
Dim i As Integer = 1
Dim yesOrNo As String
Dim totalRemaingValue As Integer = 0

Do
totalRemaingValue = 0
dayInteger = 0
totalValue = 0

monthString = ""
dayInteger = 0
getMonth(monthString)
getDay(monthString, dayInteger)
getMonthValue(monthString, dayInteger, totalValue)
totalRemaingValue = subtractTotalValue(totalValue)
txtInfo.Text = txtInfo.Text & "Entry " & i & vbTab & monthString.ToUpper & " " & dayInteger & vbTab & totalRemaingValue & " days left in the year." & vbCrLf
i += 1
yesOrNo = InputBox("Do you want to enter another date? Enter NO to stop")
yesOrNo = yesOrNo.ToLower
Loop While yesOrNo <> "no"






End Sub

Sub getMonth(ByRef monthString)
Dim monthCorrect As Boolean = False
While monthCorrect = False
While isNull(monthString) = True
monthString = InputBox("Please enter a month")
End While
monthString = monthString.ToLower
If month_list.Contains(monthString) = True Then
MessageBox.Show("You entered the month " & monthString)
monthCorrect = True
Else
MessageBox.Show("You entered " & monthString & " which is incorrect. Please try again.")
End If
End While
End Sub


Sub getDay(ByVal monthString, ByRef dayInteger)
While dayInteger = 0
dayInteger = InputBox("Please enter a date for the day.")
If dayInteger = "" Then
MessageBox.Show("Please enter a number.")
dayInteger = 0
Else
If monthString.tolower = "february" Then
If dayInteger >= 1 And dayInteger <= 28 Then
MessageBox.Show("You have entered " & monthString.ToUpper & " " & dayInteger)
Else
MessageBox.Show("You entered " & dayInteger & ". That is incorrect. Please try again.")
dayInteger = 0
End If
ElseIf month_31.Contains(monthString) Then
If dayInteger >= 1 And dayInteger <= 31 Then
MessageBox.Show("You have entered " & monthString.ToUpper & " " & dayInteger)
Else
MessageBox.Show("You entered " & dayInteger & ". That is incorrect. Please try again.")
dayInteger = 0
End If
Else
If dayInteger >= 1 And dayInteger <= 30 Then
MessageBox.Show("You have entered " & monthString.ToUpper & " " & dayInteger)
Else
MessageBox.Show("You entered " & dayInteger & ". That is incorrect. Please try again.")
dayInteger = 0
End If
End If
End If
End While
End Sub

Sub getMonthValue(ByVal monthString, ByVal dayInteger, ByRef totalValue)
Select Case monthString.tolower
Case "january"
totalValue = dayInteger
Case "february"
totalValue = dayInteger + January_value
Case "march"
totalValue = dayInteger + January_value + February_value
Case "april"
totalValue = dayInteger + January_value + February_value + March_value
Case "may"
totalValue = dayInteger + January_value + February_value + March_value + April_value
Case "june"
totalValue = dayInteger + January_value + February_value + March_value + April_value + May_value
Case "july"
totalValue = dayInteger + January_value + February_value + March_value + April_value + May_value + June_value
Case "august"
totalValue = dayInteger + January_value + February_value + March_value + April_value + May_value + June_value + July_value
Case "september"
totalValue = dayInteger + January_value + February_value + March_value + April_value + May_value + June_value + July_value + August_value
Case "october"
totalValue = dayInteger + January_value + February_value + March_value + April_value + May_value + June_value + July_value + August_value + September_value
Case "november"
totalValue = dayInteger + January_value + February_value + March_value + April_value + May_value + June_value + July_value + August_value + September_value + October_value
Case "december"
totalValue = dayInteger + January_value + February_value + March_value + April_value + May_value + June_value + July_value + August_value + September_value + October_value + November_value
End Select
End Sub

Function isNull(ByVal variableHolder)
If variableHolder = "" Then
Return True
Else
Return False
End If
End Function

Function subtractTotalValue(ByVal totalValue)
totalValue = 365 - totalValue
Return totalValue
End Function
End Class


Here I am trying to work with rectangular arrays


Dim numbersArray(7, 2) As Integer
Dim numbersString As String = ""
Dim arrayFillerOne As Integer = 0
Dim arrayFillerTwo As UInteger = 0


For integerCounter As Integer = 1 To numbersArray.GetLength(0) - 1
arrayFillerONe = integerCounter * 3
arrayFillerTwo = integerCounter * 4
numbersArray(integerCounter, 0) = arrayFillerOne

Next


For i As Integer = 0 To numbersArray.GetLength(0) - 1
For j As Integer = 0 To numbersArray.GetLength(1) - 1
numbersString &= numbersArray(i, j) & vbTab
TextBox1.Text = numbersString
Next
numbersString &= vbCrLf


Next


I think I've gotten the hang of it. It is a bit tricky to convert numbers into spaces, and vice versa.


Dim numbersArray(7, 2) As Integer
Dim numbersString As String = ""
Dim arrayFillerOne As Integer = 0
Dim arrayFillerTwo As UInteger = 0

For i = 0 To numbersArray.GetLength(0) - 1
numbersArray(i, 0) = i * 3
numbersArray(i, 1) = numbersArray(i, 0) + 5
numbersArray(i, 2) = numbersArray(i, 1) + numbersArray(i, 0)


Next i

For i As Integer = 0 To numbersArray.GetLength(0) - 1
For j As Integer = 0 To numbersArray.GetLength(1) - 1
numbersString &= numbersArray(i, j) & vbTab
TextBox1.Text = numbersString
Next
numbersString &= vbCrLf
Next

Tuesday, October 12, 2010

Tuesday, October 12

I am redoing the web browser tutorial by Patrice Pelland



myBrowser.Navigate(txtUrl.Text)


This is the basic command, feeding the url from a textbox into the web browser.


My.Application.MinimumSplashScreenDisplayTime = 3500


I set up a splash screen again.

Monday, October 11, 2010

Monday, October 11, 2010

I am working on some console arrays from www.java2s.com


Sub Main()
Dim myInt As Integer = 7
Console.WriteLine("Initialzed myInt: {0}", myInt)
myInt = 5
Console.WriteLine("After assingment: myInt: {0}", myInt)

End Sub



Tutorial 2.3

Sub Main()
Dim n As Integer

n = 16
n += 102.3
n.ToString()
Console.WriteLine("Addition " & n)

n = 24
n -= 2
Console.WriteLine("Subtraction " & n)

n = 6
n *= 10
Console.WriteLine("Multiplication " & n)

n = 12
n /= 6
Console.WriteLine("Division " & n)

Console.ReadLine()

End Sub


Here is tutorial 2.2.4


Dim firstValue As Integer = 117
Dim secondValue As Integer = 123
Console.WriteLine("Before swap: {0}, {1}", firstValue, secondValue)
System.Threading.Thread.Sleep(700)

firstValue = firstValue Xor secondValue
Console.WriteLine("{0}, {1} ", firstValue, secondValue)
System.Threading.Thread.Sleep(800)

secondValue = firstValue Xor secondValue
Console.WriteLine("{0}, {1} ", firstValue, secondValue)
System.Threading.Thread.Sleep(800)

firstValue = firstValue Xor secondValue
Console.WriteLine("After swap: {0}, {1} ", firstValue, secondValue)
System.Threading.Thread.Sleep(2700)


Here is the next tutorial


Dim iNum As Integer
Console.WriteLine("Integer: " & iNum.MinValue & " to " & iNum.MaxValue)
Console.ReadLine()


Here is the next tutorial, with a try...catch...


Try
Dim numItams As Integer = Integer.Parse("123")

Catch ex As Exception
Console.WriteLine(ex.Message)

End Try


I also did a tutorial by Anne Boehm on arrays.


Dim arrayNumbers(9) As Integer
Dim numbersString As String = " "

For i As Integer = 0 To arrayNumbers.Length - 1
arrayNumbers(i) = i + 1
Next i

For Each number As Integer In arrayNumbers
numbersString &= number.ToString & " "
Next
MessageBox.Show(numbersString, "Numbers Test")

Thursday, October 7, 2010

Thursday October 7th

I've turned some of the psuedo code I have been writing in class to real code. Here is the first part


Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim inputNumber As Integer = 0
Dim i As Integer = 1
Dim numberArray(100) As Integer
Dim arrayCount As Integer = 0

Dim maxNumber As Integer = 0



While inputNumber <> -99
inputNumber = InputBox("Input the number, enter -99 when done.")
numberArray(arrayCount) = inputNumber
arrayCount = arrayCount + 1
i = i + 1
End While


TextBox1.Text = arrayCount - 1


End Sub
End Class



I finally got this to work. I have to convert it into pseudocode, which I will post here as well if I get the chance.





Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim inputNumber As Integer = 0
Dim i As Integer = 0
Dim numberArray(100) As Integer
Dim arrayCount As Integer = 0

Dim maxNumber As Integer = 0



While inputNumber <> -99
inputNumber = InputBox("Input the number, enter -99 when done.")
numberArray(arrayCount) = inputNumber
i = i + 1
arrayCount = arrayCount + 1

End While


'' The last number entered is -99, and we don't want that to count as part of the array, right?
TextBox1.Text = "The last number you entered (excluding -99) was " & numberArray(i - 2).ToString & vbCrLf
TextBox1.Text = TextBox1.Text & "The array count is " & arrayCount & vbCrLf

TextBox1.Text = TextBox1.Text & "The numberArray(arrayCount - 2) is " & numberArray(arrayCount - 2) & vbCrLf


Call compare(i, numberArray, arrayCount, maxNumber)

TextBox1.Text = TextBox1.Text & "The maximum number is " & maxNumber & vbCrLf

End Sub


Sub compare(ByVal i As Integer, ByVal numberArray As Array, ByVal arrayCount As Integer, ByRef maxNumber As Integer)
i = i - 3
arrayCount = arrayCount - 2
While i >= 1
If numberArray(arrayCount) > numberArray(i) Then
maxNumber = numberArray(arrayCount)
TextBox1.Text = TextBox1.Text & numberArray(arrayCount) & " > " & numberArray(i) & vbCrLf
i = i - 1
Else
TextBox1.Text = TextBox1.Text & numberArray(arrayCount) & " < " & numberArray(i) & vbCrLf
maxNumber = numberArray(i)
arrayCount = i
i = i - 1

End If
End While

End Sub

Monday, October 4, 2010

Monday, October 4th 2010

I'm going to be continuing to work on the Halvorson tutorials. I am comfortable working with the tutorials that Michael Halvorson has designed, they're fun, they're well paced and build on each other(I think the word I am looking for is they are incremental?)

array.sort
array.find
array.reverse
array.copy
array.clear

According to Halvorson, these are the most useful methods for dealing with arrays.



Public Class Form1

Dim RandArray(0 To 499) As Long

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

ProgressBar1.Minimum = 0
ProgressBar1.Maximum = UBound(RandArray)
lblCounter.Text = UBound(RandArray) + 1

End Sub

Private Sub txtDisplay_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtDisplay.TextChanged

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer
txtDisplay.Text = ""
For i = 0 To UBound(RandArray)
RandArray(i) = Int(Rnd() * 1000000)
txtDisplay.Text = txtDisplay.Text & RandArray(i) & vbCrLf
ProgressBar1.Value = i
Next
End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim i As Integer
txtDisplay.Text = ""
Array.Sort(RandArray)
For i = 0 To UBound(RandArray)
txtDisplay.Text = txtDisplay.Text & RandArray(i) & vbCrLf
ProgressBar1.Value = i
Next
End Sub

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim i As Integer
txtDisplay.Text = ""
Array.Sort(RandArray)
Array.Reverse(RandArray)
For i = 0 To UBound(RandArray)
txtDisplay.Text = txtDisplay.Text & RandArray(i) & vbCrLf
ProgressBar1.Value = i
Next
End Sub
End Class


I also worked with a tutorial written by Anne Boehm



Dim numbers(10) As Integer
For i As Integer = 0 To numbers.Length - 1
numbers(i) = i
Next

Dim numbersString As String = ""
For i As Integer = 0 To numbers.Length - 1
numbersString &= numbers(i).ToString & vbCrLf
Next
TextBox1.Text = numbersString

Dim sum As Decimal
For i As Integer = 0 To numbers.Length - 1
sum += numbers(i)
Next
Dim average As Decimal = sum / numbers.Length
TextBox1.Text = TextBox1.Text + "The average is: " & average.ToString


Here is a tutorial by Patrice Pelland that I modified a little


Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.lblApplicationStatus.Text = "Ready"
WebBrowser.Navigate("about:blank")

End Sub

Private Sub btnGo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGo.Click
Dim address As String = txtAddress.Text
Me.lblApplicationStatus.Text = "Waiting for: " + address
WebBrowser.Navigate(address)

End Sub

Private Sub WebBrowser_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser.DocumentCompleted

If ((Not (WebBrowser.IsBusy)) And (WebBrowser.ReadyState = WebBrowserReadyState.Complete)) Then
If My.Application.Info.Title <> "" Then
Me.Text = My.Application.Info.Title + " - " +
e.Url.Host.ToString()
Else
Me.Text = System.IO.Path.GetFileNameWithoutExtension(My.Application.Info.AssemblyName) + " - " +
e.Url.Host.ToString()
End If
Me.lblApplicationStatus.Text = "Ready"
End If
End Sub

Private Sub WebBrowser_ProgressChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserProgressChangedEventArgs) Handles WebBrowser.ProgressChanged
If e.CurrentProgress < e.MaximumProgress Then
If pbStatus.Value >= pbStatus.Maximum Then
pbStatus.Value = pbStatus.Minimum
Else
pbStatus.PerformStep()
End If
Else
pbStatus.Value = pbStatus.Minimum
End If
End Sub

Friday, October 1, 2010

October 1st 2010

Howdy!

I'm going to do a quick tutorial on fixed arrays written by Michael Halvorson.


Public Class Form1

Dim Temperatures(0 To 6) As Single

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub btnTemps_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTemps.Click
Dim prompt, title As String
Dim i As Short
prompt = "Enter the day's high temperature."

'' the UBound function will be used for future flexibility
For i = 0 To UBound(Temperatures)
title = "Day " & (i + 1)
Temperatures(i) = InputBox(prompt, title)
Next
End Sub

Private Sub btnDisplay_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDisplay.Click
Dim Result As String
Dim i As Short
Dim Total As Single = 0
Result = "High temperatures for the week:" & vbCrLf & vbCrLf
For i = 0 To UBound(Temperatures)
Result = Result & "Day " & (i + 1) & vbTab & _
Temperatures(i) & vbCrLf
Total = Total + Temperatures(i)
Next
''notice how result is repeated on both sides of the equal side to preserve the information
Result = Result & vbCrLf & _
"Average temperature: " & Format(Total / 7, "0.0")
txtDisplay.Text = Result
End Sub
End Class