Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
2 EDUDK01 Да, так будет точнее. Запамятовал.Зациклился на IsNull. Твой вариант лучше. А использовать iif не лучше, так как конструкция получается длиннее :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 12:51 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
2 SergeySV Фэнкс за функшн. Пигодится :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 12:52 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
Интересно, кто-нибудь сможет меня убедить, что эта функция работает не так, как NZ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 13:11 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
2 Goodzvb: IIf(myValue <> IsNothing, myValue, "Nothing")И все, где же длиннее? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 13:51 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
Хоть они и не все точно иммитируют Access\'овской Nz Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 14:56 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
2 marvan -)) для полноты картины не хватает варианта запуска с отсутствующим вторым параметром сравнения в режме компиляции native и pCode в данном случае, картинку, скорее всего, не изменят. ЗЫ ИМХО, для начала, корректней было бы росто "проверить функционал" - соответствие поведения имитируемому объекту - Access.NZ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 15:24 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
2 marvan кстати, поделитесь секретом - как Вам удалось заставить работать вот это Код: plaintext 1. 2. 3. 4. 5. да еще и время намерить... ))) (это шутка - без обид) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 15:31 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
2 Marvan: функция F3 здесь как оказалась? Она же работать не будет. Ну присвоит она всем "нулевым" значениям Nothing и что? А с остальными то значениями она что делать будет? 2 All: Кстати если IsNull заменить на Len(myValue), то должно работать еще быстрее, потому как в начале каждой строки идет инфо о ее длине, соответственно не надо анализировать содержание самой строки. И потом кто нибудь замерял как быстро Nz работает в аксесе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 15:35 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
2 marvan я понял "секрет" - option explicit "не стояло". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 15:37 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
Знаете, за что я недолюбливаю Access? Если в проекте добавить Reference на C:\Program Files\Microsoft Office 2003\OFFICE11\msacc.olb - Microsoft Access 11.0 Object (возможны другие варианты) то в своём коде можно пользовать родную Nz Ex: mStr = Nz(myValue, "Nothing") Так вот время которое она показала в вышеуказанном тесте: 1,419136 ' после Dim myValue As Variant 0,889835 ' после myValue = Null 0,633024 ' после myValue = "Value" 2 Victosha Код: plaintext 1. Immediate: Nothing Nothing Value Всё работает. время по QueryPerformanceFrequency и QueryPerformanceCounter ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 15:52 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
2 Marvan круто, в самом аксесе лучше свои аналоги NZ создавать, причем выходит любой вариант кроме F3 будет лучше :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 16:04 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
2 EDUDK01: А ещё лучше если им (Access'ом) не пользоваться ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 16:10 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
2 marvan поставь в заголовке модуля Option Explicit PS в VB это завсегда так - "все работает". А что там работает? Да разве это важно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 16:10 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
Результаты забега: c Option Explicit и Dim IsNothing As Variant для iif варианта Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 17:17 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
надо создать "Test Poll" где будут храниться варианты решений с анализом производительности :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 17:31 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
2 marvan версия windows - какая - прям раззадорил своими замерами. если нт-айк, может ввечеру попробую "пооптимизировать". Полной оптимизации не обещаю. ЗЫ сравнивать с вызовом из Access - ИМХО - некорректно. c Access нужно сравнивать "функционал" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 17:51 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
2 Victosha: A в чем функционал первых 3 функций уступает аксесовскому Nz? Если же всетаки уступает, то хотелось бы знать в чем и насколько это важно, потому что все таки производительность у них конкретно разная. Мне например это интересно потому что я не ожидал именно такой разницы в производительности. А еще мне вот что интересно, несмотря на идентичность конструкции в двух случаях быстрее работает F2 а в одном F4. Причем конструкция F4 позволяет быстрее анализировать данные формата Variant, а F2 быстрее анализирует "явные" форматы типа String и Numeric. Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 18:04 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
f2 и f4 сравнивать бестолку. На глаз, разница во времени в пределах погрешности. Тестирование велось под WinXP VB6 SP5 в откомпиллированном exe. Результаты с вызовом Nz из Access не удивительны, если учесть, что идёт вызов метода объекта. Вероятнее всего, в самом Access работать будет быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 18:33 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
2 EDUDK01 авторA в чем функционал первых 3 функций уступает аксесовскому Nz? 1) Код: plaintext смысл ЭТОГО изобретения- с Вашего позволения -без комментариев. прим. про скорость: IIF() ВСЕГДА (и в VB и в VBA и во всех 32-разрядных версиях) медленнее, чем IF THEN ELSE ENDIF 2) Код: plaintext 1. 2. 3. 4. 5. возвращает принудительно строковое значение - годится инлайн только для строкового приемника, требует обхождения с mStr = "Nothing" по месту. 3) Код: plaintext 1. 2. 3. 4. 5. 6. много лучше вышеперечисленного - очень близко. Несоответствует интерфейсу NZ - у него второй параметр не обязательный. автор в двух случаях быстрее работает F2 а в одном F4 NZVB пыталась писаться (мною) в расчете на то, что в большинстве случаев входящее значение НЕ НУЛЛ. На таких входных данных она должна быть в среднем быстрее. автор myNZ предполагает обратное. - это "минорные" различия. Это просто "глубокий тип для мухоловов" - в ветку выполненного условия VB входит чуть-чуть быстрее, чем в ветку ELSE. PS правда, я так и не дождался доказательств несоответствия NZVB работе Access.NZ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 18:44 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
2 marvan про WinXP - понял можно попробовать "ускорить" - пока не знаю - будет ли толк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.06.2004, 18:50 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
вопрос про ускорение снимаю. надежно измеримого результата получить не удается. Похоже, исходный вариант - практически оптимальный. (разве что явно ByRef прописать... - ...) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 02:57 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
Народ, перестаньте стебаться, в наше время гигагерцев спорить о скорости работы отдельной функции - это издевательство над самим собой Все, кому нужно скорость и маленький код пишут на Сях и прочих масянях (или хотбасиках с мощнобасиками ) Г.Ы. хотя конечно прикольно. Дружно "порадовались" за САКСЕСС всем отделом :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 09:52 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
авторНарод, перестаньте стебаться честно говоря, я отношусь к этому по другому автор...(тут почикано)...в наше время гигагерцев спорить о скорости работы отдельной функции - это издевательство над самим собой оптимизация под некую цель - это не издевательство - это программистская ТЕХНИКА. Просто часть ремесла. Где и как она сгодится - вопрос отдельный. И однажды влезши в "модельную" задачку - почему бы и не посмотреть, где границы разумного. авторВсе, кому нужно скорость и маленький код пишут на Сях и прочих масянях (или хотбасиках с мощнобасиками само по себе все вышеперечисленное среднестатистически не обгонит native компилированный VB-проект более чем на 15-25%. Лично я к цифре около 20 склоняюсь. Если ты знаешь ПОЧЕМУ мощнобасик (или си++) окажется быстрее, то знаешь КАК ускорять VB, чтобы элиминировать эти 20%. На задачах связанных с перемещениями/копированиями больших объемов информации в памяти - может не спасти НИКАКОЙ мощнобасик, поскольку в таких задачах организация данных + алгоритм, а не язык реализации определяют результат. Который в лучшем случае будет отличатся на порядки (межу плохо/хорошо), а в худшем - будет нелинейно зависить от объема данных. ЗЫ а то, что за результат порадовались - это хорошо. ЗЫ2 - это я не со зла - просто утро еще не прошло - никак не проснусь толком... )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 11:03 |
|
||
|
есть в VB6 аналог Nz как в VBA
|
|||
|---|---|---|---|
|
#18+
2 Victosha: По поводу вчерашнего топика 13:11. Разница все таки есть. Функция NZVB обнуляет несуществующие значения, а аксесовская NZ их "игнорирует". Для устранения разницы нужно заменить константу vbEmpty (имеет значение 0) на выражение "". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2004, 12:07 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32545065&tid=2169436]: |
0ms |
get settings: |
5ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
33ms |
get topic data: |
7ms |
get forum data: |
1ms |
get page messages: |
58ms |
get tp. blocked users: |
2ms |
| others: | 203ms |
| total: | 327ms |

| 0 / 0 |
