Здравствуйте, такая ситуация: есть в едите ключ суть в том что каждые две цифры ключа указывают на ячейку в матрице, например ключ: 13233141
здесь 1 - номер строки первого элемента, 3 - номер столбца первого элемента, 2 - номер строки второго элемента и т.д. Надо алгоритм для считывания этих координат и записи по ним определённых значений в матрицу, я такой алгоритм написал:
Код:
L:=1;
s:=edtKey.Text;
While L<=Length(s) do
begin
i := StrToInt(s[L]);
j := StrToInt(s[L+1]);
Mas[i][j]:=1;
L := L+2;
end;
Суть в том что матрица может быть размером больше 10 и координаты могут состоять из двух чисел, я придумал в ключе отмечать символом "*" (например 93*105*106) который будет давать знать программе что дальше находится многозначная цифра. Вот надо под это доработать алгоритм. Надеюсь на Вашу помощь.
Пытаюсь придумать алгоритм но пока ничего толкового, сделал как-то так:
Код:
L:=1;
s:=edtKey.Text;
While L<=Length(s) do
begin
if s[L] = '*' then
begin
i := StrToInt(s[L+1]+s[L+2]);
if s[L+3] = '*' then
j := StrToInt(s[L+4]+s[L+5])
else
j := StrToInt(s[L+3]);
end
else
i := StrToInt(s[L]);
if s[L+1] = '*' then
j := StrToInt(s[L+2]+s[L+3])
else
j := StrToInt(s[L+1]);
Mas[i][j]:=1;
L := L+2;
end;
результат -> Runtime error 216