Индекс и длина должны указывать на позицию в строке. Имя параметра: length - C#

Узнай цену своей работы

Формулировка задачи:

Имеется такой вот метод:
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;
            }
С помощью BreakPoint проверял работоспособность. Выводит следующую ошибку:

Индекс и длина должны указывать на позицию в строке. Имя параметра: 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;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 4.364 из 5
Похожие ответы