Бухгалтерия / Говнокод #11981 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
1CClientBankExchange
ВерсияФормата=1.01
Кодировка=Windows
Получатель=
ДатаНачала=25.09.2012
ДатаКонца=25.09.2012
...
СекцияРасчСчет
...
КонецРасчСчет
СекцияДокумент=Платежное поручение
...
КонецДокумента
КонецФайла

Формат файла: Стандарт обмена с системами "Клиент банка"
http://v8.1c.ru/edi/edi_stnd/100/101.htm

Пидорва изобрела ini-файлы. Но убило не это, а это:
>Кодировка=Windows

Запостил: Centry Centry, (Updated )

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

  • Возможные значения:
    DOS
    Windows

    "А что, еще бывают?"
    Если строка = "кодировка=Windows" То
      Виндоус = ИСТИНА
    ИначеЕсли s = "ъюфшЁютър=DOS" То
      Виндоус = ЛОЖЬ
    Иначе 
      ...
    КонецЕсли

    И интересно, как бы парсинг выглядел в общем случае...
    Ответить
    • Кодировка=Windows
      ъюфшЁютър=DOS
      РљРѕРґРёСЂРѕРІРєР°=Linux
      лПДЙТПЧЛБ=Unix
      Ответить
    • Ты наоборот перекодировал, как будто каждую строчку смотришь из разной кодировки. Нужно всё смотреть из одной кодировки. Например, из windows-1251:
      Если строка = "кодировка=Windows" То
        Виндоус = ИСТИНА
      ИначеЕсли s = "Є®¤Ёа®ўЄ=DOS" То
        Виндоус = ЛОЖЬ
      ИначеЕсли s = "РєРѕРґРёСЂРѕРІРєР°=Linux" То
        Виндоус = ЛОЖЬ
      ИначеЕсли s = "ЛПДЙТПЧЛБ=Unix" То
        Виндоус = ЛОЖЬ
      ИначеЕсли s = "ЉЋ„€ђЋ‚ЉЂ=Macintosh" То
        Виндоус = ЛОЖЬ
      ИначеЕсли s = "\u043a\u043e\u0434\u0438\u0440\u043e\u0432\u043a\u0430=Java" То
        Виндоус = ЛОЖЬ
      ИначеЕсли s = ":>48@>2:0=Unicode" То
        Виндоус = ЛОЖЬ
      ИначеЕсли s = "§Ь§а§Х§Ъ§в§а§У§Ь§С=Chinese" То
        Виндоус = ЛОЖЬ
      ИначеЕсли s = "$B'\'`'U'Z'b'`'S'\'Q(B=Japanese" То
        Виндоус = ЛОЖЬ
      ИначеЕсли s = "+BDoEPgQ0BDgEQAQ+BDIEOgQwAD0-UTF7" То
        Виндоус = ЛОЖЬ
      ...
      КонецЕсли
      Ответить
  • я-то думал, что Виндовс - это ОС, но я ошибался, это - Кодировка!
    Ответить
    • В Фаре первом в просмотровщике, кстати, похожая терминология была. Но для интерфейса, думаю, это оправдано - Win/DOS нагляднее, чем какие-то циферки.
      Ответить
      • в те времена, это было более оправдано, когда никакого юникода никто еще не знал
        Ответить
  • ДатаНачала=...
    ДатаКонца=...
    ДатаНачалаКонца=...
    Ответить
  • ВерсияФормата=1.01
    Кодировка=Windows

    А если кодировка будет ДОС?
    Ответить
  • Странно, в восьмёрке поддержка хмл искаропки есть. Правда, не все осилить могут.
    Ответить
  • "Яб давно на хмл перешел, но это ж как сегментные регистры - рас они есть, и потенциально их юзают миллионы, их надо поддерживать!"
    - пока не найдется какой-нибудь смелый АМД, который громко скажет "пук" "нет"
    Ответить
    • > смелый АМД, который громко скажет "пук" "нет"
      А уже были прецеденты?
      Ответить
      • В длинном режиме «amd64» работают только сегментные регистры FS и GS, остальные выпилены. И ещё куча инструкций выпилена типа однобайтовых инкрементов-декрементов, поэтому под длинный режим «amd64» труднее писа́ть в ASCII-кодах.
        Ответить
        • Зато там есть RIP-relative адресация, писатели малвари радостно рукоплещут.
          Ответить
          • Да, вирусы клепать удобнее, ведь они требуют PIC. Без RIP-relative приходилось делать что-то типа такого:
            call @1
            @1: pop ebx
            В ebx получаем текущий адрес, по которому метка @1 загружена в память, и дальше пердолимся с разностями.

            А теперь всё можно делать относительно RIP и течь.
            Ответить
  • Кодировка=Windows
    указываем в какой кодировке будут значения пар, сами параметры всегда в cp1251
    Ответить

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

Из-за тебя ушел bormand, guest!

    А не использовать ли нам bbcode?


    8