public static IList <string[]> GetCsvCacheFile(string fileName)
        {
            string key = fileName;

            if (!FileParser.__csvFilesCached.ContainsKey(key))
            {
                lock (FileParser.__csvFilesCached)
                {
                    if (!FileParser.__csvFilesCached.ContainsKey(key))
                    {
                        IList <string[]> strArrayList = (IList <string[]>) new List <string[]>();
                        using (Stream stream = FileParser.GetStream(fileName))
                        {
                            if (stream.CanSeek)
                            {
                                stream.Seek(0L, SeekOrigin.Begin);
                            }
                            using (StreamReader streamReader = new StreamReader(stream))
                            {
                                while (!streamReader.EndOfStream)
                                {
                                    string line = streamReader.ReadLine();
                                    if (!string.IsNullOrWhiteSpace(line))
                                    {
                                        strArrayList.Add(CsvLine.Split(line).ToArray <string>());
                                    }
                                }
                            }
                        }
                        FileParser.__csvFilesCached.Add(key, strArrayList);
                    }
                }
            }
            return(FileParser.__csvFilesCached[key]);
        }
Example #2
0
    public ImportCsv(string FilePath, string separator = ",")
    //Get filepath and convert into list of strings
    {
        string CsvValues = "";

        if (!FilePath.EndsWith(".csv"))
        {
            FilePath += ".csv";
        }
        using (StreamReader CsvReader = new StreamReader(File.OpenRead(FilePath)))
        {
            CsvValues = CsvReader.ReadToEnd();
        }

        string[] CsvLines = CsvValues.Split(Environment.NewLine.ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
        foreach (string CsvLine in CsvLines)
        {
            this.CsvList.Add(CsvLine.Split(separator.ToCharArray(), StringSplitOptions.RemoveEmptyEntries));
        }
    }
Example #3
0
        static void Main(string[] args)
        {
            string CsvFilePath = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "Csv.csv");
            var    CsvLines    = File.ReadAllLines(CsvFilePath);
            var    CsvGroups   = CsvLines.GroupBy(CsvLine => new
            {
                cols1 = CsvLine.Split(',')[0],
                cols2 = CsvLine.Split(',')[1],
            });

            List <DataGroup> DataList = new List <DataGroup>();

            foreach (var CsvGroup in CsvGroups)
            {
                List <Data> Datas = new List <Data>();

                foreach (var CsvLine in CsvGroup)
                {
                    string[] cols = CsvLine.Split(',');

                    Datas.Add(new Data()
                    {
                        DataCode = cols[0],
                        DataName = cols[1],
                        Colspan3 = cols[2],
                        Colspan4 = cols[3],
                        Colspan5 = cols[4],
                    });
                }

                DataList.Add(new DataGroup()
                {
                    GroupCode = CsvGroup.Key.cols1,
                    Datas     = Datas
                });
            }
            var    TicketJson   = JsonConvert.SerializeObject(DataList);
            string JsonFilePath = string.Format("{0}{1}", AppDomain.CurrentDomain.BaseDirectory, "Json.json");

            File.WriteAllText(JsonFilePath, TicketJson);
        }