В приведенном ниже коде показано, как заменить произвольное количество пар звездочек на два генерируемых вами замещающих символа.
for n := 0 to 9 do begin
resultstr := sourcestr;
while Pos('*', resultstr) > 0 do begin
stringReplace(resultstr, '*', IntToStr(n div 10), []);
resultstr := StringReplace(resultstr, '*', IntToStr(n mod 10), []);
end;
resultStr := resultStr + ':password';
writeln(resultstr);
end;
Используется функция Pos
в while
l * 1029. * заменить звездочкой пары. Помните, что вывод может быть не совсем тем, что вам нужно, потому что в каждом сгенерированном resultstr
вы получите одинаковые замещающие символы, заменяющие каждую пару звездочек, т. Е. С вводом
a ** b ** c
сгенерированные resultstr
будут иметь вид
a00b00 c
a11b11 c
что может быть не то, что вам нужно. Если нет, то, как они говорят, изменение кода для выполнения того, что вам нужно делать , остается для читателя как упражнение.
Кстати, позже мне пришло в голову, что, возможно, вы спрашиваете, как вводить и обрабатывать несколько строк пользовательского ввода. Один из способов сделать это - прочитать строки в TStringList (см. Интерактивную справку) и затем обработать это. Что-то вроде:
var
TL : TStringList;
sourcestr : String;
begin
TL := TStringList.Create;
repeat
readln(sourcestr);
if sourcestr <> '' then
TL.Add(sourcestr);
until sourcestr = '';
for i := 0 to TL.Count - 1 do begin
sourcestr := TL[i];
// process sourcestr however you want
end;
TL.Free;
, хотя вы, конечно, могли бы просто обработать sourcestr, когда вы go вперед, в повторе ... до l oop.