Jump to content
Xtreme .Net Talk

Recommended Posts

Posted
Public Class Form1
   Inherits System.Windows.Forms.Form
   Dim BigOnes(9) As String
   Dim SmallOnes(19) As String

   Dim Dollars As String
   Dim Cents As String
   Dim Words As String
   Dim Chunk As String
   Dim Digits As Short
   Dim LeftDigit As Short
   Dim RightDigit As Short



#Region " Windows Form Designer generated code "

   Public Sub New()
       MyBase.New()

       'This call is required by the Windows Form Designer.
       InitializeComponent()

       'Add any initialization after the InitializeComponent() call

   End Sub

   'Form overrides dispose to clean up the component list.
   Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
       If disposing Then
           If Not (components Is Nothing) Then
               components.Dispose()
           End If
       End If
       MyBase.Dispose(disposing)
   End Sub

   'Required by the Windows Form Designer
   Private components As System.ComponentModel.IContainer

   'NOTE: The following procedure is required by the Windows Form Designer
   'It can be modified using the Windows Form Designer.  
   'Do not modify it using the code editor.
   Friend WithEvents Label1 As System.Windows.Forms.Label
   Friend WithEvents Label2 As System.Windows.Forms.Label
   Friend WithEvents Button1 As System.Windows.Forms.Button
   Friend WithEvents Label3 As System.Windows.Forms.Label
   Friend WithEvents Label4 As System.Windows.Forms.Label
   Friend WithEvents txtAmount As System.Windows.Forms.TextBox
   Friend WithEvents txtWrite As System.Windows.Forms.TextBox
   <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
       Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(Form1))
       Me.Label1 = New System.Windows.Forms.Label
       Me.Label2 = New System.Windows.Forms.Label
       Me.Button1 = New System.Windows.Forms.Button
       Me.txtAmount = New System.Windows.Forms.TextBox
       Me.txtWrite = New System.Windows.Forms.TextBox
       Me.Label3 = New System.Windows.Forms.Label
       Me.Label4 = New System.Windows.Forms.Label
       Me.SuspendLayout()
       '
       'Label1
       '
       Me.Label1.BackColor = System.Drawing.Color.Transparent
       Me.Label1.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
       Me.Label1.Location = New System.Drawing.Point(8, 8)
       Me.Label1.Name = "Label1"
       Me.Label1.Size = New System.Drawing.Size(96, 48)
       Me.Label1.TabIndex = 0
       Me.Label1.Text = "Michael S. Bailey 1825 NE. 3rd Renton WA, 89056"
       '
       'Label2
       '
       Me.Label2.BackColor = System.Drawing.Color.Transparent
       Me.Label2.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
       Me.Label2.ForeColor = System.Drawing.Color.Red
       Me.Label2.Location = New System.Drawing.Point(376, 0)
       Me.Label2.Name = "Label2"
       Me.Label2.Size = New System.Drawing.Size(88, 24)
       Me.Label2.TabIndex = 1
       Me.Label2.Text = "38069"
       Me.Label2.TextAlign = System.Drawing.ContentAlignment.TopCenter
       '
       'Button1
       '
       Me.Button1.Location = New System.Drawing.Point(16, 152)
       Me.Button1.Name = "Button1"
       Me.Button1.Size = New System.Drawing.Size(96, 24)
       Me.Button1.TabIndex = 2
       Me.Button1.Text = "Button1"
       '
       'txtAmount
       '
       Me.txtAmount.Location = New System.Drawing.Point(360, 56)
       Me.txtAmount.Name = "txtAmount"
       Me.txtAmount.Size = New System.Drawing.Size(80, 20)
       Me.txtAmount.TabIndex = 3
       Me.txtAmount.Text = ""
       '
       'txtWrite
       '
       Me.txtWrite.BackColor = System.Drawing.Color.PaleGreen
       Me.txtWrite.Location = New System.Drawing.Point(24, 96)
       Me.txtWrite.Name = "txtWrite"
       Me.txtWrite.ReadOnly = True
       Me.txtWrite.Size = New System.Drawing.Size(424, 20)
       Me.txtWrite.TabIndex = 4
       Me.txtWrite.Text = ""
       '
       'Label3
       '
       Me.Label3.BackColor = System.Drawing.Color.Transparent
       Me.Label3.Font = New System.Drawing.Font("Monotype Corsiva", 15.75!, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
       Me.Label3.Location = New System.Drawing.Point(288, 160)
       Me.Label3.Name = "Label3"
       Me.Label3.Size = New System.Drawing.Size(160, 24)
       Me.Label3.TabIndex = 5
       Me.Label3.Text = "Michael S. Bailey"
       Me.Label3.TextAlign = System.Drawing.ContentAlignment.BottomCenter
       Me.Label3.Visible = False
       '
       'Label4
       '
       Me.Label4.BackColor = System.Drawing.Color.Transparent
       Me.Label4.Font = New System.Drawing.Font("Microsoft Sans Serif", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
       Me.Label4.Location = New System.Drawing.Point(288, 56)
       Me.Label4.Name = "Label4"
       Me.Label4.Size = New System.Drawing.Size(64, 24)
       Me.Label4.TabIndex = 6
       Me.Label4.Text = "Amount"
       Me.Label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight
       '
       'Form1
       '
       Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
       Me.BackColor = System.Drawing.SystemColors.ActiveBorder
       Me.BackgroundImage = CType(resources.GetObject("$this.BackgroundImage"), System.Drawing.Image)
       Me.ClientSize = New System.Drawing.Size(456, 189)
       Me.Controls.Add(Me.Label4)
       Me.Controls.Add(Me.Label3)
       Me.Controls.Add(Me.txtWrite)
       Me.Controls.Add(Me.txtAmount)
       Me.Controls.Add(Me.Button1)
       Me.Controls.Add(Me.Label2)
       Me.Controls.Add(Me.Label1)
       Me.MaximumSize = New System.Drawing.Size(464, 216)
       Me.MinimumSize = New System.Drawing.Size(464, 216)
       Me.Name = "Form1"
       Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
       Me.Text = "Bank of America"
       Me.ResumeLayout(False)

   End Sub

#End Region

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





       'Public Sub ParseChunk()

       Digits = CShort(Mid(Chunk, 1, 1))
       If Digits > 0 Then
           Words = Words & " " & SmallOnes(Digits) & " Hundred"
       End If
       Digits = CShort(Mid(Chunk, 2, 2))
       If Digits > 19 Then
           LeftDigit = CShort(Mid(Chunk, 2, 1))
           RightDigit = CShort(Mid(Chunk, 3, 1))
           Words = Words & " " & BigOnes(LeftDigit)
           If RightDigit > 0 Then
               Words = Words & " " & SmallOnes(RightDigit)
           End If
       Else
           If Digits > 0 Then
               Words = Words & " " & SmallOnes(Digits)
           End If
       End If
   End Sub
   Private Sub form1_load()


       BigOnes(1) = "Ten"
       BigOnes(2) = "Twenty"
       BigOnes(3) = "Thirty"
       BigOnes(4) = "Forty"
       BigOnes(5) = "Fifty"
       BigOnes(6) = "Sixty"
       BigOnes(7) = "Seventy"
       BigOnes(8) = "Eighty"
       BigOnes(9) = "Ninety"

       SmallOnes(1) = "One"
       SmallOnes(2) = "Two"
       SmallOnes(3) = "Three"
       SmallOnes(4) = "Four"
       SmallOnes(5) = "Five"
       SmallOnes(6) = "Six"
       SmallOnes(7) = "Seven"
       SmallOnes(8) = "Eight"
       SmallOnes(9) = "Nine"
       SmallOnes(10) = "Ten"
       SmallOnes(11) = "Eleven"
       SmallOnes(12) = "Twelve"
       SmallOnes(13) = "Thirteen"
       SmallOnes(14) = "Fourteen"
       SmallOnes(15) = "Fifteen"
       SmallOnes(16) = "Sixteen"
       SmallOnes(17) = "Seventeen"
       SmallOnes(18) = "Eighteen"
       SmallOnes(19) = "Nineteen"

       txtAmount.Text = Format(txtAmount.Text, "000000.00")
       Dollars = Left(txtAmount.Text, 6)
       Cents = Right(txtAmount.Text, 2)

       Words = ""

       'check to make sure incoming number is not too large
       If Dollars > 999999 Then
           txtAmount.Text = "Dollar amount is too large"
           Exit Sub
       End If

       'separate the dollars into chunks
       If Dollars = 0 Then
           Words = "Zero"
       Else

           'first do the thousands
  'I get error on chunk and left-----> Chunk = Left(Dollars, 3)
           If CDbl Chunk > 0 Then
 'And here---->    ParseChunk()
               Words = Words & " Thousand"
           End If

           'do the rest of the dollars
           Chunk = Right(Dollars, 3)
           If CDbl Chunk > 0 Then
               ParseChunk()
           End If
       End If

       'concatenate the cents and display
       If Cents = 0 Then Cents = "No"
       Words = Words & " and " & Cents & "/100"
       txtWrite.Text = Words
       Exit Sub


ParseChunk:
       Digits = Mid(Chunk, 1, 1)
       If Digits > 0 Then
           Words = Words & " " & SmallOnes(Digits) & " Hundred"
       End If
       Digits = Mid(Chunk, 2, 2)
       If Digits > 19 Then
           LeftDigit = Mid(Chunk, 2, 1)
           RightDigit = Mid(Chunk, 3, 1)
           Words = Words & " " & BigOnes(LeftDigit)
           If RightDigit > 0 Then
               Words = Words & " " & SmallOnes(RightDigit)
           End If
       Else
           If Digits > 0 Then
               Words = Words & " " & SmallOnes(Digits)
           End If
       End If
       Return
       Label3.Visible = True
   End Sub




End Class

  • Administrators
Posted

It looks like a lot of VB6 code that hasn't been ported to .Net properly. Functions like Left, right will fail because the need to be refered as Microsoft.Visualbasic.Left etc.

In fact they are really only there for compatability and should be replaced with the .Net equivalents (Substring will replace both).

Also all the conversion functions should use the .Net equivalents rather then the VB6 ones - CShort etc

Posting Guidelines FAQ Post Formatting

 

Intellectuals solve problems; geniuses prevent them.

-- Albert Einstein

Posted
Thanks for the reply. I tried to recreate a program I found that was written in VB6 it converts numbers to words like 1= one and so on but as you can see I wasn�t very successful. Would anyone like to help?????????????
  • Leaders
Posted

Convert.ToDouble(Chunk) will convert the value to a double.

 

But, you *need* to make ParseChunk a subroutine, and not a code label. To get to the label, you would have to use GoSub.

Iceplug, USN

One of my coworkers thinks that I believe that drawing bullets is the most efficient way of drawing bullets. Whatever!!! :-(

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...