配列として格納し、次の行読み込まれるまで:読むの条件が満たされて、私は現在、次の形式の外に存在するconfファイルを持っている
[client]
person1,person2,person3,person4
[employee]
emp1,emp2,emp3,mp4
などなどを。今度は、[employee]という行の後に来るデータを格納して配列に格納するためにファイルを読む必要があります。迅速な案として
配列として格納し、次の行読み込まれるまで:読むの条件が満たされて、私は現在、次の形式の外に存在するconfファイルを持っている
[client]
person1,person2,person3,person4
[employee]
emp1,emp2,emp3,mp4
などなどを。今度は、[employee]という行の後に来るデータを格納して配列に格納するためにファイルを読む必要があります。迅速な案として
、このような何かしてみてください:ファイルの読み取り
static class SubstringExtensions
{
/// <summary>
/// Get string value after [last] a.
/// </summary>
public static string After(this string value, string a)
{
int posA = value.LastIndexOf(a);
if (posA == -1)
{
return "";
}
int adjustedPosA = posA + a.Length;
if (adjustedPosA >= value.Length)
{
return "";
}
return value.Substring(adjustedPosA);
}
}
:
string[] readAllLines = File.ReadAllLines("path/to/file");
for (int i = 0; i < readAllLines.Length-1; i++)
{
if (readAllLines[i].StartsWith("[employee]"))
{
string[] employees = readAllLines[i + 1].Split(',');
// Do something
}
}
[]でインデックス付けを 'int'型の式に適用できません – DW24da
エラーが自分のコードから来ているように見えません。とにかく少しそれを微調整。私はあなたの例でそれをテストし、それは動作します。 –
未テストコードを
System.IO.StreamReader myFile = new System.IO.StreamReader("c:\\test.txt");
string myString = myFile.ReadToEnd();
myFile.Close();
string[] split = myString.After("[employee]").Split(',');
は、最もクールなまたはエレガントな方法を、あなたがそれを記述した方法は、このように動作します。
StreamReader reader = new StreamReader("path to your config file");
string text = reader.ReadToEnd();
text = text.Substring(text.IndexOf("[employee]"), 25);
text = text.Replace("[employee]\r\n", "");
string[] array = text.Split(',');
魅力のように見えますが、ファイルの最後まで読んで、[リモート]とテキストをリモートで表示し続けます。 – DW24da
私は自分の答えを編集しました。 – gabsferreira
何が問題なのですか? – leppie
質問を詳しく説明できますか? –
はこのファイルです。偶然に.INIファイルです..? – MethodMan