Trong bộ tách tiếng Đức thập phân, và bộ tách giá trị là ";" . Bằng tiếng Anh/các ngôn ngữ khác, các bộ phân tách thập phân là. và giá trị seperators là ",".ghi tệp .csv - độc lập với văn hóa
Tôi muốn tạo tệp indepedent .csv của văn hóa hiện tại. Tôi có nghĩa là luôn luôn tệp .csv phải có "." có dấu phân cách thập phân và "," có giá trị phân tách.
Mã cho điều này được cung cấp bên dưới.
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(",");
}
}
}
}
Vấn đề với mã này là nếu OS là tiếng Đức. Trình phân tách thập phân được hiển thị "," thay vì ".".
Vui lòng cho tôi biết mã thiếu cái gì đó.
_ "Vấn đề với mã này là nếu hệ điều hành là tiếng Đức. Các dấu tách thập phân được hiển thị", "thay vì". "." _ Điều đó cần được ngăn chặn bằng cách sử dụng 'CultureInfo.InvariantCulture'. Vì vậy, phải có một số khác tôi đang bỏ qua được nêu ra. –
m_StreamWriter.Write (giá trị [i] .ToString (CultureInfo.InvariantCulture)); Tôi đang sử dụng culture.invariantculture. nhưng tôi vẫn không thể có được giá trị phù hợp. – Raghav55
Mã được cung cấp hoạt động tốt (ngoại trừ đóng tài nguyên ;-)) trên hệ điều hành của Đức (Windows 7) và các cặp đôi được tạo thành với một điểm "." như mong đợi bởi các bình luận. Ngay cả khi cài đặt văn hóa được đặt thành ",". –