[2 days left] What’s wrong with your cloud strategy? Learn why multicloud solutions matter with Nimble Storage.Register Now

x
?
Solved

Saving and Restoring Application Settings

Posted on 2010-11-17
16
Medium Priority
?
305 Views
Last Modified: 2013-12-17
Hi,

Does someone has an example for me:
How to read and write application-settings to ini-file.

Greetings,

Peter Kiers
0
Comment
Question by:peterkiers
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 10
  • 3
  • 2
  • +1
16 Comments
 
LVL 52

Expert Comment

by:Carl Tawn
ID: 34153605
Do you specifically want to use an ini file, or do you just want to store settings? If it's the latter then you can use the built-in settings feature:

     http://msdn.microsoft.com/en-us/library/aa730869(VS.80).aspx
0
 
LVL 1

Author Comment

by:peterkiers
ID: 34153634
Use a ini file
0
 
LVL 1

Author Comment

by:peterkiers
ID: 34153707
This is a delphi line:

SettingsFile := ChangeFileExt(Application.ExeName, '.ini');

can someone translate this to C#

Peter
0
Veeam Task Manager for Hyper-V

Task Manager for Hyper-V provides critical information that allows you to monitor Hyper-V performance by displaying real-time views of CPU and memory at the individual VM-level, so you can quickly identify which VMs are using host resources.

 
LVL 52

Accepted Solution

by:
Carl Tawn earned 1600 total points
ID: 34153733
That would be:

string settingsFile = string.Concat(System.IO.Path.GetFileNameWithoutExtension(Application.ExecutablePath), ".ini");

Open in new window

0
 
LVL 1

Author Comment

by:peterkiers
ID: 34153752
Oke, now how to read and write to ini-file

Greetings,

Peter
0
 
LVL 7

Assisted Solution

by:mkobrin
mkobrin earned 200 total points
ID: 34153763
I use a third party component called AMS Profile for my config settings. Very easy to use.

http://www.codeproject.com/KB/cs/readwritexmlini.aspx
0
 
LVL 1

Author Comment

by:peterkiers
ID: 34153781
I don't want to use third party components.

P
0
 
LVL 52

Expert Comment

by:Carl Tawn
ID: 34153812
Assuming you are storing them as name/value pairs, you can load all of your settings into a Dictionary:

Dictionary<string, string> configSettings = new Dictionary<string, string>();

string[] lines = File.ReadAllLines("Your_Config_File");
foreach (string line in lines)
{
       string[] arr = line.Split(new char[] { '=' });
       configSettings.Add(arr[0], arr[1]);
}

Open in new window

0
 
LVL 70

Assisted Solution

by:Éric Moreau
Éric Moreau earned 200 total points
ID: 34153824
0
 
LVL 1

Author Comment

by:peterkiers
ID: 34153838
Do you have an example in C#?

P
0
 
LVL 1

Author Comment

by:peterkiers
ID: 34153854
Oke, Can someone tell me how to declare this:

[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string strSection, string strKeys,string myVal,string theFile);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string strSection, string strKeys, string myDef, StringBuilder theReturnedValue, int varSize, string theFile);
0
 
LVL 1

Author Comment

by:peterkiers
ID: 34153915
I have this but I get an error:

The type or namespace name 'DllImport' could not be found (are you missing a using directive or an assembly reference?)      

P.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace iniFile
{
    public partial class Form1 : Form
    {

    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);


        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            string settingsFile = string.Concat(System.IO.Path.GetFileNameWithoutExtension(Application.ExecutablePath), ".ini");
         //   LoadSettings();
        }


    }
}

Open in new window

0
 
LVL 70

Expert Comment

by:Éric Moreau
ID: 34153930
0
 
LVL 1

Author Comment

by:peterkiers
ID: 34153948
Yeh, I have allready found that too. Could you please look at my last post
with the declaration of the two methods which are necessary to access an INI File.
0
 
LVL 1

Author Comment

by:peterkiers
ID: 34154058
I quess nobody knows the answer to my problem.
0
 
LVL 1

Author Comment

by:peterkiers
ID: 34154072
This was the answer: using System.Runtime.InteropServices;
0

Featured Post

NFR key for Veeam Agent for Linux

Veeam is happy to provide a free NFR license for one year.  It allows for the non‑production use and valid for five workstations and two servers. Veeam Agent for Linux is a simple backup tool for your Linux installations, both on‑premises and in the public cloud.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
Have you created a query with information for a calendar? ... and then, abra-cadabra, the calendar is done?! I am going to show you how to make that happen. Visualize your data!  ... really see it To use the code to create a calendar from a q…
Is your data getting by on basic protection measures? In today’s climate of debilitating malware and ransomware—like WannaCry—that may not be enough. You need to establish more than basics, like a recovery plan that protects both data and endpoints.…

649 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question