Bir TXT dosyasını C# içinde bir CSV'ye dönüştürmeye çalışıyorum. Sadece C# nin temellerini biliyorum. Konuyu biraz okudum ve FileHelpers ile yapabildiğim Stack Overflow üzerinde buldum. Ben Bu gibi bir Class inşaSabit Genişliğe Sahip Metin Dosyası
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;
}
}
Ve benim ana sınıf için bu var:
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();
}
}
}
Kaynağım txt dosyası bu biçimi ile olan ama her zaman kodumu çalıştırmaya çalıştığımda bir hata alıyorum:
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.
Bilgileriniz metin dosyanızda doğru uzunlukta mı? – Eminem