Страница 1 из 1

Найти в TStringlist без учёта регистра

Добавлено: 26 апр 2011, 20:58
Shouldercannon

Код: Выделить всё

var
  s1, s2, s3: string;
  a, b: Integer;
  TSL: TStringList;
begin
  // Что ищем
  s2 := '007';
  // Чем заменяем
  s3 := '***';
  
  TSL := TStringList.Create;
  TSL.LoadFromFile('test.txt');

  b := 0;

  for a := TSL.Count - 1 downto 0 do
  if s2 = trim(TSL[a]) then
  begin
    TSL.Strings[a] := s3;
    b := b + 1;
  end;

  if b = 0 then Label1.Caption := 'Совпадений не найдено' else Label1.Caption := 'Произведено ' + IntToStr(b) + ' замен "' + s2 + '" на "' + s3 + '"';
  TSL.SaveToFile('test1.txt');
  TSL.Free;
Из
007
"007"
*007*
[007]
производится замена на *** только 007. Как сделать чтобы все 007 были заменены на *** и на выходе получилось
***
"***"
*****
[***]

Re: Найти в TStringlist без учёта регистра

Добавлено: 03 май 2011, 16:42
Игорь Акопян
ну как вариант не
if s2 = trim(TSL[a]) then
а
[syntax='delphi']
if pos(s2, TSL[a])>0 then
begin
StringReplace(TSL[a], s2, s3, [rfReplaceAll]);
Inc(b);
end;
[/syntax]