1. C# / Говнокод #17326

    +98

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    class CSVSave
    {
        char separator = ';';
        
        public void SaveCSV(string pathfile, IEnumerable<Product> list )
        {
            using (var sw = new StreamWriter(pathfile, false, Encoding.GetEncoding(1251)))
            {
                foreach (var prod in list)
                {
                    string line =
                        prod.Manufacturer + separator +
                        prod.Name + separator +
                        prod.Type + separator +
                        prod.Url + separator +
                        prod.Imgurl + separator +
                        prod.Sex + separator +
                        prod.Volume + separator +
                        prod.Box + separator +
                        prod.Price + separator +
                        prod.availability + separator +
                        prod.Desk;
    
                    if ((prod.Family != null) || (prod.QuantityPurchased != null) || (prod.Application != null) || (prod.Flavornotes != null) || (prod.Production != null)) line += separator;
                    if (prod.QuantityPurchased != null) line += prod.QuantityPurchased + separator;
                    if (prod.Family != null) line += prod.QuantityPurchased + separator;
                    if (prod.Production != null) line += prod.QuantityPurchased + separator;
                    if (prod.Application != null) line += prod.QuantityPurchased + separator;
                    if (prod.Flavornotes != null) line += prod.QuantityPurchased + separator;
    
                    line=line.Trim(separator);
    
                    sw.WriteLine(line);
                }
                sw.Close();
            }
        }
    }

    Запостил: pushistayapodmyshka, 17 Декабря 2014

    Комментарии (14) RSS

    • Блин, мне было так интересно чем же закочится эта эпопея, такое захватывающее начало, а потом унылый конец
      line=line.Trim(separator);
      Ответить
    • Comma-separated values

      char separator = ';';
      Ответить
      • Тем временем, например, википедия гласит следующее:
        >"CSV" is not a single, well-defined format (although see RFC 4180 for one definition that is commonly used). Rather, in practice the term "CSV" refers to any file that:
        >with the records divided into fields separated by delimiters (typically a single reserved character such as comma, semicolon, or tab; sometimes the delimiter may include optional spaces)

        Короче, все забили на название.
        Ответить
    • + separator +
      Мудачье не знает про join?
      Ответить
    • Обломаю всех, кто подумал за stringbuilder.
      sw.Write(prod.Manufacturer);
      sw.Write(separator);
      sw.Write(prod.Name);
      sw.Write(separator);
      // и т. д.
      Ответить
    • line = line.Trim() конечно лишний. На будущее просто зафакаптье сборку в Reflection.Emit, со статичным паблик классом с числом параметров, совпадающим с количеством колонок для вывода в файл. это будет поговнокодистей ;)
      Ответить

    Добавить комментарий