C#でCSV形式のTXTファイルを変換しようとしています。私はC#の基本だけを知っています。私はこのテーマについて少しお読みになり、ここで私がFileHelpersでそれを行うことができるStack Overflowについて見つけました。私はこのようなクラス建て固定幅のテキストファイル
14863 0001 t0001991.jpg p0001991.jpg 0007 ALFA ROMEO Sprint (1985 - 1989) Sprint V14010120309
14864 0001 t0001991.jpg p0001991.jpg 0007 ALFA ROMEO Sprint (1985 - 1989) Sprint V14010120310
14865 0001 t0001991.jpg p0001991.jpg 0007 ALFA ROMEO Sprint (1985 - 1989) Sprint V14010120305
:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FileHelpers;
namespace ConvertTXT
{
[FixedLengthRecord()]
public class ptMedia
{
[FieldFixedLength(5)]
//[FieldTrim(TrimMode.Both)]
public int id1;
[FieldFixedLength(4)]
[FieldTrim(TrimMode.Both)]
public String id2;
[FieldFixedLength(12)]
[FieldTrim(TrimMode.Both)]
public string file1;
[FieldFixedLength(12)]
[FieldTrim(TrimMode.Both)]
public string file2;
[FieldFixedLength(4)]
[FieldTrim(TrimMode.Both)]
public int id3;
[FieldFixedLength(40)]
[FieldTrim(TrimMode.Both)]
public string brand;
[FieldFixedLength(12)]
[FieldTrim(TrimMode.Both)]
public int id4;
}
}
をそして、私のメインクラスのために、私は、この持っている:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FileHelpers;
namespace ConvertTXT
{
class Program
{
static void Main(string[] args)
{
var engine = new FixedFileEngine<ptMedia>();
ptMedia[] result = engine.ReadFile("h:\\PT-media.txt");
foreach (var detail in result)
Console.WriteLine("ID1: {0}, ID2: {1}, File1: {2}, File2: {3}, ID3: {4}, Veiculo: {5}, ID4: {6}",detail.id1, detail.id2, detail.file1, detail.file2, detail.id3, detail.brand, detail.id4);
Console.ReadLine();
}
}
}
を
マイソースtxtファイルは、この形式でありますコードを実行しようとするたびに、エラーが表示されます。
Additional information: Line: 1 Column: 37. Not value found for the value type field: 'id3' Class: 'ptMedia'. You must use the [FieldNullValue] attribute because this is a value type and can't be null or use a Nullable Type instead of the current type.
あなたの情報は、テキストファイルの正しい長さですか? – Eminem