从注册表中读取一些软件的版本号比如有IE为 6.0.2900.2180
又比如MediaPlayer的版本为 10,0,0,3646
或者又有其它版本号为 8.0.3我想取整
结果分别为 6 //IE比较特殊,要是为5.5就读取5.5 其它取整
10
8
附:程序中代码片断
Label1.Caption := '您的IE版本为:' + S;
strVersion := copy(S, 0, Pos('.',S)-1);
if StrToInt(strVersion) < 6 then

解决方案 »

  1.   

    // 這句不用我解釋吧
    Label1.Caption := '您的IE版本为:' + S;// pos函數返回'.'在s第一次出現的位置
    // copy函數取s從0開始到Pos('.',S)-1的字符串
    strVersion := copy(S, 0, Pos('.',S)-1);// StrToInt將字符串轉為整數
    if StrToInt(strVersion) < 6 then
      

  2.   

    版本号可能是一位,也可能是两位、三位数字,所以你使用Copy不好控制,最好用分割函数,然后取第一个才比较通用。
    如果S := '6.0.2900.2180';
    lstTmp := TStrings.Create;
    ExtractStrings(['.', ','], [], PChar(S), lstTmp);
    //这时lstTmp.Strings[0]就是主版本号了。
    //然后利用StrToInt转换为整数
    if StrToInt(lstTmp.Strings[0]) then
      ……
    //最后再释放lstTmp
    FreeAndNil(lstTmp);
      

  3.   

    copy(s:string;b:integer;n:integer):string;//从string类型的s字符串返回从b开始的n个字符
    Pos(Substr: string; S: string): Integer;//substr在S第一次出现的位置
      

  4.   

    谢谢啊其实多少知道一点
    只是没用过delphi里面函数自然也不知晓
    我试试试好就结贴给分^_^
      

  5.   

    Label1.Caption := '您的IE版本为:' + S;用加号不对吧,
    strVersion := copy(S, 0, Pos('.',S)-1);
      

  6.   

    我也刚学dephi的,我以前是学VB的,VC的,我觉得用+不对,因为在VB中最好用&
      

  7.   

    strVersion := copy(S, 0, Pos('.',S)-1);
    Label1.Caption := '您的IE版本为:' + strVersion;加号对的,不过我倒置了一下,这样反倒显示不出来,不知怎么回事请指点一下啊,谢谢
      

  8.   

    用GetFileVersionInfo和VerQueryValue就可以获取版本了,想怎么怎么取整都可以