Programowanie w języku Delphi » Gotowce

StringCase

  • 2012-05-06 00:31
  • 3 komentarze
  • 1414 odsłon
  • Oceń ten tekst jako pierwszy
Czy czasami potrzebowaliście użyć funkcji case do string'ów? Ja ostatnio miałem do wyboru napisać kilkanaście if'ów lub funkcję case dla string'ów. Udało się, poniżej gotowy kod:

function StringCase(aWybor: String; lista: TStringList): Integer;
var
  I: integer;
begin
  Result := -1;
  for I := 0 to Length(lista) - 1 do
    if CompareText(aWybor, lista[i]) = 0 then
      begin
        Result := I;
        Break;
      end;
end;

Sposób użycia:

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  sList: TStringList;
begin
  sList := TStringList.Create;
 
  try
    sList.LoadFromFile('nazwa_pliku');
 
    case StringCase(edtNazwa.text,sList) of
      0: ShowMessage('Cos tam 1') ;
      1: ShowMessage('Cos tam 2') ;
      2: ShowMessage('Cos tam 3') ;
    end;
  finally
    sList.Free;
  end;
end;

3 komentarze

Patryk27 2012-05-06 10:13

Najlepiej to pobrać FPC/Lazarusa; tam już się postarali o string case :)

furious programming 2012-04-30 15:39

Zamiast CompareText można użyć SameText lub SameStr; Zwracają wartość logiczną, ta pierwsza nie rozróżnia wielkości znaków, druga tak;

woolfik 2010-02-24 16:21

Tam ma byc if CompareText(wybor, lista[i]) = 0 then niestety cos sie posypalo na CompareText