1. Pascal / Говнокод #20873

    −40

    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
    const
    Utf2WinTable : array [0..65, 0..1] of string = (
       (#208#144,#192), (#208#145,#193), (#208#146,#194),
       (#208#147,#195), (#208#148,#196), (#208#149,#197),
       (#208#129,#168), (#208#150,#198), (#208#151,#199),
       (#208#152,#200), (#208#153,#201), (#208#154,#202),
       (#208#155,#203), (#208#156,#204), (#208#157,#205),
       (#208#158,#206), (#208#159,#207), (#208#160,#208),
       (#208#161,#209), (#208#162,#210), (#208#163,#211),
       (#208#164,#212), (#208#165,#213), (#208#166,#214),
       (#208#167,#215), (#208#168,#216), (#208#169,#217),
       (#208#170,#218), (#208#171,#219), (#208#172,#220),
       (#208#173,#221), (#208#174,#222), (#208#175,#223),
       (#208#176,#224), (#208#177,#225), (#208#178,#226),
       (#208#179,#227), (#208#180,#228), (#208#181,#229),
       (#209#145,#184), (#208#182,#230), (#208#183,#231),
       (#208#184,#232), (#208#185,#233), (#208#186,#234),
       (#208#187,#235), (#208#188,#236), (#208#189,#237),
       (#208#190,#238), (#208#191,#239), (#209#128,#240),
       (#209#129,#241), (#209#130,#242), (#209#131,#243),
       (#209#132,#244), (#209#133,#245), (#209#134,#246),
       (#209#135,#247), (#209#136,#248), (#209#137,#249),
       (#209#138,#250), (#209#139,#251), (#209#140,#252),
       (#209#141,#253), (#209#142,#254), (#209#143,#255) );
    
    function Utf8ToWin(s : string) : string;
     var i : integer;
       res  :string;
     begin
       res:=s;
       for I := 0 to 65 do
         if pos(Utf2WinTable[i,0],res)>0
           then res := StringReplace(res, Utf2WinTable[i,0], Utf2WinTable[i,1], [rfReplaceAll]);
       Result:=res;
     end;

    Эта лажа исправляет кодировку. Работает, но ужасно медленно.

    Запостил: void_main, 20 Августа 2016

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

    • Ох, блин, почитал бы ты уже http://www.joelonsoftware.com/articles/Unicode.html что-ли и перестал бы плодить наколенщину

      Хотя выбор языка говорит о том, что ты еще учишься в школе и такие сложные конструкции как кодировки можешь еще и не понимать )
      Ответить
    • Когда-то я тоже писал самопальный перекодировщик из Уникода в восьмибитную кодировку, но потом мне прострелили колено.

      А теперь представим, с какой скоростью оно будет работать, если вдруг потребуется добавить поддержку других символов...

      *****

      Решение действительно рабочее, но только для примитивных автоматов «найти и заменить». В Object Pascal'е же мы можем как минимум применить арифметику, заметив, что 192 - 144 = 48 и 239 - 191 = 48.
      Ответить
    • показать все, что скрытоУжасно быстро исправил тебе за щеку, проверь.
      Ответить
    • показать все, что скрытоКакой багор )))
      Ответить

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