![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Rondo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
Хелп! Создал тему и даже незнаю как ее назвать
Короче, мне нужно сделать условный оператор if, но таким образом чтоб он проверял массив. Пример..
Надеюсь вы поняля что я имелл ввиду Это сообщение отредактировал(а) Rondo - 28.5.2006, 10:13 --------------------
Начинающий кодер |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Там всегда что-та есть.
Это массив чего? |
|||
|
||||
| Rondo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
Массив чисел. Можно даже пример и без массива!
Главное я непонял как это.. проверяется на пустоту! А что хранится в пустом массиве? Который еще ничем незаполняли? --------------------
Начинающий кодер |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Массив чисел не бывает пустым.
Там как минимум сидят нули в каждом элементе. Числа тоже бывают разными. integer, real, byte, word, dword, int64, double, single, cardinal... |
|||
|
||||
| Rondo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
Массив Integer; Кажется понял как правильно сформировать вопрос Надо проверить были ли заполнен некий элемент(ы) массива --------------------
Начинающий кодер |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Тут 2 варианта:
1. написать функцию, которая будет бежать по всем элементам и проверять их на равность нулю. 2. Создать второй массив или блок данных того же размера, заполненный нулями, а потом сравнить их через CompareMem Или сделать по грамотному: не массив, а объект-List. Запись элемента фиксировать при помощи инкапсуляции. |
|||
|
||||
| Rondo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
--------------------
Начинающий кодер |
|||
|
||||
| Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 30 Всего: 50 |
Rondo,
-------------------- |
|||
|
||||
| Rondo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
спасибо
--------------------
Начинающий кодер |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Вариант с СompareMem:
|
|||
|
||||
| Mechanic |
|
||||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: 6 Всего: 7 |
А кто сказал, что 0 - это не заполненный элемент?
А если было присваивание a[1] := 0; то такой элемент заполненный, или нет? Правильнее всё-таки, наверное
Добавлено @ 13:00 Не. Не совсем. SetLength не заполняет элементы нулями.
Еще бы сюда
--------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
||||||
|
|||||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
По дефолту так, если массив описан в интерфейсной части. Иначе мусор, который определить невозможно.
Правильнее, грамотнее, но сложнее в реализации. Зато потом работать с такой структурой - одно удовольствие. Поэтуму необходимость такой заморочки зависит от того, как много мы собираемся работать с этой структурой. Если код небольшой, то и незачем заморачиваться. А вот, если большой, то очень стоит подумать. С грамотной структурой он и читается проще. Заполняет. FillChar там уже прописан. Это уже обсуждалось когда-то. |
|||
|
||||
| Mechanic |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: 6 Всего: 7 |
Точно. Проверил. Внутри DynArraySetLength стоит Call @FillChar.. SDK врёт. А я, олух, ухи развесил, и его слушаю.. Snowy, уж дзвыняй, меня подставили.. А по сабжу, действительно, смотря что нужно получить в конце, и насколько часто это нужно делать. Тут ещё семантика слова "пустой" важна. Например, если в массиве хранятся индексы zero-based массивов, то 0 тут никак не пустой. А иногда вводят специальную константу, которой метят "пустой" элемент (вместо привычного nil = 0). Ну, а если нужно в самом деле определять факт модификации массива (типа события OnChange для него), тогда в самом деле, без проперти-райтера не обойтись. --------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
|||
|
||||
| Rondo |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 154 Регистрация: 24.2.2006 Где: там.. Репутация: нет Всего: нет |
Да уж
Я думал будет проще! Много чего непонятного.. т-к пока начинающий! --------------------
Начинающий кодер |
|||
|
||||
| Mechanic |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: 6 Всего: 7 |
Если получилось просто, то зачем во что-нить врубаться? Если во все врубаться, то никогда ничего не сделаешь, т.к. обязательно будет в том, что собираешься сделать, то, о чем ты еще не знаешь. Просто замени свое "ЧТО-ТО" на то, что действительно там может быть, и всё. И делов-то.. Иначе, для общего случая, и не таких методов тебе подбросят.. --------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |