Hello,
I am new to programming. The following script needs to be converted from VBA to Visual Basic 2005.
Dim fileName1 = InputBox("Enter filename for filtering")
fileName2 = InputBox("Enter filename for output")
Open fileName1 For Input As #1
Open fileName2 For Output As #2
Do
Input #1, Data1 ' Gets number
Input #1, Data2 ' Gets name
Input #1, Data3 ' Gets model
Input #1, Data4 ' Gets description
Input #1, Data5 ' Gets interval
If Data5 = "0" Then Data6 = "a"
If Data5 = "1" Then Data6 = "b"
If Data5 = "2" Then Data6 = "c"
If Data5 = "3" Then Data6 = "d"
If Data5 = "4" Then Data6 = "e"
If Data5 = "5" Then Data6 = "f"
Print #2, Data1 & "," & Data2 & "," & Data3 & "," & Data4 & "," & Data6
Loop While Not EOF(1)
Close #1
Close #2
Is there someone who can help me with this

Newby: Need help converting VBA script to VB 2005
Laser Lu
The script is working fine. I now want to use openfiledialog to let users brows to the file the want to open. How can I do this
In Visual Studio Beta 2005 there is a openfiledialog but I don't know how to use it.
Hope you can help me.
Mark Benningfield
I didn't try this code, but used that namespace as example.
Please note however, that this way of doing it isn't really recomended, but since it's what you asked for...
Private Sub DoFile()
Dim fileName1 As String = InputBox("Enter filename for filtering")
Dim fileName2 As String = InputBox("Enter filename for output")
Dim Data1, Data2, Data3, Data4, Data5, Data6 As String
Try
Microsoft.VisualBasic.FileOpen(1, fileName1, OpenMode.Input)
Microsoft.VisualBasic.FileOpen(2, fileName2, OpenMode.Output)
Do
Microsoft.VisualBasic.Input(1, Data1)
Microsoft.VisualBasic.Input(1, Data2)
Microsoft.VisualBasic.Input(1, Data3)
Microsoft.VisualBasic.Input(1, Data4)
Microsoft.VisualBasic.Input(1, Data6)
Select Case Data5
Case "0"
Data6 = "a"
Case "1"
Data6 = "b"
Case "2"
Data6 = "c"
Case "3"
Data6 = "d"
Case "4"
Data6 = "e"
Case "5"
Data6 = "f"
Case Else
MsgBox("Error reading file")
Microsoft.VisualBasic.FileClose(1)
Microsoft.VisualBasic.FileClose(2)
Exit Sub
End Select
Microsoft.VisualBasic.Print(2, Data1 & "," & Data2 & "," & Data3 & "," & Data4 & "," & Data6)
Loop While Not Microsoft.VisualBasic.EOF(1)
Catch ex As IO.IOException
MsgBox("Error:" & vbNewLine & ex.ToString)
End Try
Microsoft.VisualBasic.FileClose(1)
Microsoft.VisualBasic.FileClose(2)
End Sub
al123
In what format must the input file be filled
You said that this is not the right way to doing it, what is the right way
Cordell Swannack
anyways, i would do it like this....
The file being read would look like this....
00number|0name|0model|0description|0interval|0
11number|1name|1model|1description|1interval|1
22number|2name|2model|2description|2interval|2
33number|3name|3model|3description|3interval|3
44number|4name|4model|4description|4nterval|4
55number|5name|5model|5description|5nterval|5
My code as follows
Dim sFileIn, sFileOut As String
Dim sItems As String()
Dim FileReader As IO.StreamReader = Nothing
Dim FileWriter As IO.StreamWriter = Nothing
sFileIn = InputBox("Enter File in")
sFileOut = InputBox("Enter File in")
Try
FileReader = IO.File.OpenText(sFileIn)
FileWriter = IO.File.CreateText(sFileOut)
Do Until FileReader.EndOfStream
sItems = FileReader.ReadLine().Split(New Char() {"|"})
Select Case sItems(sItems.GetUpperBound(0))
Case "0"
sItems(sItems.GetUpperBound(0)) = "a"
Case "1"
sItems(sItems.GetUpperBound(0)) = "b"
Case "2"
sItems(sItems.GetUpperBound(0)) = "c"
Case "3"
sItems(sItems.GetUpperBound(0)) = "d"
Case "4"
sItems(sItems.GetUpperBound(0)) = "e"
Case "5"
sItems(sItems.GetUpperBound(0)) = "f"
End Select
FileWriter.Write(String.Join("|", sItems) & vbNewLine)
Loop
Catch ex As IO.IOException
MsgBox("Error:" & vbNewLine & ex.ToString)
End Try
FileReader.Close()
FileWriter.Close()
I ran this, and got the following output..
00number|0name|0model|0description|0interval|a
11number|1name|1model|1description|1interval|b
22number|2name|2model|2description|2interval|c
33number|3name|3model|3description|3interval|d
44number|4name|4model|4description|4nterval|e
55number|5name|5model|5description|5nterval|f
I used the Pipe character | as the delimter, but you can easily switch it to somthing else if you are using a different delimiter.
Dustin.
UsmanTahir
Here's sample code to use it. You'll have to edit it to match your file extensions and such... This code assumes the control is called OpenFileDialog1, and that the code is being called from the form.
the section that says .ShowDialog(Me) the (ME) means that the dialog owner is the callign form. You could set it to another form by using .ShowDialog(frmParentForm)
Dim sFile As String = ""
With OpenFileDialog1
.Filter = "Project files|*.zzz"
.FilterIndex = 1
.Title = "Open data file"
.FileName = ""
.ShowDialog(Me)
If .FileName = "" Then Exit Sub
sFile = .FileName
End With
Daniel Bell
Thanks for your quick anwser. I managed to fix the first script and the last script you profided works also fine.
Ed.