Delphi-Help

  • Increase font size
  • Default font size
  • Decrease font size
Главная Форум
Добро пожаловать, Гость
Логин: Пароль: Запомнить меня

Массив Array
(1 чел.) (1) гость
  • Страница:
  • 1
  • 2

ТЕМА: Массив Array

Массив Array 8 года, 2 мес. назад #117

  • ExtazY
  • Вне сайта
  • Слушатель
  • Постов: 21
  • Репутация: 2
Заполнить массив Array из одной строки String.

Очень удобный способ заполнения одномерного массива.
В строке str подстроки разделяются запятой, функция Trim убирает лишнии пробелы и управляющии символы из подстрок.
Назначаются элементы массива от
BeginArrIndex до количества подстрок в строке,
DirectionRorL имеет два состояния True вправо и False влево,
ArrIndexN в обычном состоянии должно быть равно единицы.

Объявим массив глобально.

var
arr: array[1..10] of string;

procedure StringToArray(BeginArrIndex: integer; DirectionRorL: boolean; ArrIndexN: Integer; str: string);
var
i,arrindex: integer;
strtemp: string;
begin
arrindex:=BeginArrIndex;
for i:=1 to length(str)+1 do
begin
if (str[i]<>',') and (i<=length(str))
then strtemp:=strtemp+str[i]
else
begin
arr[arrindex]:=Trim(strtemp);
strtemp:='';
if DirectionRorL=True
then arrindex:=arrindex+ArrIndexN
else arrindex:=arrindex-ArrIndexN;
end;
end;
end;
Изменено: 7 года, 10 мес. назад от ExtazY.

Re: Заполнить массив Array из одной строки String 8 года, 1 мес. назад #172

  • ExtazY
  • Вне сайта
  • Слушатель
  • Постов: 21
  • Репутация: 2
Тогда для двухмерного массива можно использовать дополнительную переменную. И условие если массив не один. Оба параметра также указать при вызове процедуры.

Массив Array 7 года, 11 мес. назад #283

  • ExtazY
  • Вне сайта
  • Слушатель
  • Постов: 21
  • Репутация: 2
Использовать массив можно например так:


если
массив1[ячейка 1]
то
массив1[ячейка 2]
иначе
массив1[ячейка 3]
Изменено: 7 года, 10 мес. назад от ExtazY.

Массив Array 7 года, 11 мес. назад #285

  • ExtazY
  • Вне сайта
  • Слушатель
  • Постов: 21
  • Репутация: 2
Одномерный массив, одна ось, линия, строка - последовательный набор символов.
Объявим глобально:
arr: array[0..9] of string; Используем:
arr[x];
Двумерный массив, две оси, плоскость, слой, страница, список - последовательный набор строк.
Объявим глобально:
arr: array[0..9 , 1..5] of string;
Используем:
arr[x,y];
Трёхмерный массив, три оси, последовательный набор слоёв, плоскостей, списков, страниц.
Объявим глобально:
arr: array[0..9 , 1..5 , 0..2] of string;
Используем:
arr[x,y,z];
Далее наверняка будет так:
К примеру, последовательный набор страниц это книга, значит для четвертого измерения это набор книг, да это так, но тут речь пойдёт об одной и той же книги, но в разном времени и для пятого измерения в разном состоянии и для шестого в разном понимании.
Изменено: 7 года, 10 мес. назад от ExtazY.

Re: Заполнить массив Array из одной строки String 7 года, 11 мес. назад #287

  • ExtazY
  • Вне сайта
  • Слушатель
  • Постов: 21
  • Репутация: 2
var
arrD: array of string;
procedure StringToArrayD(BeginArrIndex: integer; DirectionRorL: boolean; ArrIndexN: Integer; str: string);
var
i,arrindex,cou: integer;
strtemp: string;
begin
cou:=1;
arrindex:=BeginArrIndex;
for i:=1 to length(str)+1 do
begin
if (str[i]<>',') and (i<=length(str))
then strtemp:=strtemp+str[i]
else
begin
SetLength(ArrD, cou);
ArrD[ArrIndex]:=Trim(strTemp);
strtemp:=chr(0);
if DirectionRorL=True then arrindex:=arrindex+ArrIndexN
else arrindex:=arrindex-ArrIndexN;
cou:=cou+ArrIndexN;
end;
end;
end;
Изменено: 7 года, 10 мес. назад от ExtazY.

Массив Array 7 года, 11 мес. назад #288

  • ExtazY
  • Вне сайта
  • Слушатель
  • Постов: 21
  • Репутация: 2
Объявить трехмерный динамический массив:
ArrD: array of array of array of string;


Установить размер динамического массива:
SetLength(массив, кол-во символов в строке, кол-во строк, кол-во слоёв);

Узнать размер массива:

Для первого измерения в массиве:
Low(массив);
High(массив);
Для второго измерения(уровень) в массиве:
Low(массив[1]);
High(массив[1]);
Для третьего измерения(слой) в массиве:
Low(массив[1,1]);
High(массив[1,1]);

В динамическом массиве нумерция любых измерений начинается от нуля.
Изменено: 7 года, 10 мес. назад от ExtazY.
  • Страница:
  • 1
  • 2

Авторизация



Счетчики