如题,需要区分大小写!
实际中有大小写混用,字母与汉字混用等情况!

解决方案 »

  1.   

    曾有人告诉我这种方法:
    var 
      item:TListItem; 
    begin 
    item := ListView1.FindCaption(0,'你的值',True,True,True); 
    if item = nil then 
    begin 
    //未找到 
    end 
    else 
    begin 
    //找到 
    end;
    但是不区分大小写,不知道有没有办法改进?
      

  2.   

    遍历ListView 取出Items值  字符串比较,下边两种都行
    //对比字符串是不是一样: AnsiSameStr、AnsiSameText
    var
      ss,s: AnsiString;
      b: Boolean;
    begin
      ss := 'abc';
      s := 'ABC';  b := AnsiSameStr(ss,s);    {区分大小写}
      ShowMessage(BoolToStr(b)); {False}  b := AnsiSameText(ss,s);   {不区分大小写}
      ShowMessage(BoolToStr(b)); {True}
    /////////////////////////////////////////////////////
    var
      s1,s2: string;
      i: Integer;
    begin
      s1 := 'abc';
      s2 := 'adc';
      i := CompareStr(s1,s2);
      ShowMessage(IntToStr(i));  {-2}  i := CompareText(s1,s2);
      ShowMessage(IntToStr(i));  {-2}  s1 := 'abc';
      s2 := 'ABC';
      i := CompareStr(s1,s2);    {CompareStr 区分大小写}
      ShowMessage(IntToStr(i));  {32}  i := CompareText(s1,s2);   {CompareText 不区分大小写}
      ShowMessage(IntToStr(i));  {0}
      

  3.   

    最简单的方法就是遍历统一Up/Lower比较了,不过如果数据量很大的话速度会非常慢
      

  4.   

      for i := 0 to  listView1.Items.Count - 1 do
      begin
        if Text(ListView1.Items[i].Caption)=Trim(Edit1.Text) then 
        begin
          Result := True;
          Exit;
        end;
      end;
      

  5.   


    Lowercase   下將字符串全部轉為小寫再對比。
      

  6.   

    以前也考虑过循环做比较,但是我也存在另外一个问题:
    假设Edit1.text为:ABC
    而ListView1里现在AS,dc,DB,ABC,DDS等,
    要求当Edit1.text包含在ListView1里时,程序执行A代码,
    如果Edit1.text不包含在ListView1里时,程序执行B代码,
    结果出现A代码执行了1次,B代码执行了4次!
      

  7.   

    按照starluck的说法,將字符串全部转为小写对比,岂不跟现在一样了——没有区分大小写了!
      

  8.   

    那你就COMPARE 來判斷,他是區別的。
      

  9.   

    procedure TForm1.Button4Click(Sender: TObject);
    var
      flag : boolean;
      i, n : integer;
    begin
      flag := false;
      for i := 0 to ListView1.Items.Count - 1 do
      begin
        n := CompareStr(ListView1.Items[i].Caption, edit1.text);    if n = 0 then
        begin
          flag := True;
          break;
        end;
      end;  if flag then
        ShowMessage('True')
      else
        ShowMessage('False');
    end;
      

  10.   


    猩猩无罪的对的,是不是你写法有问题
    The following code compares String1, 'STEVE', to String2, 'STEVe'. Note that CompareStr returns a number less than 0 because the value of 'e' is greater than the value of 'E'.var  String1, String2 : string;
      I : Integer;
    begin
      String1 := 'STEVE';
      String2 := 'Steve';
      I := CompareStr(String1, String2);  { the value of I is < 0 }
      if I <> 0 then
        MessageDlg('The strings are not equal', mtWarning, [mbOK], 0)
    end;这是DELPHI帮助中的代码,看上面的意思就能明白了。