Школоло / Говнокод #18060 Ссылка на оригинал

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
  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 Stertor, (Updated )

Комментарии (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"?
        Ответить
          • Не, я не про сам getlogicaldrivestrings(), а про то, что будет в str.
            Ответить
            • >>A:\C:\D:\C:\
              Если вылезешь за пределы буфера (неправильно наращивая инкремент), будет и Z:\ и X:\ и другие несуществующие диски...
              Ответить
            • B:\ традиционно закреплено за вторым дисководом.

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

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

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

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

Где здесь C++, guest?!

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


    8