Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2009, 09:28   #11
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 844
По умолчанию

Цитата:
Сообщение от slan Посмотреть сообщение
может быть код будет и красивше, но работать будет дольше..
я выбираю эффективность.
И в чем эффективность? Могу я попросить реальные примеры?
Вот на основе примере выше я смогу показать, что через мерное увлечение типизацией данных привело в неработоспособности процедуры в определенный момент.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 16.03.2009, 09:38   #12
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 844
По умолчанию

Цитата:
Сообщение от slan Посмотреть сообщение
может быть код будет и красивше, но работать будет дольше..
Поправлюсь.... предыдущий ответ был не совсем корректным.
На счет скорости выполнения согласен, в данном языке программирования использование не типизированных данных приводит к замедлению выполнения кода. Как ни крути тип данных в VBA присутствует всегда, я уже несколько раз не летал на это, сказывается долгий опыт работы в ином языке программирования.
Но моя ремарка касалась самого подхода к программированию, так сказать из "академических" соображений.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 16.03.2009, 09:45   #13
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 844
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
tae1980
А штаны себе тоже 60 размере покупаешь?
Оригинально...
На самом деле это обычная реакция людей ни когда не сталкивающихся с Rexx'сом. Это язык который предлагает несколько иные подходы к программированию. Хотя на освоение языка у меня ушла неделя, еще почти пол года приходилось ломать стереотипы заложенные ранее.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 16.03.2009, 10:47   #14
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

Цитата:
Сообщение от SAS888 Посмотреть сообщение
tae1980
А штаны себе тоже 60 размере покупаешь?


я бы сравнил это с рабтой автослесаря, когда из инструментов используются только кувалда, разводной ключ и пассатижи..

но вы сами, наверное, догадываетесь, что это за слесарь?


выложите пример с неработающим кодом.
slan вне форума Ответить с цитированием
Старый 16.03.2009, 10:49   #15
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

Цитата:
Сообщение от tae1980 Посмотреть сообщение
Поправлюсь.... предыдущий ответ был не совсем корректным.
На счет скорости выполнения согласен, в данном языке программирования использование не типизированных данных приводит к замедлению выполнения кода. Как ни крути тип данных в VBA присутствует всегда, я уже несколько раз не летал на это, сказывается долгий опыт работы в ином языке программирования.
Но моя ремарка касалась самого подхода к программированию, так сказать из "академических" соображений.
пошире можно? как физически это происходит?

каким образом процессор обрабатывает за одинаковое время 16 и 4 байта?(16 и 4 - конечно же условно)
slan вне форума Ответить с цитированием
Старый 16.03.2009, 14:36   #16
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 844
По умолчанию

Цитата:
Сообщение от slan Посмотреть сообщение
пошире можно? как физически это происходит?
каким образом процессор обрабатывает за одинаковое время 16 и 4 байта?(16 и 4 - конечно же условно)
Очень просто, для интерпретатора все переменные текстовые и числа хранятся как текст. По этому разрядность уже значение не имеет. При этом как не странно скорость очень и очень хорошая. В одной статье по рекксу бы описан пример (статью быстро не найду): на машине 400Мг, 16 мб ОЗУ число PI до 48 знака считается меньше чем за секунду. При этом ограничение по длине ввел программист.
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 16.03.2009, 14:40   #17
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

это же очень долго?
slan вне форума Ответить с цитированием
Старый 16.03.2009, 15:04   #18
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 844
По умолчанию

Цитата:
Сообщение от slan Посмотреть сообщение
это же очень долго?
если интересно, попробую найти статью...

Я начал работать с рексом на 386 машине, 20 Мгц, под OS/2 warp 3.0, ни разу не возникало проблем по скорости работы. Не думаю что бы VBA чувствовал себя "комфортно" на подобной машине, я сомневаюсь, чтобы он вообще туда встал бы ). Ей
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 17.03.2009, 07:16   #19
tae1980
Форумчанин
 
Регистрация: 02.02.2009
Сообщений: 844
По умолчанию Новые версии процедур

Столкнулся с проблемой при работе с текстовыми файлами, в них могут в качестве разделителя между словами использоваться табуляция. В этом случае процедуры не работали. viter.alex подсказал как заменить табуляцию на пробел. Доработал процедуры, до работы с текстовыми строками в которых в качестве разделителя используется табулятор.
Код:
'' *** Words ***
'Определяет количество слов в строковой перемнной.
'Аналог команды Rexx.

'На входе:
'str           - Строковая перменная.

'На выходе:
'words         - Количество слов в переменной.

Function words(str) As Long
    words = UBound(Split(Application.Trim(Replace(str, vbTab, " ")), " ")) + 1
End Function

'' *** Word ***
'Функция возвращает n-ное слово в указаной строке.
'Аналог команды Rexx.

'На входе:
'str           - Строковая перменная.
'Number        - Номер слова.

'На выходе:
'word          - n-ное слово или пустую строку если слова с таким номером нет.

Function word(str, number) As String
    On Error Resume Next
    word = Split(Application.Trim(Replace(str, vbTab, " ")), " ")(number - 1)
End Function
С уважением, Алексей.
tae1980 вне форума Ответить с цитированием
Старый 17.03.2009, 11:05   #20
slan
Форумчанин
 
Аватар для slan
 
Регистрация: 30.01.2008
Сообщений: 314
По умолчанию

Цитата:
Сообщение от tae1980 Посмотреть сообщение
если интересно, попробую найти статью...

Я начал работать с рексом на 386 машине, 20 Мгц, под OS/2 warp 3.0, ни разу не возникало проблем по скорости работы. Не думаю что бы VBA чувствовал себя "комфортно" на подобной машине, я сомневаюсь, чтобы он вообще туда встал бы ). Ей

basic включался в ms dos.. и на 286х

я писал помнится программку типа икселя(табличный процессор)..
году так в 1990м.. на турбо-бэйсике - ничо, работало.. и формулы, и диаграммы, и ограничений на количество столбцов не было
иксель конечно покруче , но тогда я почему-то не знал, что оно существует..
slan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Реализация функций из библиотеки stdio.h Blade Общие вопросы C/C++ 9 23.11.2008 12:35
Реализация функций синхронизации потоков. натка Помощь студентам 1 03.01.2008 15:26
Проблеммы с использованием функций работы со строками Copy и Pos Soso Общие вопросы Delphi 13 09.08.2007 16:01
нужна помощь по работе с строками файлов... Ruffian Общие вопросы Delphi 9 15.11.2006 16:05