次の形式の情報を含むテキスト ファイルがあります。
1 1.2323232 2.2356 4.232 1.23664
2 1.344545
3 6.2356 7.56455212
etc....
C# でファイルを読み取り、配列に解析してから処理を行うにはどうすればよいですか?
次の形式の情報を含むテキスト ファイルがあります。
1 1.2323232 2.2356 4.232 1.23664
2 1.344545
3 6.2356 7.56455212
etc....
C# でファイルを読み取り、配列に解析してから処理を行うにはどうすればよいですか?
ファイル ヘルパーを使用します。
たとえば。必要なのは、レコードの解析を次のように定義することだけです。
[DelimitedRecord("|")]
public class Orders
{
public int OrderID;
public string CustomerID;
[FieldConverter(ConverterKind.Date, "ddMMyyyy")] public DateTime OrderDate;
public decimal Freight;
}
そして、次のようにファイルを読み込みます:
FileHelperEngine engine = new FileHelperEngine(typeof(Orders));
// to Read use:
Orders[] res = engine.ReadFile("TestIn.txt") as Orders[];
// to Write use:
engine.WriteFile("TestOut.txt", res);
区切り文字を変更して" "
、メンバー タイプを適切に更新することもできます。
あなたのコードは、1 番目の位置に ID 値があるように見えます。というわけで、サンプルコードを作成しました。
private List<MyValues> Read(string fileName)
{
var result = new List<MyValues>();
var line = new string[] { };
using (StreamReader sr = new StreamReader(fileName))
{
while (sr.Peek() > -1)
{
line = sr.ReadLine().Trim().Split(' ');
var val = new MyValues();
val.Id = Convert.ToInt32(line.ElementAt(0));
for (int n = 1; n < line.Count(); n++)
{
val.Values.Add(Convert.ToDouble(line[n]));
}
result.Add(val);
}
}
return result;
}
class MyValues
{
public int Id = 0;
public List<double> Values = new List<double>();
}