J'essaye de servir un fichier txt fait à partir de la base de données en utilisant une action. L'action est la suivante:asp.net mvc desservant txt est tronqué
public ActionResult ATxt()
{
var articulos = _articulosService.ObteTotsArticles();
return File(CatalegATxt.ATxt(articulos), "text/plain");
}
et la classe CatalegATxt est:
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using WebDibaelsaMVC.DTOs.Busqueda;
namespace WebDibaelsaMVC.TxtLib
{
public static class CatalegATxt
{
public static Stream ATxt(IEnumerable<ArticuloBusquedaDTO> articles)
{
var stream = new MemoryStream();
var streamWriter = new StreamWriter(stream, Encoding.UTF8);
foreach (ArticuloBusquedaDTO article in articles)
{
streamWriter.WriteLine(article.ToStringFix());
}
stream.Seek(0, SeekOrigin.Begin);
return stream;
}
public static string ToStringFix(this ArticuloBusquedaDTO article)
{
string result = "";
result += article.CodigoArticulo.PadRight(10, ' ').Substring(0, 10);
result += article.EAN.Trim().PadLeft(13, '0').Substring(0, 13);
result += article.NombreArticulo.PadRight(100, ' ').Substring(0, 100);
result += article.Marca.PadRight(100, ' ').Substring(0, 100);
result += article.Familia.PadRight(50, ' ').Substring(0, 50);
result += article.PrecioCesion.ToStringFix();
result += article.PVP.ToStringFix();
return result;
}
private static string ToStringFix(this double numero)
{
var num = (int)Math.Round(numero * 100, 0);
string result = num.ToString().PadLeft(10, '0');
return result;
}
}
}
il écrit simplement les lignes de fichiers basé sur les choses que je suis arrivé de la base de données. Mais quand je regarde le fichier, il semble tronqué. Le fichier fait environ 8Mb. J'ai également essayé de convertir en byte[]
avant de retourner d'ATxt avec le même résultat.
Une idée?
Merci,
Carles
Mise à jour: j'ai essayé aussi de servir XML du même contenu et il devient également tronqué. Il n'est pas tronqué sur les données (je pensais que c'était un caractère EOF) mais il tronque au milieu d'une étiquette ...
Q rapide, pour les tests txt et xml les tailles de fichier retournées sont-elles de la même longueur? Cela pourrait nous aider à le retrouver. – Rippo
Si vous suivez le contenu de CatelegAText.ATxt dans votre méthode ActionResult ci-dessus, contient-elle les données correctes avant de le renvoyer? – glenatron
@Rippo: Ils n'ont pas la même longueur. txt est un peu de Mb, xml est inférieur à 1 Mo. –