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

    +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
    string parser(string chto, string chem)
                {
                    int dlina = chem.Length;
                    int kol = chto.Length;
                    string ret = null;
                    int shet = 0;
                    int r = 0;
                    int nom = 0;
                    for (int i = 0; i < kol; i++)
                    {
                        if (chto[i] == chem[0] && shet == 0)
                        {
                            for (int j = i; j < dlina + i; j++)
                            {
                                if (chto[j] == chem[r])
                                {
                                    r++;
                                    shet++;
                                    nom = j;
                                }
    
                            }
                            if (shet != dlina)
                            {
                                shet = 0;
                                r = 0;
                                nom = 0;
                            }
                        }
                    }
                    int schet = nom + 3;
                    while (chto[schet] != '<')
                    {
                        ret += chto[schet];
                        schet++;
                    }
                    return ret;
                }

    Функция для парсинга подстроки

    Запостил: vladb9582, 18 Июня 2014

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

    • Ну парсит же что то чем то, и слава Богу.
      Ответить
    • Судя по < это парсер HTML? Или, не дай бог, XML?
      Ответить
      • все проще.

        строки 9-30 это просто поиск подстроки `chem` в строке `chto`.

        ну и дальше после позиции `chem` в `chto` зачем-то ищется `<` .

        без контеста понять нельзя. но я боюсь что там в самом контексте там будет еще похлеще.
        Ответить
        • Ну я имел в виду, что этой штукой из хтмл'я извлекают какую-то фигню, перед которой стоит chem (возможно, что chem="<div class='shit'>") и еще два каких-то символа и за которой стоит < (скорее всего </че-то>)
          Ответить
    • в c# можно же переменные в utf8. К чему все эти мучения с chto, chem?
      Ответить
      • Кабы потом не вышло такого:
        string парсер(string ват, string виз) 
        {
            int ленгс = виз.Length;
            int амаунт = ват.Length;
            string ретурн = null;
            int каунт = 0;
            int р = 0;
            int намбер = 0;
            for (int и = 0; и < амаунт; и++)
            {
                if (ват[и] == виз[0] && каунт == 0)
                {
                    for (int й = и; й < амаунт + и; й++)
                    {
                        if (ват[й] == виз[р])
                        {
                            р++;
                            каунт++;
                            намбер = й;
                        }
        
                    }
                    if (каунт != ленгс)
                    {
                        каунт = 0;
                        р = 0;
                        намбер = 0;
                    }
                }
            }
            int каунт = намбер + 3;
            while (ват[каунт] != '<')
            {
                ретурн += ват[каунт];
                каунт++;
            }
            return ретурн;
        }
        Ответить
        • долго эта хрень с ключевыми словами будет продолжаться?
          где КОНЕЦЕСЛИ, КОНЕЦЦИКЛА и ВОЗВРАТ?
          Ответить
          • до того момента пока не разрешат дефайны как в сишечке, а не только в булевском смысле
            Ответить
            • Дефайны поломают интеллисенс, подсветку, строгую типизацию и пр.

              Нужны гигиенические макросы! Берём Nemerle, запиливаем любые нужные макросы - получаем ключевые слова на русском, но при этом сохраняется подсветка, интеллисенс и всё остальное. Профит!
              Ответить
        • http://govnokod.ru/16186 так круче
          Ответить

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