private bool write2FreeFormat(string resultsForOneYear, int[] fields, StreamWriter writer, bool needWriteHeader, FormatType format)
        {
            StringBuilder sb = new StringBuilder();
            using (CachedCsvReader csv = new CachedCsvReader(new StringReader(resultsForOneYear), true))
            {
                if (csv.FieldCount < 27) return false;

                string date = "";
                if (needWriteHeader)
                {
                    string[] fieldNames = csv.GetFieldHeaders();
                    sb.Append(formatFreeFormatData(fieldNames[0], format, true));

                    foreach (int field in fields)
                    {
                        if (format == FormatType.SIMPLE_CSV)
                            sb.Append(",");
                        sb.Append(formatFreeFormatData(fieldNames[field], format, false));
                    }
                    sb.AppendLine();
                }
                while (csv.ReadNextRecord())
                {
                    date = csv[0];
                    sb.Append(formatFreeFormatData(date, format, true));

                    foreach (int field in fields)
                    {
                        if (format == FormatType.SIMPLE_CSV)
                            sb.Append(",");
                        sb.Append(formatFreeFormatData(csv[field], format, false));
                    }
                    sb.AppendLine();
                }

                checkLastDayofYear(date);
            }
            if (sb.Length > 0)
                writer.Write(sb.ToString());

            return sb.Length > 0;
        }
Пример #2
0
        static void rewriteBankCSV(string file, AccountType accType)
        {
            string outFileName = "";
            switch (accType)
            {
                case AccountType.OsobniKonto:
                    outFileName = "banka.CSV";
                    break;
                case AccountType.Hypoteka:
                    outFileName = "hypo.CSV";
                    break;
                case AccountType.SporiciUcet:
                    outFileName = "sporici.CSV";
                    break;
                default:
                    break;
            }

            Console.WriteLine("Zpracovávám " + file);
            StreamWriter sw = new StreamWriter(String.Format(outFileName, file), false, Encoding.GetEncoding("Windows-1250"));
            using (CachedCsvReader csv = new CachedCsvReader(new StreamReader(file, Encoding.GetEncoding("Windows-1250")), true, ',', '"'))
            {
                csv.MissingFieldAction = MissingFieldAction.ReplaceByNull;
                int fieldCount = csv.FieldCount;
                string[] headers = csv.GetFieldHeaders();
                while (csv.ReadNextRecord())
                {
                    string newLine = composeOutLine(csv, accType);
                    sw.WriteLine(newLine);
                }
            }
            sw.Flush();
            sw.Close();
        }