• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

  • Автор темы Shouldercannon
  • Дата начала
S

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 были заменены на *** и на выходе получилось
***
"***"
*****
[***]
 
G

Guest

Например вот так:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
i:byte;
p:integer;
s:string;
begin
for I := 0 to Memo1.Lines.Count - 1 do
begin
s:=Memo1.Lines.Strings[i];
p:=pos(Edit1.Text,s);
if p>-1 then
begin
Insert(Edit2.Text,s,p);
Delete(s,p+Length(Edit2.Text),Length(Edit1.Text));
Memo1.Lines.Strings[i]:=s;
end;

end;

end;
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!