codice di seguito viene utilizzata per leggere file di testo il contenuto del file caricato larghezza fissa utilizzando FileHelpers in ASP .NET MVC2FileHelpers: come ignorare prima e ultima linea la lettura del testo a larghezza fissa
Prima e lunghezze ultima linea sono più piccoli e le cause ReadStream eccezione dovuta a questo. Tutte le altre linee hanno una larghezza fissa adeguata. Come saltare la prima e l'ultima riga o altro modo di leggere i dati senza eccezioni?
[FixedLengthRecord()]
class Bank
{
[FieldFixedLength(4)]
public string AINETUNNUS;
[FieldFixedLength(16)]
public string TEKST1;
[FieldFixedLength(3)]
public string opliik;
[FieldFixedLength(2)]
public string hinnalis;
};
[AcceptVerbs(HttpVerbs.Post)]
[Authorize]
public ActionResult LoadStatement(HttpPostedFileBase uploadFile)
{
FileHelperEngine engine = new FileHelperEngine(typeof(Bank));
var res = engine.ReadStream(new StreamReader(uploadFile.InputStream,
Encoding.GetEncoding(1257))) as Bank[];
}
Grazie. In realtà i file possono essere in due formati diversi: larghezza fissa come descritto nella domanda e in formato record in cui ogni campo è in una riga separata. I campi sono anche diversi nei due formati, quindi dovrebbero essere utilizzate due diverse modalità di lettura. Il formato a larghezza fissa contiene sempre "VV" all'inizio di ogni riga. Come esaminare lo stream prima di leggere e applicare una modalità di lettura diversa a seconda del formato? – Andrus
Come ignorarePrima/IgnoraLast su richiesta anziché in Classe? – zerohero
engine.Options.IgnoreFirstLines = 1 – zerohero