En idioma alemán, los separadores decimales son, y los separadores de valores son ";" . En inglés/otros idiomas, los separadores decimales son. y los valores de separadores son ",".escribiendo un archivo .csv - independiente de la cultura
Quiero crear un archivo .csv independiente de la cultura actual. Quiero decir que siempre el archivo .csv debería tener "." tiene separadores decimales y "," tiene separadores de valores.
El código para esto se proporciona a continuación.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Globalization;
namespace CSV_FILE_FORMAT
{
class Program
{
static void Main(string[] args)
{
string aFileName = "result.csv";
FileStream aFileStream = new FileStream(aFileName, FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None);
StreamWriter m_StreamWriter = new StreamWriter(aFileStream);
double[] values = new double[] { 10.5, 20.3, 30.2 };
for(int i = 0; i < values.Length;i++)
{
m_StreamWriter.Write(values[i].ToString(CultureInfo.InvariantCulture));
m_StreamWriter.Write(",");
}
}
}
}
El problema con este código es si el sistema operativo está en alemán. Los separadores decimales se muestran "," en lugar de ".".
Háganme saber que el código falta algo.
_ "El problema con este código es si el sistema operativo está en alemán. Los separadores decimales se muestran", "en lugar de". "." _ Eso debería evitarse mediante el uso de 'CultureInfo.InvariantCulture'. Así que debe haber algo más que aún me pase por alto. –
m_StreamWriter.Write (values [i] .ToString (CultureInfo.InvariantCulture)); Estoy usando culture.invariantculture. pero aun así no puedo obtener el valor adecuado. – Raghav55
El código proporcionado funciona bien (excepto para cerrar los recursos ;-)) en un sistema operativo alemán (Windows 7) y los dobles están formateados con un punto "." como se esperaba por los comentarios. Incluso si las configuraciones de cultivo están configuradas en ",". –