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

    +144

    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
    function IsIntStr(const str:string):boolean;                                    // Для проверки, состоит ли логин целиком из цифр.
    var                                                                             // TryStrToInt не подходит.
      p:pchar;
    begin
      result:=false;
      p:=pchar(str);
      if p^=#0 then exit;
      while p^ <> #0 do
      begin
        if not (p^ in ['0'..'9']) then
        exit;
        p:=charnext(p) ;
      end;
      result:=true;
    end;

    Showmessage(IntToStr(4324324233213564)); // а хуйца не желаете?

    Запостил: Stertor, 24 Апреля 2015

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

    • И нахуя понадобилось опускать мой пост?.. Пипец. Но надо - так надо...
      Ответить
    • А зачем тебе там каст в пчар? Я бы как-то так сделал:
      function IsIntStr(const std : string) : boolean;
      var
          i : integer;
      begin
          result := false;
          for i := 1 to length(str) do
              if not (str[i] in ['0' .. '9']) then
                  exit;
          result := true;
      end;
      Ответить
      • ))) Интересно, что ты на это скажешь:

        procedure TForm1.Button1Click(Sender: TObject);
        var
          str,buff:string;
          p:pchar;
        begin
          setlength(buff,400);
          p:=pchar(buff);
          getlogicaldrivestrings(400,p);
          str:='';
        
          while p^ <> #0 do    //##
          begin
            str:=str+strpas(p);
            while p^ <> #0 do //A:\#C:\#D:\##
            p:=charnext(p);   //C:\#D:\##
            inc(p);
          end;
        
          showmessage(str);
        end;
        Ответить
        • > Интересно, что ты на это скажешь
          Ну а что тут сказать... Сишкоблядскому API - сишкоблядские методы.

          Возвращает что-то типа "ACD"?
          Ответить
          • A:\C:\D:\
            Это просто так, я никогда не вызываю эту API.
            Ответить
            • Не, я не про сам getlogicaldrivestrings(), а про то, что будет в str.
              Ответить
            • A:\C:\D:\C:\
              Ответить
              • >>A:\C:\D:\C:\
                Если вылезешь за пределы буфера (неправильно наращивая инкремент), будет и Z:\ и X:\ и другие несуществующие диски...
                Ответить
              • AC/DC

                YOU CAN'T STOP ROCK'N'ROLL!!!!!!!!!
                Ответить
            • Кстати, а почему не используется B:?
              Ответить
              • B:\ традиционно закреплено за вторым дисководом.

                Первые PC не были оснащены HDD, и имели два дисковода (пятидюймовых) A:\ и B:\.

                С A:\ обычно грузились, с B:\ запускали игры и программы.

                Некоторые версии еще поддерживали кассеты
                Ответить
        • Не надо юзать эту API. Можно перебрать массив букв от C до Z, каждый раз проверяя результат DeviceIOControl.
          Ответить

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