美文网首页
StrToBool - C++ Builder

StrToBool - C++ Builder

作者: 玄坴 | 来源:发表于2022-04-17 08:54 被阅读0次

    C++ Builder 参考手册System::SysutilsStrToBool


    字符串转布尔型数值

    头文件:#include <System.SysUtils.hpp>
    命名空间:System::Sysutils
    函数原型:

    bool __fastcall StrToBool(const System::UnicodeString S);
    

    参数:

    • S:字符串;

    返回值:

    • 布尔型数值:
      • 字符串 S 如果是数字 (整数或小数),能够成功的转成浮点数,数值等于 0 返回 false,不等于 0 返回 true;
      • 字符串 S 如果在 Sysutils::FalseBoolStrs 全局字符串数组里面能够找到 (不区分大小写),返回 false;
      • 字符串 S 如果在 Sysutils::TrueBoolStrs 全局字符串数组里面能够找到 (不区分大小写),返回 true;
      • 前面条件都不满足,抛出 EConvertError 异常;
    • 函数 StrToBool 和 StrToBoolDef 的区别:前者转换失败抛出异常,后者转换失败返回默认值;
    • 布尔型默认显示为 1 和 0,可以用函数 BoolToStr 转成 "True"、"False" 或 "是"、"否" 等字符串;
    • 可以通过修改全局字符串数组 Sysutils::FalseBoolStrs 和 Sysutils::TrueBoolStrs 改变识别的字符串,例如:
        Sysutils::TrueBoolStrs.Length = 4;
        Sysutils::TrueBoolStrs[0] = L"是";
        Sysutils::TrueBoolStrs[1] = L"真";
        Sysutils::TrueBoolStrs[2] = L"true";
        Sysutils::TrueBoolStrs[3] = L"yes";
    
        Sysutils::FalseBoolStrs.Length = 4;
        Sysutils::FalseBoolStrs[0] = L"否";
        Sysutils::FalseBoolStrs[1] = L"假";
        Sysutils::FalseBoolStrs[2] = L"false";
        Sysutils::FalseBoolStrs[3] = L"no";
    

    如果要恢复默认的 "True" 和 "False",可以把设置的字符串清除即可:

        Sysutils::TrueBoolStrs.Length = 0;
        Sysutils::FalseBoolStrs.Length = 0;
    

    例1:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
        Memo1->Lines->Add(StrToBool(L"10"));
        Memo1->Lines->Add(StrToBool(L"-1.5"));
        Memo1->Lines->Add(StrToBool(L"true"));
        Memo1->Lines->Add(StrToBool(L"0"));
        Memo1->Lines->Add(StrToBool(L"0.0"));
        Memo1->Lines->Add(StrToBool(L"false"));
    }
    

    运行结果:

    运行结果

    例2:测试 Sysutils::TrueBoolStrs 和 Sysutils::FalseBoolStrs 对 StrToBool 的影响

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
        Sysutils::TrueBoolStrs.Length = 4;
        Sysutils::TrueBoolStrs[0] = L"是";
        Sysutils::TrueBoolStrs[1] = L"真";
        Sysutils::TrueBoolStrs[2] = L"true";
        Sysutils::TrueBoolStrs[3] = L"yes";
    
        Sysutils::FalseBoolStrs.Length = 4;
        Sysutils::FalseBoolStrs[0] = L"否";
        Sysutils::FalseBoolStrs[1] = L"假";
        Sysutils::FalseBoolStrs[2] = L"false";
        Sysutils::FalseBoolStrs[3] = L"no";
    
        Memo1->Lines->Add(StrToBool(L"0.5"));
        Memo1->Lines->Add(StrToBool(L"-8"));
        Memo1->Lines->Add(StrToBool(L"True"));
        Memo1->Lines->Add(StrToBool(L"真"));
        Memo1->Lines->Add(StrToBool(L"YES"));
        Memo1->Lines->Add(StrToBool(L"是"));
    
        Memo1->Lines->Add(StrToBool(L"0"));
        Memo1->Lines->Add(StrToBool(L"0.0"));
        Memo1->Lines->Add(StrToBool(L"FALSE"));
        Memo1->Lines->Add(StrToBool(L"No"));
        Memo1->Lines->Add(StrToBool(L"假"));
        Memo1->Lines->Add(StrToBool(L"否"));
    
        Sysutils::TrueBoolStrs.Length = 0;
        Sysutils::FalseBoolStrs.Length = 0;
    
        Memo1->Lines->Add(StrToBool(L"10"));
        Memo1->Lines->Add(StrToBool(L"-1.5"));
        Memo1->Lines->Add(StrToBool(L"true"));
        Memo1->Lines->Add(StrToBool(L"0"));
        Memo1->Lines->Add(StrToBool(L"0.0"));
        Memo1->Lines->Add(StrToBool(L"false"));
    }
    

    运行结果:

    运行结果

    相关:

    • System::Sysutils::BoolToStr
    • System::Sysutils::StrToBool
    • System::Sysutils::StrToBoolDef
    • System::Sysutils::StrToCurr
    • System::Sysutils::StrToCurrDef
    • System::Sysutils::StrToDate
    • System::Sysutils::StrToDateDef
    • System::Sysutils::StrToDateTime
    • System::Sysutils::StrToDateTimeDef
    • System::Sysutils::StrToFloat
    • System::Sysutils::StrToFloatDef
    • System::Sysutils::StrToInt
    • System::Sysutils::StrToIntDef
    • System::Sysutils::StrToInt64
    • System::Sysutils::StrToInt64Def
    • System::Sysutils::StrToTime
    • System::Sysutils::StrToTimeDef
    • System::Sysutils::StrToUInt
    • System::Sysutils::StrToUIntDef
    • System::Sysutils::StrToUInt64
    • System::Sysutils::StrToUInt64Def
    • System::Sysutils::TryStrToBool
    • System::Sysutils::TryStrToCurr
    • System::Sysutils::TryStrToDate
    • System::Sysutils::TryStrToDateTime
    • System::Sysutils::TryStrToFloat
    • System::Sysutils::TryStrToInt
    • System::Sysutils::TryStrToInt64
    • System::Sysutils::TryStrToTime
    • System::Sysutils::TryStrToUInt
    • System::Sysutils::TryStrToUInt64
    • System::Sysutils
    • std::atof, std::_ttof, std::_wtof
    • std::_atold, std::_ttold, std::_wtold
    • std::atoi, std::_ttoi, std::_wtoi
    • std::atol, std::_ttol, std::_wtol
    • std::atoll, std::_ttoll, std::_wtoll
    • std::_atoi64, std::_ttoi64, std::_wtoi64
    • std::strtof, std::_tcstof, std::wcstof
    • std::strtod, std::_tcstod, std::wcstod
    • std::strtold, std::wcstold, std::_strtold, std::_tcstold, std::_wcstold
    • std::strtol, std::_tcstol, std::wcstol
    • std::strtoll, std::_tcstoll, std::wcstoll
    • std::strtoul, std::_tcstoul, std::wcstoul
    • std::strtoull, std::_tcstoull, std::wcstoull
    • <cstdlib>

    C++ Builder 参考手册System::SysutilsStrToBool

    相关文章

      网友评论

          本文标题:StrToBool - C++ Builder

          本文链接:https://www.haomeiwen.com/subject/xhidahtx.html