powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Несколько вопросов про массивы(pascal)
49 сообщений из 49, показаны все 2 страниц
Несколько вопросов про массивы(pascal)
    #39534133
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос номер один:
Пишу функцию, она должна принимать двумерный текстовый массив. Как это описать в скобочках?
Вопрос номер 2
Как определить размеры двумерного массива? Один параметр знаю: Length(mass),а как второй?
Вопрос номер 3:
Как создать двумерный массив на основе уже имеющегося? Типа дублера, либо как вариант одинаковый по второму параметру.

Прошу прощения за нубские вопросы, но паскаль был в школе. Сейчас пишу в Lazarus.
___
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534165
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зачем какой-то паскаль в 2017 году?
Встряхнитесь...
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534168
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ролг Хупин,

Кроссплатформенный он. Еще и с гуи.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534169
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Либо array of array, либо array [0..2, 0..10]
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534172
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,

Это к какому вопросу?
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534177
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,
Если к первому, то не в тех скобочках, а в скобочках
функции. Например,
function fun(принимаю двумерный массив);
В этих скобочках
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534191
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngel,

Имеет смысл книжки почитать. Неделю потратишь, потом за день долетишь.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534196
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelВ этих скобочках
Создай описание своего типа
Код: pascal
1.
2.
type
  TMyArray = array ...
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534310
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,
Примерно так?
Код: pascal
1.
function DelRow(A,B: array of string):string;
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534312
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,
Примерно так?
Код: pascal
1.
function DelRow(A,B: array of string):array of string;



Модератор: Тема перенесена из форума "Программирование".
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534417
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelПримерно так?
Примерно так:
Код: pascal
1.
2.
3.
4.
Type
  TArrayString = array [0..1, 0..5] of string;

var a: TArrayString;
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534430
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,
Еще раз, входной массив получается на основе чтения файлов, следовательно константы отпадают.
Итак, что не правильно, и как будет правильно?
1.
Код: pascal
1.
function DelRow(A,B: array of string):array of string;


2.
Код: pascal
1.
2.
"Высота" = Length(ms);
"(ширина" = Length(ms[0]);


3.
Код: pascal
1.
new_mass:array[0..Length(old_mass),0..Length(old_mass[0])] of string;
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534432
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelИтак, что не правильно, и как будет правильно?
Задача криво описана...

Тут больше списки подходят, на мой взгляд. Почитай про TList или TStringList.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534433
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngel,

ты опиши задачу, которую хочешь выполнить
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534434
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanТут больше списки подходят, на мой взгляд.
похоже, ему массив записей нужен, судя по тому, что в каждом элементе массива он получает два строковых поля
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534435
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Док,
Задач несколько.
Одна из которых - удалить пустые строки двумерного массива. Именно удалить, а не двигать все. На вход подается двумерный массив, выходит двумерный массив.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534437
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И это отдельной функцией, а не отдельной программой
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534438
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelИменно удалить, а не двигать все.
Тем более смотри 20859693
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534439
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlackeAngel,
И для любого типа данных
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534442
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadman,
Что не понятно в словосочетании двумерный массив?!
Мне нужен именно двумерный массив. Только он.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534448
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelМне нужен именно двумерный массив. Только он.
если нужен динамический двухмерный массив, сделай одномерный одномерного, типа
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Type
TArrMonoStr = array of string;
TArrStereoStr = array of TArrMonoStr;

function DelRow(A: TArrStereoStr):TArrStereoStr;

procedure TForm1.Button1Click(Sender: TObject);
var a: TArrStereoStr;
begin
  SetLength(a,2,2);
  a[0,0]:= 'str_00';
  a[0,1]:= 'str_01';
  a[1,0]:= 'str_10';
  a[1,1]:= 'str_11';

end; 
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534453
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelwadman,
Что не понятно в словосочетании двумерный массив?!
Мне нужен именно двумерный массив. Только он.
Тебе же уже написали. Вот для динамических массивов:

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
type // описание типа
  TDSM = array of array of string;

// инициализация массива
var
  DSM: TDSM;
begin
  ...
  SetLength(DSM,10, 20);
  DoSmthng(DSM);

// передача в функцию/процедуру
procedure DoSmthng([var/const] Arr: TDSM); // var если будем изменять массив, иначе const
var
  i,  j: Integer;
begin
  for i := 0 to High(Arr) do begin // i - строки
    ... 
    for j := 0 to High(Arr[i]) do begin // j - столбцы
      ...
    end;
    ...
  end;
end; 
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534454
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelЧто не понятно в словосочетании двумерный массив?!
Отставить панику.

Нужен массив, используй массив. Не понятно, зачем ходить на форумы, если всё прекрасно знаешь сам?
https://www.google.com/search?q=delphi массивы
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534468
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelДок,
Задач несколько.
Одна из которых - удалить пустые строки двумерного массива. Именно удалить, а не двигать все. На вход подается двумерный массив, выходит двумерный массив.

