Индекс и длина должны указывать на позицию в строке. Имя параметра: length - C#
Формулировка задачи:
Имеется такой вот метод:
С помощью BreakPoint проверял работоспособность. Выводит следующую ошибку:
public string EncryptionShuffle(string text, int[] key) {
string result = null;
// ************************************************************************
int i, j, w, n, m;
string s;
j = 0; s = text;
for (i = 1; i < text.Length; i++)
{
j = i * 2;
n = key[j - 1];
m = key[j];
if (n > m)
{
w = n;
n = m;
m = w;
}
s = s.Substring(m + 1, text.Length - m) + s.Substring(n + 1, m - n) + s.Substring(1, n);
result = s;
}
// ************************************************************************
return result;
}Индекс и длина должны указывать на позицию в строке. Имя параметра: length
Помогите пожалуйста устранить данную ошибку.Решение задачи: «Индекс и длина должны указывать на позицию в строке. Имя параметра: length»
textual
Листинг программы
…………………………………………….
const
Lmax=100;
…………………………………………….
type
TArr=array[1..Lmax] of integer;
…………………………………………….
{процедура-функция генерации ключа для шифрования тасовкой
входной параметр L - длина блока исходного текста для зашифровки}
function Passwrd(L:integer):TArr;
var
i:integer;
arr:TArr;
begin
for i:=1 to 2 do
arr:=PerestRnd(L); // function PerestRnd(l:integer):TArr; -
// функция (определяемая пользователем) формирования
// случайным образом L неповторяющихся целых чисел
// в диапазоне от 1 до L,
// результат - в виде массива;
result:=arr;
end;
{**********************************************************}
{процедура-функция шифрования исходного текста txt,
результат типа string - зашифрованный текст}
function SHTasov_TO(txt:string;passw:TArr):string;
var
i,j,w,n,m:integer;
s:string;
begin
j:=0; s:=txt;
for i:=1 to length(txt) do
begin
j:=i*2;
n:=passw[j-1];
m:=passw[j];
if n>m then
begin
w:=n; n:=m; m:=w;
end;
s:=copy(s,m+1,length(txt)-m)+copy(s,n+1,m-n)+copy(s,1,n);
end;
result:=s;
end;
{**********************************************************}
{процедура-функция расшифровки текста txt,
результат типа string - расшифрованный текст}
function SHTasov_FROM(txt:string;passw:TArr):string;
var
i,j,w:integer;
n,m:longint;
s:string;
begin
j:=0; s:=txt;
for i:=length(txt) downto 1 do
begin
j:=i*2;
n:=passw[j-1];
m:=passw[j];
if n>m then
begin
w:=n; n:=m; m:=w;
end;
s:=copy(s,length(txt)-n+1,n)+copy(s,length(txt)-m+1,m- n)+copy(s,1,length(txt)-m);
end;
result:=s;
end;