2013-09-07

I have encountered a block in my programming escapade. The project that I am working on is from a visual basic 6.0 programming book and is a program that opens a data file filled with roman numerals, read to end of file, and outputs the numerals digit form, performs a mathematical operator on them, and then display output. I am also employing the use of subfunctions/subroutines to better organize my program. Below are my subs.

ReadRoman - Reads a string which represents a Roman Number, calls GetDigit to convert this Roman Digit into a decimal number, adds this decimal number to the value of the roman number.

GetDigit = Takes a roman digit and returns the decimal value to the caller.

Calculate - Takes the decimal equivalent of both Roman numbers and the operator and computes their combined result. Uses WriteRoman to display the last line of output.

WriteRoman - Takes a decimal number and converts it into a Roman Nubmer. Calls Writedigit in order to accomplish the above.

WriteDigit - Print a Roman Digit

To better explain it, I have included the data file as well as a little preview of what I would like to output.

Output

The First Numer is 1226

The second number is 68

The Operation is +

MCCXXVI + LXVIII = MCCLXXXXIIII (1294)

The DAT file is organized as seen below.Attachment 104365

(Start of File)

MCCXXVI

LXVIII

+

MCCXXVI

LXVIII

-

MCCXXVI

XVII

*

DCI

L

MDCIIII

L

*

CCCC

XXXX

-

(End of File)

Here is the code that I have so far. (I apologize for pastebin link, had trouble attempting to embed into this post)

http://pastebin.com/NtV4tbzZ

Expand|Select|Wrap|Line Numbers

Dim numerals As String

Private Function ReadRoman()

End Function

Private Function GetDigit(ByVal Num As String) As Integer

 Select Case Num

    Case "I"

        GetDigit = 1

    Case "V"

        GetDigit = 5

    Case "X"

        GetDigit = 10

    Case "L"

        GetDigit = 50

    Case "C"

        GetDigit = 100

    Case "D"

        GetDigit = 500

    Case "M"

        GetDigit = 1000

End Select

End Function

 

Private Function WriteRoman()

Call WriteDigit

output.Print Number

End Function

Private Function WriteDigit()

output.Print numerals

End Function

 

Private Sub calculate_Click()

Input #1, numerals

For i = 1 To Len(numerals)

End Sub

 

Private Sub Form_Load()

'open file

Open App.Path & "\numerals.dat" For Input As #1

'Do While Not EOF(1)

End Sub

 

Thank you for your time, and I apologize for any grammatical errors and lack of programming experience.

Show more