login писал(а):
const
arr3:array[0..1363] of integer ;
А он пишет:
Error: '=' expected but ';' found
Ответов: 16884
Рейтинг: 1239
|
|||
login писал(а): const arr3:array[0..1363] of integer ; А он пишет: Error: '=' expected but ';' found |
|||
карма: 25 |
|
Ответов: 1429
Рейтинг: 50
|
|||
ПОлучилось вот так
![]() code_25392.txt И работает, щас буду пробовать размеры проверять. ------------ Дoбавленo в 00.43: Работает, 65 000 значений, пишет и читает. (больше не проверял ![]() Код элемента:
Нужный размер массива надо будет в проперти загнать. Ура! Товарищи! ------------ Дoбавленo в 00.49: Может можно было замутить динамический массив, если бы я знал как на делфи это выглядит? |
|||
карма: 0 |
| ||
файлы: 1 | code_25392.txt [1.9KB] [165] |
Ответов: 3889
Рейтинг: 362
|
|||
login писал(а): как на делфи это выглядит?AFAIK, без квадратных скобок, т.е. без размерности (размеры потом придётся указывать всё равно, через SetLength(массив, размер) ). Можно ещё объявить массив из массивов (Array of Array), то есть многомерный массив. |
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
А как при помощи SetLength, сделать точку "добавить запись в конец массива"?
------------ Дoбавленo в 01.05: А, наверное так: 1. узнать размер массива 2. увеличить размер массива на 1 3. записать значение в последнюю ячейку |
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
login писал(а): записать значение в последнюю ячейкуКстати, нумерация в динамических массивах относительная, то есть начинается с нуля. |
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Надеюсь что "2. увеличить размер массива на 1" это не медленная операция (при размере массива 50 000).
------------ Дoбавленo в 05.25: Добавил элементы FTCG Big Array в раздел "Делаем компоненты". ![]() ------------ Дoбавленo в 08.19: C 'array of array' еще прийдется поломать голову. ![]() ------------ Дoбавленo в 11.33: Подскажите, как заставить работать этот пример из инета?
|
|||
карма: 0 |
|
Разработчик
Ответов: 26305
Рейтинг: 2146
|
|||
карма: 22 |
| ||
файлы: 1 | code_25397.txt [1KB] [202] | ||
Голосовали: | login |
Ответов: 3889
Рейтинг: 362
|
|||
login, кстати, многомерный массив вовсе не обязан быть быть таблицей, каждому подмассиву можно назначать размерность индивидуально, через SetLength(массив[индекс_подмассива], размер)
|
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
карма: 0 |
| ||
файлы: 1 | code_25398.txt [1.2KB] [137] |
Ответов: 3889
Рейтинг: 362
|
|||
login писал(а): скопировать один массив в другойМожет, Copy(массив,0,High(массив)) ![]() |
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Попробовал: Copy(ar2[0,0],0,High(ar1));
Error: Incompatible types Я же пытаюсь копировать в массив integer, может это не возможно, и для многомерного массива должен быть другой тип массива ar2? |
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
login писал(а): может это не возможноПеребором в цикле ![]() |
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
1nd1g0 писал(а): Перебором в циклеar2 := ar1; Странно, что он пишет: .pas(36) Error: Incompatible types Ужасно перебирать в цикле, массивы нужны большие. ------------ Дoбавленo в 13.25: При простом копировании, копируется не массив а указатель на массив. Как-то можно получить указатель на массив, и записать его в строковый массив как строку, чтобы потом использовать его? |
|||
карма: 0 |
|
Ответов: 3889
Рейтинг: 362
|
|||
login писал(а): делфи сам все делаетЭто ещё большой вопрос, КАКАЯ ВЕРСИЯ компилятора научилась это делать (кстати, что под FPC?) login писал(а): указатель на массивСам массив получаем прибавив к имени ^ Но он Вам не даст скомпилировать, скажет, что нужен указатель. login писал(а): получить указатель на массив, и записать его в строковый массив как строкуЧто-то у меня серьёзные сомнения, что в этой среде массивы можно обрабатывать как непрерывные области памяти, как в cc++. Опять же, вероятно, придётся делать перебор. ------------ Дoбавленo в 13.34: 1nd1g0 писал(а): что под FPC?Сам спросил, сам ответил - под FPC компилируется без ошибок и даже работает. |
|||
карма: 1 |
|
Ответов: 1429
Рейтинг: 50
|
|||
да, но удобный финт типа: "ar2[0,0,0] := ar1;" - не работает. Наверное это невозможно. Или надо поставить компилятор посвежее.
|
|||
карма: 0 |
|