Click here to Skip to main content
15,885,278 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
In the latest instalment of my VB.Net adventure I need to check if the ini file is in the correct location. I have found some VB code to do the ini file reading I just need to check the file exists...So first move was a try...catch didn't work (?) I have done a similar in C# and used a try...catch in the past as below:
C#
IniFile ini = new IniFile(INIPath + "\\FieldServiceTool.ini");

        string ComBaudRate = null, ComParity = null, ComDataBits = null, ComStopBit = null, ComHandShake = null;
        try
        {
            myComPort.PortName = ini.IniReadValue("COMMS", "EUIUBOARD");
            ComBaudRate = ini.IniReadValue("COMMS", "BAUDRATE");
            myComPort.BaudRate = Convert.ToInt32(ComBaudRate);
            ComParity = ini.IniReadValue("COMMS", "PARITY");
            myComPort.Parity = (Parity)Enum.Parse(typeof(Handshake), ComParity);
            ComDataBits = ini.IniReadValue("COMMS", "DATABITS");
            myComPort.DataBits = Convert.ToInt16(ComDataBits);
            ComStopBit = ini.IniReadValue("COMMS", "STOPBITS");
            myComPort.StopBits = (StopBits)Enum.Parse(typeof(StopBits), ComStopBit);
            ComHandShake = ini.IniReadValue("COMMS", "HANDSHAKE");
            myComPort.Handshake = (Handshake)Enum.Parse(typeof(Handshake), ComHandShake);
        }
        catch
        {
            MessageBox.Show("Exception Caught: ini file not found!");

        }
Works well for C# how ever a similar in VB doesn't
VB
Try

        KeyName(1) = "ServerName"
        KeyName(2) = "DBName"
        ReadINIFile("C:\Logs\test.ini", "TEST Server", KeyName, KeyValues)
        'MessageBox.Show(KeyName(1) & " "
        'MessageBox.Show(KeyValues(1) & " " & KeyValues(2))

        KeyName(1) = "ATEComport"
        KeyName(2) = "BaudRateATE"
        ReadINIFile("C:\Logs\test.ini", "Com Port", KeyName, KeyValues)
        'MessageBox.Show("ATE ComPort = " & KeyValues(1) & "  ATE BaudRate = " & KeyValues(2))
        txtATEbaudRate.Text = KeyValues(2)
        txtATEcomPort.Text = KeyValues(1)


        KeyName(1) = "VoltMeterComPort"
        KeyName(2) = "BaudRateMeter"
        ReadINIFile("C:\Logs\test.ini", "Com Port", KeyName, KeyValues)
        ' MessageBox.Show("VoltMeter ComPort = " & KeyValues(1) & "  VoltMeter BaudRate = " & KeyValues(2))
        'txtVoltMeterComPort.Text = KeyValues(2)
        txtVoltMeterComPort.Text = KeyValues(1)
        txtVoltMeterBaudRate.Text = KeyValues(2)

        KeyName(1) = "AmeterMeterComPort"
        KeyName(2) = "BaudRateMeter"
        ReadINIFile("C:\Logs\test.ini", "Com Port", KeyName, KeyValues)
        'MessageBox.Show("AmeterMeter ComPort = " & KeyValues(1) & "  AmeterMeter BaudRate = " & KeyValues(2))
        txtAmmeterComPort.Text = KeyValues(1)
        txtAmmeterBoardRate.Text = KeyValues(2)

        KeyName(1) = "FrequencyCounterComPort"
        KeyName(2) = "BaudRateFreqencyCounter"
        ReadINIFile("C:\Logs\test.ini", "Com Port", KeyName, KeyValues)
        'MessageBox.Show("Frequency Counter ComPort = " & KeyValues(1) & "  Frequency Counter BaudRate = " & KeyValues(2))
        txtFrequencyCounterComPort.Text = KeyValues(1)
        txtFrequencyCounterBaudRate.Text = KeyValues(2)

        KeyName(1) = "SpectrumComPort"
        KeyName(2) = "BaudRateSpectrum"
        ReadINIFile("C:\Logs\test.ini", "Com Port", KeyName, KeyValues)
        ' MessageBox.Show("Spectrum Analyser ComPort = " & KeyValues(1) & "  Spectrum Analyser BaudRate = " & KeyValues(2))
        txtSpectrumComPort.Text = KeyValues(1)
        txtSpectrumBaudRate.Text = KeyValues(2)

        'KeyName(1) = "StuffA"
        'KeyName(2) = "StuffB"
        'ReadINIFile("C:\Logs\test.ini", "Test Stuff", KeyName, KeyValues)
        'MessageBox.Show("Fruit = " & KeyValues(1) & "  Fruit2 = " & KeyValues(2))
        'txtSpectrumComPort.Text = KeyValues(1)
        'txtSpectrumBaudRate.Text = KeyValues(2)
    Catch
        MsgBox("File Broken")
    End Try
I have tried encasing the line
ReadINIFile("C:\Logs\test.ini", "Com Port", KeyName, KeyValues)
in a Try...Catch
doesn't work, I have also tried to use File.Exists but I appear not to have set the file handler up properly...any ideas, anyone?
Glenn
Posted
Comments
CPallini 6-Feb-14 5:44am    
In my experience File.Exist works properly. Could you detail the misbehaviour?
glennPattonWork3 6-Feb-14 5:50am    
Well I type Fil then get the intelli-sense kicks in, so I go down the list and the closest I can get from there is FileAttr. do I need to use import for file IO?
glennPattonWork3 6-Feb-14 5:54am    
Doh! Face Palm moment again! I needed to import System.IO Sorry!

Answered only to remove from unanswered list - solved by OP!
 
Share this answer
 
Use
VB
Imports System
Imports System.IO

Bang head on desk!
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900