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

    +83

    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
    var
      ABuffer: PAnsiChar;
      AText: PAnsiChar;
      BBuffer: PAnsiChar;
    begin
      ABuffer := 'TEST';
      BinToHex(ABuffer, AText, Length(ABuffer));
      ShowMessage(AText);
      ShowMessage(IntToStr(Length(AText)));
      GetMem(BBuffer, Length(AText) div 2);
      HexToBin(AText, BBuffer, Length(AText) div 2);
      BBuffer[Length(BBuffer) - 1] := #0;
      ShowMessage(IntToStr(SizeOf(BBuffer)));
      ShowMessage(BBuffer);
      FreeMem(BBuffer);
    end;

    http://www.sql.ru/forum/653685/bintohex-i-hextobin-delphi2009
    Возможно, я ошибаюсь, но по-моему код - лажа; насколько я понимаю, указатель "AText: PAnsiChar;" всего лишь УКАЗАТЕЛЬ, под него нигде в коде не выделяется память, автор юзает его как простую переменную.
    И никто его не поправил. Вроде думающие люди.

    Запостил: brutushafens, 25 Мая 2014

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

    • cleaned
      Ответить
      • >"AText: PAnsiChar;" всего лишь УКАЗАТЕЛЬ
        Слушай генетический Сишник, ты бы лучше коды быдлопримочки С++ анализировал раз не понимаешь Паскаля
        Вот тебе функция, которая возвращает AText как массив байт. Внутри new
        BinToHex(ABuffer, AText, Length(ABuffer));

        п.с. не понимать Паскаля изза деффективности мышления которое развивается при работе с С++ не означает, что код Паскаля является быдлокодом, а наоборот, Сишизоид, в очередной раз показывает "высочайший уровень" развития Сишников и им подобных инвалидов детства
        Ответить
    • Блин, что-то у вас там байтоёбство процветает сильнее чем в сишке ;)

      Может быть как-то так (с хексом в виде строки потом же удобней работать, да и память потом сама освободится, в отличие от pchar'а):
      var
          AHex: AnsiString;
      begin
          SetLength(AHex, ABufferSize * 2);
          BinToHex(ABuffer, AHex, ABufferSize);
          // или так BinToHex(ABuffer, pchar(AHex), ABufferSize) - хер знает, делфи нет под рукой
      Ответить
      • s/pchar/PAnsiChar/
        Ответить
      • Борман, а где гарантия что автор топа не генно-деффективный Сишизоид.

        п.с. Сишник, как и Линуксофреник - это очень тяжёлый диагноз который лечится крышкой гроба
        Ответить
    • cleaned
      Ответить

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