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

    +133

    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
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    public bool CheckPath(string path)
    {
        int n;
    
        n = 0;
        //Проверяем наличие нужных папок;
        if (Directory.Exists(path + "SCLAD"))
        {
            n += 1;
        }
        if (Directory.Exists(path + "REAL"))
        {
            n += 1;
        }
        if (Directory.Exists(path + "DOSTAVKA"))
        {
            n += 1;
        }
        //Проверяем наличие нужных файлов
        if (File.Exists(path + "analit.dbf"))
        {
            n += 1;
        }
        if (File.Exists(path + "partner.dbf"))
        {
            n += 1;
        }
        if (File.Exists(path + "SCLAD\\mdoc.dbf"))
        {
            n += 1;
        }
        if (File.Exists(path + "SCLAD\\mdoc.fpt"))
        {
            n += 1;
        }
        if (File.Exists(path + "SCLAD\\mdocm.dbf"))
        {
            n += 1;
        }
        if (File.Exists(path + "SCLAD\\mgrup.dbf"))
        {
            n += 1;
        }
        if (File.Exists(path + "SCLAD\\mlabel.dbf"))
        {
            n += 1;
        }
        if (File.Exists(path + "SCLAD\\mlabel.fpt"))
        {
            n += 1;
        }
        if (File.Exists(path + "REAL\\rbookm.dbf"))
        {
            n += 1;
        }
        if (File.Exists(path + "REAL\\rbook.dbf"))
        {
            n += 1;
        }
        if (File.Exists(path + "REAL\\rbook.fpt"))
        {
            n += 1;
        }
        if (File.Exists(path + "DOSTAVKA\\avt.dbf"))
        {
            n += 1;
        }
        if (File.Exists(path + "DOSTAVKA\\avtm.dbf"))
        {
            n += 1;
        }
        if (File.Exists(path + "DOSTAVKA\\avtm.fpt"))
        {
            n += 1;
        }
        if (File.Exists(path + "DOSTAVKA\\cargo.dbf"))
        {
            n += 1;
        }
        if (File.Exists(path + "DOSTAVKA\\cargom.dbf"))
        {
            n += 1;
        }
        if (File.Exists(path + "DOSTAVKA\\zamena.dbf"))
        {
            n += 1;
        }
    
        //Если указанная папка содержит все, что нужно
        if (n == 20)
        {
            return true;
        }
    
        return false;
    }

    Запостил: eee_qqq, 09 Октября 2010

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

    • Гг, эмпирическая проверка версий - хуле :-D
      Ответить
      • Больше похоже на реализацию контрольной суммы..)
        Ответить
    • класс, "DOSTAVKA" DOSTAVLJAET = )))
      Ответить
    • хорошо хоть не вложенные "if"
      Ответить
      • А, собственно, почему? Работать быстрее будет :) Зачем идти дальше, если return false нужен хотя бы при одном пропущенном файле?
        Хотя, конечно, лучше
        if (Directory.Exists(path + "SCLAD")) return false;
        if (Directory.Exists(path + "REAL")) return false;
        ...
        return true;
        }
        ... массивы? Какие массивы? :)
        Ответить
    • Тут говно втройне:
      1)бессмысленное разделение объявления и инициализации
      int n;
      n = 0;
      когда надо int n = 0;
      2)дурацкий инкремент
      n += 1;
      когда надо ++n;
      3)собсно само использование счётчика n
      когда надо как уже заметил Stalker:
      if (!Directory.Exists(path + "SCLAD"))
      {
      return false;
      }
      ...
      Ответить
    • айЛолд. говно лезет из всех щелей.
      одни пути чего стоят. половина на ингрише, половина на быдлотраслите
      Ответить
    • По моему лучше массивами с циклами сделать:

      static readonly string[] Dirs = new string[] { "SCLAD", "REAL", "DOSTAVKA" };
      static readonly string[] Files = new string[] { "analit.dbf", "partner.dbf", "SCLAD\\mdoc.dbf" .. "DOSTAVKA\\zamena.dbf"};

      public bool CheckPath(string path)
      {
      //Проверяем наличие нужных папок;
      foreach (string s in Dirs)
      if (!Directory.Exists(path + s)) return false;

      //Проверяем наличие нужных файлов
      foreach (string s in Files)
      if (!File.Exists(path + s)) return false;

      return true;
      }
      Ответить
      • >> path + s
        Тогда уж
        System.IO.Path.Combine(path, s)
        , т.к. никто не гарантирует, что path заканчивается на '\'.

        Но лучше такие массивы выносить в конфиги, а не руками забивать в коде.
        Ответить
      • one-liner, sic!

        return
                dirs.All(d => Directory.Exists(Path.Combine(root, d)) &&
                files.All(f => File.Exists(Path.Combine(root, p));
        Ответить
    • ИМХО, с Delphi проект переписывался 1С прогером-манагером. вот и наваял )))
      Ответить
    • Это жемчужина сайта.
      Ответить

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