Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何读取ini文件的节值和详细信息,然后进行循环c#_C#_Ini - Fatal编程技术网

如何读取ini文件的节值和详细信息,然后进行循环c#

如何读取ini文件的节值和详细信息,然后进行循环c#,c#,ini,C#,Ini,我已经仔细地看了一下这里,但还没有完全找到我要找的东西。我正在阅读一个ini文件,使用我的ini类,我可以调用每个部分以及所有键和值,但是我对部分[Races]有一个问题。当它显示IOM=7和UK=6时,我想调用键IOM和for循环,通过races 1-6,并对该部分中的任何其他键值对执行相同的操作。这是我的密码 List<string> PlacesList= new List<string>(); List<string> PositionsList= n

我已经仔细地看了一下这里,但还没有完全找到我要找的东西。我正在阅读一个ini文件,使用我的ini类,我可以调用每个部分以及所有键和值,但是我对部分[Races]有一个问题。当它显示IOM=7和UK=6时,我想调用键IOM和for循环,通过races 1-6,并对该部分中的任何其他键值对执行相同的操作。这是我的密码

List<string> PlacesList= new List<string>();
List<string> PositionsList= new List<string>();
public void btnReadini_Click(object sender, EventArgs e)
{
PlacesList = ListEntries("Places");
PositionsList = ListEntries("Positions");
}

public List<string> ListEntries(string sectionName)
{
IniFile INI = new IniFile(@"C:\Races.ini");
List<string> entries = null;
string[] Entry = INI.GetEntryKeyNames(sectionName);
if (Entry != null)
{
    entries = new List<string>();

    foreach (string EntName in Entry)
    {
        entries.Add(EntName + "=" + INI.GetEntryKeyValue(sectionName, EntName));
    }
}

return entries;
}
我知道我需要像这样在1-7场比赛中循环:

For(int i = 1; i < 7) i++)
foreach (IOM Isle of man)
{
for( 1 - 7)
{
foreach(Win - Fourth)
{
 listBox1.Items.Add(the result of the above);
}
}
}
List<Place> placeList = new List<Place>();
public class Place
{
private string _Program;
    private string _Name;
    public int _NoOfRaces
    { get; set; }

    public string Program
    { get { return _Program; } }

    public string Name
    { get { return _Name; } }

    public Place(string pKey, string pValue)
    {
        _Program = pKey;
        _Name = pValue;
    }

    public void setNoOfRaces(int pRaces)
    {
        _NoOfRaces = pRaces;
    }
}
IOM Win 1
IOM second 1
IOM Third 1
IOM Fourth 1
IOM Win 2
IOM second 2
IOM Third 2
IOM Fourth 2

下面是如何迭代所有部分和所有部分的键:

IniFile ini = new IniFile();
ini.Load("path to your .ini file ...");

foreach (IniSection section in ini.Sections)
{
    foreach (IniKey key in section.Keys)
    {
        string sectionName = section.Name;
        string keyName = key.Name;
        string keyValue = key.Value;

        // Do something ...
    }
}

下面是如何迭代所有部分和所有部分的键:

IniFile ini = new IniFile();
ini.Load("path to your .ini file ...");

foreach (IniSection section in ini.Sections)
{
    foreach (IniKey key in section.Keys)
    {
        string sectionName = section.Name;
        string keyName = key.Name;
        string keyValue = key.Value;

        // Do something ...
    }
}

我通过创建一个places类对其进行排序,在places类中,我创建了一个名为noOfRaces的方法。当我在代码中使用该函数时,它如下所示:

For(int i = 1; i < 7) i++)
foreach (IOM Isle of man)
{
for( 1 - 7)
{
foreach(Win - Fourth)
{
 listBox1.Items.Add(the result of the above);
}
}
}
List<Place> placeList = new List<Place>();
public class Place
{
private string _Program;
    private string _Name;
    public int _NoOfRaces
    { get; set; }

    public string Program
    { get { return _Program; } }

    public string Name
    { get { return _Name; } }

    public Place(string pKey, string pValue)
    {
        _Program = pKey;
        _Name = pValue;
    }

    public void setNoOfRaces(int pRaces)
    {
        _NoOfRaces = pRaces;
    }
}
IOM Win 1
IOM second 1
IOM Third 1
IOM Fourth 1
IOM Win 2
IOM second 2
IOM Third 2
IOM Fourth 2
一直到国际移民组织7号
英国一直到第六名。通过使用函数ican for loop遍历ini中的所有比赛。

我通过创建一个位置类对其进行排序,在位置类中,我创建了一个名为noOfRaces的方法。当我在代码中使用该函数时,它如下所示:

For(int i = 1; i < 7) i++)
foreach (IOM Isle of man)
{
for( 1 - 7)
{
foreach(Win - Fourth)
{
 listBox1.Items.Add(the result of the above);
}
}
}
List<Place> placeList = new List<Place>();
public class Place
{
private string _Program;
    private string _Name;
    public int _NoOfRaces
    { get; set; }

    public string Program
    { get { return _Program; } }

    public string Name
    { get { return _Name; } }

    public Place(string pKey, string pValue)
    {
        _Program = pKey;
        _Name = pValue;
    }

    public void setNoOfRaces(int pRaces)
    {
        _NoOfRaces = pRaces;
    }
}
IOM Win 1
IOM second 1
IOM Third 1
IOM Fourth 1
IOM Win 2
IOM second 2
IOM Third 2
IOM Fourth 2
一直到国际移民组织7号
英国一直到第六名。通过使用函数ican for loop遍历ini中的所有比赛。

我真的建议使用XML文件代替,使用Linq to XML之类的东西,I/o和迭代要简单得多。PrivateProfile API在幕后非常可怕。我不完全理解这个问题。我在你的ini文件中看不到那6场比赛。你想迭代什么?嗨,Rene,当我读文件时,它说是6或7场比赛,而不是写在ini文件中,IOM 1,IOM 2,IOM 3等等,它只是说IOM 7。这意味着在IOM中有七场比赛,但如果我只是读取值并正常输入,我将只看到IOM 7。因此,我需要以某种方式让我的代码理解,如果ini显示IOM7,它需要检查种族1-7。我希望这有点道理。我不使用XML,因为ini文件更容易用信息手动更新。根据您刚才提供的解释,我将加入@AlexK。说你应该研究使用XML。Ini文件非常适合初始化单个参数。您试图将一个复杂的数据结构放入一个简单的参数列表中。虽然从技术上讲不是不可能的,但这是不必要的复杂。使用XML可以让您不必考虑巧妙的技巧来绕过INI文件的限制。我真的建议您使用XML文件,而使用Linq to XML之类的工具,I/o和迭代要简单得多。PrivateProfile API在幕后非常可怕。我不完全理解这个问题。我在你的ini文件中看不到那6场比赛。你想迭代什么?嗨,Rene,当我读文件时,它说是6或7场比赛,而不是写在ini文件中,IOM 1,IOM 2,IOM 3等等,它只是说IOM 7。这意味着在IOM中有七场比赛,但如果我只是读取值并正常输入,我将只看到IOM 7。因此,我需要以某种方式让我的代码理解,如果ini显示IOM7,它需要检查种族1-7。我希望这有点道理。我不使用XML,因为ini文件更容易用信息手动更新。根据您刚才提供的解释,我将加入@AlexK。说你应该研究使用XML。Ini文件非常适合初始化单个参数。您试图将一个复杂的数据结构放入一个简单的参数列表中。虽然从技术上讲不是不可能的,但这是不必要的复杂。使用XML,您不必考虑巧妙的技巧来绕过INI文件的限制。