Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / МАССИВЫ ДЛЯ ЧЕГО ? / 11 сообщений из 11, страница 1 из 1
14.07.2003, 09:38
    #32206698
WASA2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МАССИВЫ ДЛЯ ЧЕГО ?
ДЛЯ ЧЕГО НУЖНЫ МАССИВЫ ?
И КАК С НИМИ РАБОТАТЬ
ПОЖАЛУЙСТА ОБЪЯСНИТЕ ПОПАДРОБНЕЙ ПО ВОЗМОЖНОСТИ , А
ТО Я НЕ ТАК ДАВНО РАБОТАЮ НА ФОКСЕ.
...
Рейтинг: 0 / 0
14.07.2003, 10:56
    #32206816
Hel!Riser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МАССИВЫ ДЛЯ ЧЕГО ?
An ordered collection of data contained in a variable and referenced by a single variable name. Each element of the array can be referenced by a numerical subscript. In Visual FoxPro, the data does not need to be of the same data type within an array
(c) Хельп

оно же после натравления переводчика :)

Упорядоченная совокупность данных содержала в переменной и ссылалась единственным переменным именем. Каждый элемент массива может ссылаться цифровой припиской. В Visual FoxPro, данные не должны быть того же самого типа данных в пределах массива
...
Рейтинг: 0 / 0
14.07.2003, 12:31
    #32206969
karly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МАССИВЫ ДЛЯ ЧЕГО ?
Массивы от таблиц отличаются следующим:

В одном столбце могут содержать данные разных типов

Могут хранить ссылки на объекты.

Имеют ограничения по размерам

Не могут быть оптимизированы с помощью индексов
...
Рейтинг: 0 / 0
15.07.2003, 00:51
    #32207781
Sergey Ch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МАССИВЫ ДЛЯ ЧЕГО ?
Мое личное мнение (зачем нужны):
- когда есть куча однообразного или однотипного (например 5 чеков на кассе для работы одновременно с пятью клиентами) и тебе лень рисовать пять форм - можно использовать массивы для упрощения, например summa(i) - это переменная сумма, а i - номер формы.
- якобы массивы ускоряют работу... спорный вопрос, хотя раньше, когда компьютеры были слабыми - это было действительно так... Ну а теперь можно использовать таблицы - они работают нисколько не медленнее
- удобно использовать команды scatter memvar и gather memvar (они используют массивы для получения в памяти копии одной записи)...

А в общем, в FoxPro можно без них и обойтись, но забывать их не следует, особенно когда будете разговаривать с програмистом на C++ или Delphi (могут о вас плохо подумать, если вы их не используете
...
Рейтинг: 0 / 0
15.07.2003, 08:38
    #32207828
DЭN
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МАССИВЫ ДЛЯ ЧЕГО ?
короче скажу просто...
если тебе нужно запомнить определеное количество данных используй массив, с тем размером которым тебе нужно... одним словом я его называю СТЭК (куча) :-)))))
...
Рейтинг: 0 / 0
22.08.2003, 08:23
    #32244041
MaestroEv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МАССИВЫ ДЛЯ ЧЕГО ?
Sergey Ch - прав. Я отказался от массивов еще в FPD 2.6 Скорость при работе с курсорами такая же, а при отладке курсор просто просмотреть. И скажем с табличками фоксовикам легче работается...
...
Рейтинг: 0 / 0
22.08.2003, 08:38
    #32244055
Aijik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МАССИВЫ ДЛЯ ЧЕГО ?
Не помню, где читал, но работа с массивами - одна из слабых мест ФоксПро. Не в смысле возможностей, а всмысле скорости по сравнению с другими языками. Кто может более развернуто про это чёйнить сказать?
...
Рейтинг: 0 / 0
22.08.2003, 09:59
    #32244147
Равиль
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МАССИВЫ ДЛЯ ЧЕГО ?
Всем привет :)
Думаю причина "медленной" работы с массивами (да и с простыми переменными, просто на массивах это заметнее) в FoxPro связана с тем, что от нас не требуется строгое описание типов данных в них, и при обращении к ним FoxPro роется в них в поисках то признака окончания строки, то определения типа данных. Но в этом скорее преимущество, чем недостаток :)
...
Рейтинг: 0 / 0
22.08.2003, 12:00
    #32244400
Анатолий Широков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МАССИВЫ ДЛЯ ЧЕГО ?
2 Равиль

Странная гипотеза. Мое лично мнение, что массив в фоксе (одномерный или многомерный, не важно), ничто иное как

Код: plaintext
1.
// dimension laArray( 1 )
variant_t** laArray = new (variant_t*)[ 1 ];


А все проблемы тормознутости в отсутствии прогноза на количество элементов - одним словом постоянный realloc:

Код: plaintext
1.
2.
3.
4.
5.
6.
// dimension laArray( 2 )
{
   variant_t** temp = new (variant_t*)[ 2 ];
   std::copy(laArray, laArray+ 1 , temp);
   std::swap(laArray, temp);
   delete [] temp;
}


Известный факс, что динамическое распределение памяти одно из самых узких мест.

Это мое, имхо.
...
Рейтинг: 0 / 0
22.08.2003, 12:37
    #32244482
Crip
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МАССИВЫ ДЛЯ ЧЕГО ?
Мои эксперименты с СОМ говорят о том , что фоксовый массив все же один из вариантов SAFEARRAY, где все члены имеют тип VARIANT. Именно поэтому размерность начинается не с 0 как в С , а с 1 .

Интересно другое. Как VFP8 преобразовывает свой массив в настоящий SAFEARRAY , по аналогии с VB, при описании типа
LOCAL ARRAY laArray[5] as integer
...
Рейтинг: 0 / 0
22.08.2003, 13:16
    #32244558
Равиль
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
МАССИВЫ ДЛЯ ЧЕГО ?
Я тут забежал на минутку - маляры покрасили полы.
Да, конечно, постоянный реаллок, но это "не наша проблема".
Короче, до завтра. Удачи всем!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / МАССИВЫ ДЛЯ ЧЕГО ? / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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