Как можно удалять не двигая ?
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534472
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
schi,
В новый массив
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534477
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
schi,
2 раза перебирать массив. Первый раз считаешь все не пустые строки, создаешь новый массив, в него пишешь
не пустые строки, возвращаешь новый массив. Вот и вся функция. Но застрял на синтаксисе :) на vb6.0, на java написал, на паскале не могу.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534481
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelschi,
2 раза перебирать массив. Первый раз считаешь все не пустые строки, создаешь новый массив, в него пишешь
не пустые строки, возвращаешь новый массив. Вот и вся функция. Но застрял на синтаксисе :) на vb6.0, на java написал, на паскале не могу.
Зачем два раза перебирать? Создаёшь новый массив с количеством строк равным старому. После этого проходишь по первому массиву, копируешь не пустые строки и считаешь их одновременно. После прохода корректируешь длину нового массива. Вуаля.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534482
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Но для этой задачи нафиг не упал двумерный массив, тут одномерного за глаза.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534486
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alekcvp,
Как это не упал?
Удалить пустые строки двумерного массива.
В этой теме о простых массивах не говорится, только о двумерных.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534493
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelalekcvp,
Как это не упал?
Удалить пустые строки двумерного массива.
В этой теме о простых массивах не говорится, только о двумерных.
Ну тогда, в принципе, то же самое, только в результирующем массиве у тебя будет массив массивов с разной длиной .
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534498
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alekcvp,
А зачем массив массивов?
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534558
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelalekcvp,
А зачем массив массивов?
Представь что у тебя в первой линии двумерного массива 20 строк, из них 5 пустые. А во второй - 20 строк, из которых 8 пустых. Как ты 12 строк запихнёшь в линию массива [x, 15], чтобы в ней не было пустых строк?
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534565
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alekcvp,
Какая разница? В вашем примере размерность 20, не важно сколько пустых, если в строке хоть один элемент, то она не пустая, а вот когда ни одного, то пустая.
С Т О Л Б Ц Ы
Т 1 2 3 4 5 6 7
Р 3 8 в 5 9 11
О ы в + ь . 33э
К
И м
Строка К - пустая, остальные нет.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534572
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelalekcvp,
Какая разница? В вашем примере размерность 20, не важно сколько пустых, если в строке хоть один элемент, то она не пустая, а вот когда ни одного, то пустая.
С Т О Л Б Ц Ы
Т 1 2 3 4 5 6 7
Р 3 8 в 5 9 11
О ы в + ь . 33э
К
И м
Строка К - пустая, остальные нет.
Понятно. Ты бы уточнял, что "строка", имеется в виду строка таблицы, а не string.
Тогда ещё вопрос, что значит "строка К пустая", т.к. элементы массива не могут быть "пустыми", то что считается пустотой - пробел, #0 или что?
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534575
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alekcvp,
Пустое - элемент зарезервирован, но не заполнен. Имеет значение null
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534577
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelalekcvp,
Пустое - элемент зарезервирован, но не заполнен. Имеет значение null
В паскале нет null, за исключением указателей. Если у тебя массив символов, то там будет либо #0, либо мусор.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534578
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alekcvp,
Я не знаю что такое #0 :(
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534591
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А Empty есть?
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534593
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelalekcvp,
Я не знаю что такое #0 :(
#0 - это символ с кодом 0.
Для символьных есть только коды символов - от 0 до $FF(AnsiChar) или $FFFF (Unicode). Поэтому я и предлагал использовать массив строк - там проще определить что строка пустая.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534596
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну или использовать PChar, там есть nil, но будет геморрой с управлением памятью. Или Variant, там есть Null, но это из пушки по воробьям.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534608
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alekcvp,
Ну как вариант еще длину строки.
Берем стринговый sum и складываем в него все содержимое iй строки, проверяем длину, если = 0 то пустая.

А так тип Variant судя по описанию очень привлекательный.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534611
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelalekcvp,
Ну как вариант еще длину строки.
Берем стринговый sum и складываем в него все содержимое iй строки, проверяем длину, если = 0 то пустая.
А так тип Variant судя по описанию очень привлекательный.
Это какая-то лабораторная работа что-ли? Иначе смысл требования именно двумерного массива непонятен.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534612
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alekcvp,
Нет, это пережитки прошлого ;)
Я привык к ним, к массивам, к их гибкости и многофункциональности.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534625
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelalekcvp,
Нет, это пережитки прошлого ;)
Я привык к ним, к массивам, к их гибкости и многофункциональности.

Вторую страницу уже видно про гибкость и функциональность. Задача какая решается ?
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534631
BlackeAngel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534659
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlackeAngelschi,

http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1273748&msg=20859698
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
function Compact(const Source: TStringArray): TStringArray;
var
  Index: Integer;
  Count: Integer;
begin
  Count := 0;
  SetLength(Result, Length(Source));
  for Index := 0 to High(Source) do begin
    if Source[Index] = '' then Continue;
    Result[Count] := Source[Index];
    Inc(Count);
  end;
  SetLength(Result, Count);
end;


С удовольствием взгляну на "гибкий и функциональный" код для двумерного массива из Variant
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534682
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvp,

TSparseList
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534711
alekcvp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
schi,

Гугл на него почему-то только иероглифами ссылки выдаёт.
...
Рейтинг: 0 / 0
Несколько вопросов про массивы(pascal)
    #39534720
schi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alekcvpschi,

Гугл на него почему-то только иероглифами ссылки выдаёт.

grids.pas
...
Рейтинг: 0 / 0
49 сообщений из 49, показаны все 2 страниц
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Несколько вопросов про массивы(pascal)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]