» »

Problem z INI datoteko

Problem z INI datoteko

KernelPanic ::

Spoptovani!

Imam težavo z ini datoteko, ki vsebuje informacije o aplikacijo, ki jo pišem za podjetje, v katerem delam. Namreč, v tej datoteki so zapečeni parametri za "rokovanje" z serijskim portom ter podatki za povezovanje z bazo podatkov. Koda je sledeča:
            //// **** SERIAL PORT PARAMETERS READ
            this.m_ConfigurationFile = new Ini.IniFile(AccuLoadIIIMonitor.FactorySettings.IniFile.SETTINGS_FILE_NAME);

            FileInfo fi = new FileInfo(this.m_ConfigurationFile.path.ToString());

            this.m_strComPort = this.m_ConfigurationFile.IniReadValue(AccuLoadIIIMonitor.FactorySettings.IniFile.SECTION_SERIAL_PORT,
                AccuLoadIIIMonitor.FactorySettings.IniFile.KEY_SP_NAME);
            this.m_strBaudRate = this.m_ConfigurationFile.IniReadValue(AccuLoadIIIMonitor.FactorySettings.IniFile.SECTION_SERIAL_PORT,
                AccuLoadIIIMonitor.FactorySettings.IniFile.KEY_SP_BAUDRATE);
            this.m_strDataBits = this.m_ConfigurationFile.IniReadValue(AccuLoadIIIMonitor.FactorySettings.IniFile.SECTION_SERIAL_PORT,
                AccuLoadIIIMonitor.FactorySettings.IniFile.KEY_SP_DATABITS);
            this.m_strParity = this.m_ConfigurationFile.IniReadValue(AccuLoadIIIMonitor.FactorySettings.IniFile.SECTION_SERIAL_PORT,
                AccuLoadIIIMonitor.FactorySettings.IniFile.KEY_SP_PARITY);
            this.m_strStopBits = this.m_ConfigurationFile.IniReadValue(AccuLoadIIIMonitor.FactorySettings.IniFile.SECTION_SERIAL_PORT,
                AccuLoadIIIMonitor.FactorySettings.IniFile.KEY_SP_STOPBITS);
            // **** END OF SERIAL PORT PARAMETERS READ
FileInfo mi potrdi, da odpiram pravo datoteko (to je bil moj prvi sum), nato so pa stringi prazni. Vsebina INI datoteke je sledeča:
[SERIALPORT]
Name=COM3
BaudRate=38400
DataBits=8
StopBits=1
Parity=N
Na koncu dodajam se class, ki skrbi za INI datoteke:
using System;
using System.Runtime.InteropServices;
using System.Text;

namespace Ini
{
    /// <summary>

    /// Create a New INI file to store or load data

    /// </summary>

    public class IniFile
    {
        public string path;

        [DllImport("kernel32")]
        private static extern long WritePrivateProfileString(string section,
            string key, string val, string filePath);
        [DllImport("kernel32")]
        private static extern int GetPrivateProfileString(string section,
                 string key, string def, StringBuilder retVal,
            int size, string filePath);

        /// <summary>

        /// INIFile Constructor.

        /// </summary>

        /// <PARAM name="INIPath"></PARAM>

        public IniFile(string INIPath)
        {
            path = INIPath;
        }
        /// <summary>

        /// Write Data to the INI File

        /// </summary>

        /// <PARAM name="Section"></PARAM>

        /// Section name

        /// <PARAM name="Key"></PARAM>

        /// Key Name

        /// <PARAM name="Value"></PARAM>

        /// Value Name

        public void IniWriteValue(string Section,
            string Key,
            string Value)
        {
            WritePrivateProfileString(Section,
                Key,
                Value,
                this.path);
        }

        /// <summary>

        /// Read Data Value From the Ini File

        /// </summary>

        /// <PARAM name="Section"></PARAM>

        /// <PARAM name="Key"></PARAM>

        /// <PARAM name="Path"></PARAM>

        /// <returns></returns>

        public string IniReadValue(string Section,
            string Key)
        {
            StringBuilder temp = new StringBuilder(255);
            int i = GetPrivateProfileString(Section, Key, "", temp,
                                            255, this.path);
            return temp.ToString();

        }
    }
}
Mi lahko kdo pomaga, zakaj v kodi dobim prazne stringe namesto vrednosti za povezavo z serijskim portom?

S spostovanjem,
M.

Vesoljc ::

ce das v GetPrivateProfileString namesto "" tole "lalalalala" dobis ta string v tempu? kolk je pa i?
Abnormal behavior of abnormal brain makes me normal...

KernelPanic ::

Vesoljc je izjavil:

ce das v GetPrivateProfileString namesto "" tole "lalalalala" dobis ta string v tempu? kolk je pa i?
Hvala za napotek, zelo je bil koristen, odpravil sem hroscka. :D Namrec, v fileinfo sem sicer dobil pravilno pot, v konstruktor ini file objekta sem pa rinil samo filename, brez trenutne poti aplikacije in zato iskanih vrednosti ni nasel. :D Bumbar jaz. :D

Hvala vsem za pomoc in se slisimo ob naslednjem problemu, potem bo pa treba pocasi dat za gajbo pira. :D (ko gre zena k starsem za 14 dni :D:)):D)


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

[c#] Vprašanje glede release verzije aplikacije

Oddelek: Programiranje
51457 (1281) Ericssony
»

Vprasanje glede Visual Studio 2010 Ultimate - vec projektov v solution-u

Oddelek: Programiranje
5651 (530) Vesoljc
»

Tezava pri instanciranju class-a

Oddelek: Programiranje
61262 (1133) KernelPanic
»

[VC++] Uporaba INI fajla v isti mapi kot exe ?

Oddelek: Programiranje
121239 (1093) Person
»

Nalaganje nastavitev iz tekstovne datoteke [vodič]

Oddelek: Programiranje
81001 (844) Vesoljc

Več podobnih tem