Войти
NeoBooker.ru
Добро пожаловать к нам в гости!
Наш сайт посвящён программе NeoBook, с помощью которой вы легко сможете создавать собственные мультимедиа-приложения без необходимости изучать сложные языки программирования! Зарегистрируйтесь, чтобы стать членом нашего сообщества.
Модератор форума: Peter, DEMBEL, YURIY  
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Способы реализации триальности программы (Какие можно придумать способы реализации триал-версий?)
Способы реализации триальности программы
Alex3AДата: Ср, 05 Августа 2009, 03:45 | Сообщение # 61
Друг клуба ММВ
Quote (VadimLevkin)
Правильно мыслю?

Где то так.
Если сдвинуть на 8 бит, то просто плучится сдвиг текста на одну букву,
так что двигать надо не более чем на 7 бит. :D
 
Сообщение
Quote (VadimLevkin)
Правильно мыслю?

Где то так.
Если сдвинуть на 8 бит, то просто плучится сдвиг текста на одну букву,
так что двигать надо не более чем на 7 бит. :D

Автор - Alex3A
Дата добавления - 05 Августа 2009 в 03:45
ВадимДата: Ср, 05 Августа 2009, 03:58 | Сообщение # 62
Генератор идей
Quote (Alex3A)
Где то так.

Да уж, в середину нехилого файла явно не положить... :D
Т.е. получается 7 в одну сторону, и 7 в другую? Расшифровать можно простым перебором, пока на экране не появится осмысленный текст? Хотя, действительно, догадаться еще надо, что именно такой простой алгоритм применен.
А как быть с именем и форматом файла? Они тоже должны меняеться при сдвиге? Ведь запись о них тоже должна быть в этом ряду нулей/единиц, вначале, если я правильно понимаю.


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Alex3A)
Где то так.

Да уж, в середину нехилого файла явно не положить... :D
Т.е. получается 7 в одну сторону, и 7 в другую? Расшифровать можно простым перебором, пока на экране не появится осмысленный текст? Хотя, действительно, догадаться еще надо, что именно такой простой алгоритм применен.
А как быть с именем и форматом файла? Они тоже должны меняеться при сдвиге? Ведь запись о них тоже должна быть в этом ряду нулей/единиц, вначале, если я правильно понимаю.

Автор - Вадим
Дата добавления - 05 Августа 2009 в 03:58
Alex3AДата: Ср, 05 Августа 2009, 04:15 | Сообщение # 63
Друг клуба ММВ
Quote (VadimLevkin)
А как быть с именем и форматом файла?

А это не имеет ни какого отношения к собственно содержимому файла,
они в основном для людей и тупых програм.
Имя файла и расширение, вообще в самом файле не присутствуют,
они живут в каталоге справочника, это такая область на диске,
а сам файл, физически, может быть разбросан, частями, по всему
диску. Размер элементарной части файла можеш определить создав
текстовый файл и записав туда один символ. Щелкнув правой кнопой
мыши, свойства, размер на диске. Когда размер данных превысит
размер елементарной ячейки (кластера), система даст ей следующий
кластер, который будет находится в непредсказуемом, для тебя, месте.

Добавлено (05 Август 2009, 04:15)
---------------------------------------------
Имя и расширение тоже бинарны, вообще зипись о файле в справочнике
имеет кроме них еще кучу всякой информации :D

 
Сообщение
Quote (VadimLevkin)
А как быть с именем и форматом файла?

А это не имеет ни какого отношения к собственно содержимому файла,
они в основном для людей и тупых програм.
Имя файла и расширение, вообще в самом файле не присутствуют,
они живут в каталоге справочника, это такая область на диске,
а сам файл, физически, может быть разбросан, частями, по всему
диску. Размер элементарной части файла можеш определить создав
текстовый файл и записав туда один символ. Щелкнув правой кнопой
мыши, свойства, размер на диске. Когда размер данных превысит
размер елементарной ячейки (кластера), система даст ей следующий
кластер, который будет находится в непредсказуемом, для тебя, месте.

Добавлено (05 Август 2009, 04:15)
---------------------------------------------
Имя и расширение тоже бинарны, вообще зипись о файле в справочнике
имеет кроме них еще кучу всякой информации :D


Автор - Alex3A
Дата добавления - 05 Августа 2009 в 04:15
ВадимДата: Ср, 05 Августа 2009, 04:32 | Сообщение # 64
Генератор идей
Quote (Alex3A)
еще кучу всякой информации

Ну, если не Имя, значит справочник должен помнить адрес и размер этого файла, точнее его кусков и порядок их "сочленения" (слово то какое выбрал... :D ), ну и все равно должен ассоциировать с этим "набором сочленов" имя файла и его тип.
А что там еще может хранить справочник, я даже боюсь вообразить :D . Этот справочник - не реестр, случайно? (ну, для Win95 и выше, если я правильно помню...)
...
Добавлено...
В общем, учить матчасть! Учиться, учиться и учиться! Как завещали все "неленинивые"! :D

Добавлено...
Хочу поделиться хорошей новостью, удалось это сделать:

Code
...использовать запароленный zip-архив как файл-сейф данных для программы (некий файл, доступ в который может получить только программа, поскольку она знает пароль). Думаю в этом "сейфе" можно хранить число запусков и другие параметры. Использовал команды hpwZipString hpwUnZipString hpwIniWrite hpwIniRead плагина hpwUtility

Quote (Peter)
Я заметил такую закономерность - глюки возникают (на моем компе) при архивации строковых (буквенных) значений, а с цифрами проблем нет!

У меня сохраняются нормально и буквы (имена параметров). Однако, есть нюанс: если привести файл перед архивацией в бинарный вид (командой rlNumtoBin плагина rlFunctions), то архивируется корректно (проверено распаковкой вручную), но вот разархивироваться программно отказывается наотрез - прога просто аварийно завершает работу на команде разархивации. Наверное просто потому, что в ini не только числовые значения. Надо будет проверить экспериментально.

Обнаружил так же любопытную вещь. Командой hpwIniWrite можно редактировать файлы *.reg - уж очень они похожи по структуре. Однако если прямо этой командой создавать такой файл, то Виндовс ругается на то, что мол файл не бинарный, исполнять его не стану, в реестр заносить значения не буду. Но если создать сначала экспортом из реестра, то можно его потом редактировать программно. Только вот в первом приближении исполнить файл все равно не удалось - Виндовс пишет, что все изменения удачно внесены, но в ключе реестра изменений не обнаружилось. Далее не экспериментировал, поскольку необходимости нет, но любопытно, может кто знает объяснение этого феномена? Почему в реестр не записывается, хотя диалоговое оно Виндовс утверждает обратное?


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)

Сообщение отредактировано
VadimLevkin - Ср, 05 Августа 2009, 09:09
 
Сообщение
Quote (Alex3A)
еще кучу всякой информации

Ну, если не Имя, значит справочник должен помнить адрес и размер этого файла, точнее его кусков и порядок их "сочленения" (слово то какое выбрал... :D ), ну и все равно должен ассоциировать с этим "набором сочленов" имя файла и его тип.
А что там еще может хранить справочник, я даже боюсь вообразить :D . Этот справочник - не реестр, случайно? (ну, для Win95 и выше, если я правильно помню...)
...
Добавлено...
В общем, учить матчасть! Учиться, учиться и учиться! Как завещали все "неленинивые"! :D

Добавлено...
Хочу поделиться хорошей новостью, удалось это сделать:

Code
...использовать запароленный zip-архив как файл-сейф данных для программы (некий файл, доступ в который может получить только программа, поскольку она знает пароль). Думаю в этом "сейфе" можно хранить число запусков и другие параметры. Использовал команды hpwZipString hpwUnZipString hpwIniWrite hpwIniRead плагина hpwUtility

Quote (Peter)
Я заметил такую закономерность - глюки возникают (на моем компе) при архивации строковых (буквенных) значений, а с цифрами проблем нет!

У меня сохраняются нормально и буквы (имена параметров). Однако, есть нюанс: если привести файл перед архивацией в бинарный вид (командой rlNumtoBin плагина rlFunctions), то архивируется корректно (проверено распаковкой вручную), но вот разархивироваться программно отказывается наотрез - прога просто аварийно завершает работу на команде разархивации. Наверное просто потому, что в ini не только числовые значения. Надо будет проверить экспериментально.

Обнаружил так же любопытную вещь. Командой hpwIniWrite можно редактировать файлы *.reg - уж очень они похожи по структуре. Однако если прямо этой командой создавать такой файл, то Виндовс ругается на то, что мол файл не бинарный, исполнять его не стану, в реестр заносить значения не буду. Но если создать сначала экспортом из реестра, то можно его потом редактировать программно. Только вот в первом приближении исполнить файл все равно не удалось - Виндовс пишет, что все изменения удачно внесены, но в ключе реестра изменений не обнаружилось. Далее не экспериментировал, поскольку необходимости нет, но любопытно, может кто знает объяснение этого феномена? Почему в реестр не записывается, хотя диалоговое оно Виндовс утверждает обратное?


Автор - Вадим
Дата добавления - 05 Августа 2009 в 04:32
Alex3AДата: Ср, 05 Августа 2009, 13:10 | Сообщение # 65
Друг клуба ММВ
Quote (VadimLevkin)
Ну, если не Имя, значит справочник должен помнить адрес и размер этого файла, точнее его кусков и порядок их "сочленения"

Я ж тебе писал - структура на диске, последовательная, бит за битом,
некую ее визуализацию ты видиш в проводнике, как структуру папок и файлов.
В ней то и указаны адреса (номер кластера) начала каждого файла, в конце
первого кластера адрес следующего, и так далее по цепочке. При удалении
файла, файл физически не стирается, просто его кластеры объявляются свободными,
и запись в каталоге маркируется как недействительная.
Quote (VadimLevkin)
Этот справочник - не реестр, случайно? (ну, для Win95 и выше, если я правильно помню...

Реестр - это огромный мусорник, содержащий параметры настроек системы, и всякой
гадости которую туда суют все программы, не вполне удачный вариант хранения
настроек, ранее они хранились в ини файлах, для каждой проги отдельно.
В подавляющем большинстве случаев, винда умирает по причине нарушений записей в реестре, выводы делай сам. Реестр тоже хранится в файлах.
Я использую реестр только в очень редких случаях, вовсе не потому что чего то
не знаю, а наоборот, понимаю что это плохо.
Quote (VadimLevkin)
Командой hpwIniWrite можно редактировать файлы *.reg

Так реестр и произошол от ини файла.
Quote (VadimLevkin)
В общем, учить матчасть!

Лучше поучиться а не проводить эксперементы с реестром, можно делать все,
только в том случае, когда понимаеш что делаеш. Феноменов тут нет никаких,
просто ты сам не знаеш что и куда ты занес. "Сделать хотел грозу, а получил козу..." Виндовс утверждает обратное? очевидно, в этот раз она оказалась
сообразительней тебя, сделала то что ты попросил, но не что хотел попросить. :D
 
Сообщение
Quote (VadimLevkin)
Ну, если не Имя, значит справочник должен помнить адрес и размер этого файла, точнее его кусков и порядок их "сочленения"

Я ж тебе писал - структура на диске, последовательная, бит за битом,
некую ее визуализацию ты видиш в проводнике, как структуру папок и файлов.
В ней то и указаны адреса (номер кластера) начала каждого файла, в конце
первого кластера адрес следующего, и так далее по цепочке. При удалении
файла, файл физически не стирается, просто его кластеры объявляются свободными,
и запись в каталоге маркируется как недействительная.
Quote (VadimLevkin)
Этот справочник - не реестр, случайно? (ну, для Win95 и выше, если я правильно помню...

Реестр - это огромный мусорник, содержащий параметры настроек системы, и всякой
гадости которую туда суют все программы, не вполне удачный вариант хранения
настроек, ранее они хранились в ини файлах, для каждой проги отдельно.
В подавляющем большинстве случаев, винда умирает по причине нарушений записей в реестре, выводы делай сам. Реестр тоже хранится в файлах.
Я использую реестр только в очень редких случаях, вовсе не потому что чего то
не знаю, а наоборот, понимаю что это плохо.
Quote (VadimLevkin)
Командой hpwIniWrite можно редактировать файлы *.reg

Так реестр и произошол от ини файла.
Quote (VadimLevkin)
В общем, учить матчасть!

Лучше поучиться а не проводить эксперементы с реестром, можно делать все,
только в том случае, когда понимаеш что делаеш. Феноменов тут нет никаких,
просто ты сам не знаеш что и куда ты занес. "Сделать хотел грозу, а получил козу..." Виндовс утверждает обратное? очевидно, в этот раз она оказалась
сообразительней тебя, сделала то что ты попросил, но не что хотел попросить. :D

Автор - Alex3A
Дата добавления - 05 Августа 2009 в 13:10
ВадимДата: Ср, 05 Августа 2009, 18:20 | Сообщение # 66
Генератор идей
Quote (Alex3A)
некую ее визуализацию ты видиш в проводнике, как структуру папок и файлов

Наверное визуализация при дефрагментации точнее показывает структуру кластеров на диске?
Quote (Alex3A)
использую реестр только в очень редких случаях

Учту!
Quote (Alex3A)
Лучше поучиться а не проводить эксперементы с реестром

Это верно! :) Эксперимент - хорошее средство обучения, но, наверное, не с реестром, всё-таки, когда делаешь "то ни знаю что"...

Я "не догнал", если Справочник - это отдельная от реестра структура ("область на диске"), то что это и где лежит? Для каких целей Справочник может быть полезен при программировании?

Quote (Alex3A)
сделала то что ты попросил, но не что хотел попросить

Что-то вроде этого :). Только я, честно говоря, так и не понял, что же мы с ней (с Виндовс, то есть) все-таки сделали? :D


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Alex3A)
некую ее визуализацию ты видиш в проводнике, как структуру папок и файлов

Наверное визуализация при дефрагментации точнее показывает структуру кластеров на диске?
Quote (Alex3A)
использую реестр только в очень редких случаях

Учту!
Quote (Alex3A)
Лучше поучиться а не проводить эксперементы с реестром

Это верно! :) Эксперимент - хорошее средство обучения, но, наверное, не с реестром, всё-таки, когда делаешь "то ни знаю что"...

Я "не догнал", если Справочник - это отдельная от реестра структура ("область на диске"), то что это и где лежит? Для каких целей Справочник может быть полезен при программировании?

Quote (Alex3A)
сделала то что ты попросил, но не что хотел попросить

Что-то вроде этого :). Только я, честно говоря, так и не понял, что же мы с ней (с Виндовс, то есть) все-таки сделали? :D

Автор - Вадим
Дата добавления - 05 Августа 2009 в 18:20
Alex3AДата: Ср, 05 Августа 2009, 19:19 | Сообщение # 67
Друг клуба ММВ
Quote (VadimLevkin)
Наверное визуализация при дефрагментации точнее показывает структуру кластеров на диске?

Беспредметное выражение, в огороде бузина а в Киеве дядька.
Quote (VadimLevkin)
Я "не догнал", если Справочник - это отдельная от реестра структура ("область на диске"), то что это и где лежит? Для каких целей Справочник может быть полезен при программировании?

Ты заставляеш меня разводить сопли, ладно.
Диск круглый, делится на радиальные дорожки и сектора, на винчестере, могут быть
несколько дисков, стандартная емкость сектора 512 байт, нулевая дорожка находится с краю диска, у диска две стороны -верх и низ, нулевой сектор на поверхности 0, кластер - совокупность секторов всех поверхностей диска на одной дорожке.
В нулевом кластере находится абсолютный загрузчик, первичная программа, дающая
доступ к диску, дальше таблица разбиения диска, когда ты разбиваеш свой винт
на несколько лог дисков, именно там это и записывается. Далее размещена
FAT филе алокейшен табле - таблица рамещения файлов, он же справочник,
он же каталог (корневой), не корневые каталоги, могут находится в произвольном
месте диска. FAT... FAT32 NTFS это варианты структур каталога.
Это как каталог в библиотеке, по которому ты ищеш книги, по этому он лежит не
на книжных полках а в отведенном для него стандартном месте и нечего общего
с реестром не имеет, ибо существует независимо от него, и не знает о его
реестра, существовании :D
Выход из строя нулевого сектора означает полную смерть винта.
Quote (VadimLevkin)
Только я, честно говоря, так и не понял, что же мы с ней (с Виндовс, то есть) все-таки сделали?

Всунул ей какой то левый ключ, просто добавил мусора.
О его полезности, тем более в програмировании, я расказывать не буду, думаю
ты сам сообразиш. Комп без питания не работает, так и диск без фат кусок
железа, не дай бог там что сламается, хотя он имеет две копии самого себя,
все твои данные пропадут безвозвратно.
Начиная с определенного кластера начинается область хранения файлов, некое количество кластеров в конце диска резервируется системой для работы и замены
вышедших из строя кластеров. И где то, в области хранения файлов, размещен
твой любимый реестр. При чистом диске, кластера записываются последовательно,
друг за другом, (последовательно, это символически, точнее будет в порядке более
оптимального доступа, есть такой термин чередование, раскрывать его не буду, сам почитай), при длительной работе, в результате записей и стирания файлов,
кластеры одного файла могут находится в противоположных местах диска, процес
дефрагментации упорядочивает это размещение.
 
Сообщение
Quote (VadimLevkin)
Наверное визуализация при дефрагментации точнее показывает структуру кластеров на диске?

Беспредметное выражение, в огороде бузина а в Киеве дядька.
Quote (VadimLevkin)
Я "не догнал", если Справочник - это отдельная от реестра структура ("область на диске"), то что это и где лежит? Для каких целей Справочник может быть полезен при программировании?

Ты заставляеш меня разводить сопли, ладно.
Диск круглый, делится на радиальные дорожки и сектора, на винчестере, могут быть
несколько дисков, стандартная емкость сектора 512 байт, нулевая дорожка находится с краю диска, у диска две стороны -верх и низ, нулевой сектор на поверхности 0, кластер - совокупность секторов всех поверхностей диска на одной дорожке.
В нулевом кластере находится абсолютный загрузчик, первичная программа, дающая
доступ к диску, дальше таблица разбиения диска, когда ты разбиваеш свой винт
на несколько лог дисков, именно там это и записывается. Далее размещена
FAT филе алокейшен табле - таблица рамещения файлов, он же справочник,
он же каталог (корневой), не корневые каталоги, могут находится в произвольном
месте диска. FAT... FAT32 NTFS это варианты структур каталога.
Это как каталог в библиотеке, по которому ты ищеш книги, по этому он лежит не
на книжных полках а в отведенном для него стандартном месте и нечего общего
с реестром не имеет, ибо существует независимо от него, и не знает о его
реестра, существовании :D
Выход из строя нулевого сектора означает полную смерть винта.
Quote (VadimLevkin)
Только я, честно говоря, так и не понял, что же мы с ней (с Виндовс, то есть) все-таки сделали?

Всунул ей какой то левый ключ, просто добавил мусора.
О его полезности, тем более в програмировании, я расказывать не буду, думаю
ты сам сообразиш. Комп без питания не работает, так и диск без фат кусок
железа, не дай бог там что сламается, хотя он имеет две копии самого себя,
все твои данные пропадут безвозвратно.
Начиная с определенного кластера начинается область хранения файлов, некое количество кластеров в конце диска резервируется системой для работы и замены
вышедших из строя кластеров. И где то, в области хранения файлов, размещен
твой любимый реестр. При чистом диске, кластера записываются последовательно,
друг за другом, (последовательно, это символически, точнее будет в порядке более
оптимального доступа, есть такой термин чередование, раскрывать его не буду, сам почитай), при длительной работе, в результате записей и стирания файлов,
кластеры одного файла могут находится в противоположных местах диска, процес
дефрагментации упорядочивает это размещение.

Автор - Alex3A
Дата добавления - 05 Августа 2009 в 19:19
ВадимДата: Чт, 06 Августа 2009, 03:48 | Сообщение # 68
Генератор идей
Спасибо за ясные объяснения! Некоторые вещи я читал, конечно, ранее, но благополучно не обращал на них внимания, а после определенного, пусть и малого пока, опыта программирования эта информация воспринимается уже как-то совсем по-другому - "ближе к телу", что-ли... Благодарю за терпеливую передачу базовых знаний!

Добавлено (06 Август 2009, 03:48)
---------------------------------------------

Quote (Peter)
Я заметил такую закономерность - глюки возникают (на моем компе) при архивации строковых (буквенных) значений, а с цифрами проблем нет!

Мне кажется, я понял, почему плагин hpwUtility глючил при разархивации!
Теперь вот начал глючить и у меня! Команде просто времени не хватало! Я свой комп сейчас малость оптимизировал, заработал чуток быстрее и у меня глюки начались.
Если AlertBox поставить после этой команды или если скрипт прокручивать с открытым отладчиком, пошагово, то все прекрасно работает! Надо будет паузу подобрать поменьше, проверить.


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
СообщениеСпасибо за ясные объяснения! Некоторые вещи я читал, конечно, ранее, но благополучно не обращал на них внимания, а после определенного, пусть и малого пока, опыта программирования эта информация воспринимается уже как-то совсем по-другому - "ближе к телу", что-ли... Благодарю за терпеливую передачу базовых знаний!

Добавлено (06 Август 2009, 03:48)
---------------------------------------------

Quote (Peter)
Я заметил такую закономерность - глюки возникают (на моем компе) при архивации строковых (буквенных) значений, а с цифрами проблем нет!

Мне кажется, я понял, почему плагин hpwUtility глючил при разархивации!
Теперь вот начал глючить и у меня! Команде просто времени не хватало! Я свой комп сейчас малость оптимизировал, заработал чуток быстрее и у меня глюки начались.
Если AlertBox поставить после этой команды или если скрипт прокручивать с открытым отладчиком, пошагово, то все прекрасно работает! Надо будет паузу подобрать поменьше, проверить.

Автор - Вадим
Дата добавления - 06 Августа 2009 в 03:48
Alex3AДата: Чт, 06 Августа 2009, 12:17 | Сообщение # 69
Друг клуба ММВ
Quote (VadimLevkin)
Надо будет паузу подобрать поменьше, проверить.

Все правильно, ты должен понимать не только как работают те или иные функции,
но и когда. Всему нужно время для исполнения, что то делается быстрее что то
медленей. Бывает что ты обращаешся к тому чего еще нет, предидущая команда еще
не завершила свою работу, в результате глюк. Возможно пауза не будет лучшим
вариантом подождать, не знаю как она устроена в необуке, таймер будет однозначно
приемлемей. Пауза преостанавливает текущий процес, давая возможность работать
другим процессам, но если то чего ты должен подождать находится в том же процессе,
остановится и оно. При включении таймера, текущая процедура заканчивается, а отложенное тобой действие будет выполнено после срабатывания таймера в его обработчике. Таким образом ты однозначно разведеш по времени два своих действия.
 
Сообщение
Quote (VadimLevkin)
Надо будет паузу подобрать поменьше, проверить.

Все правильно, ты должен понимать не только как работают те или иные функции,
но и когда. Всему нужно время для исполнения, что то делается быстрее что то
медленей. Бывает что ты обращаешся к тому чего еще нет, предидущая команда еще
не завершила свою работу, в результате глюк. Возможно пауза не будет лучшим
вариантом подождать, не знаю как она устроена в необуке, таймер будет однозначно
приемлемей. Пауза преостанавливает текущий процес, давая возможность работать
другим процессам, но если то чего ты должен подождать находится в том же процессе,
остановится и оно. При включении таймера, текущая процедура заканчивается, а отложенное тобой действие будет выполнено после срабатывания таймера в его обработчике. Таким образом ты однозначно разведеш по времени два своих действия.

Автор - Alex3A
Дата добавления - 06 Августа 2009 в 12:17
ВадимДата: Чт, 06 Августа 2009, 23:23 | Сообщение # 70
Генератор идей
Quote (Alex3A)
ты должен понимать не только как работают те или иные функции,
но и когда

Думаю что здесь, в том числе, Ваши замечания помогли - чтобы начать мыслить еще и в терминах "железа"... Спасибо за них! Я только в начале пути. Буду рад при случае прочесть и другие Ваши заметки о том, "как это всё работает на самом деле..."!

Quote (Alex3A)
При включении таймера, текущая процедура заканчивается, а отложенное тобой действие будет выполнено после срабатывания таймера в его обработчике. Таким образом ты однозначно разведеш по времени два своих действия.

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

А можно Вас попросить об очередном ликбезе?
А именно - описать время, которое следует отвести (условия, которые следует соблюсти) на решение типовых задач.
К примеру:
- команда на запись в файл с одновременным созданием такового этой же командой (напр. аналоги FileWrite) - требует обычно столько то ???? мл/с, но точнее будет: примерно столько то мл/с на столько то бит при низкой скорости (или высокой загруженности, фрагментированности памяти....) компьютера пользователя (без учета специфики конкретного плагина и т.д.).
- команда на считывание файла в переменную - ???? мл/с
- чтение из файла... такие-то команды, типы и размеры файла - примерно ???? мл/с
- разархивация
- архивирование
- чтение указанной строки файла (может есть разница: ini, txt, rtf, pdf...?)
- поиск/копирование/запись элемента строки
- запись/чтение в/из реестр/а
- ...

Как влияет на скорость:
- оперативка, кэш, виртуальная память, скорость винта, ... ...
- размер самого приложения?
- тип обрабатываемого файла?
- разница и в скорости работы логических операторов, условий?
- структура файловой системы (FAT32, NTFS...)?
- количество запущенных программой процессов? Кстати, как сделать так, чтобы обрабатывались одновременно несколько скриптов/процессов параллельно (как это умеет Windows)?

Когда чем следует пренебречь, а когда следует быть особенно внимательным и не забыть про.....?

А где (в каких случаях) вместо таймера лучше следующей строкой кода использовать просто другие операции с другими переменными, а не с той же самой, чтобы выполнение этих команд играло роль "таймера"...
А в каких случаях нужно использовать специальные программные "датчики" завершения процесса, запущенного командами данной программы ранее?

Какие общие принципы наработаны в этой теме? Своего рода "хороший тон" программирования... В чем он состоит? В каких правилах, чего придерживаться, на что ориентироваться?

Наверняка есть программы для тестирования разрабатываемых приложений. Может есть такие, которые показали бы какая операция не успевает, какая какую опережает... Своего рода датчики/мониторы выполнения команд приложения, может даже с удобной визуализацией по типу "диаграммы Ганта"...
Какую посоветуете для начала?
Думаю эта тема очень актуальна, для тех кто хочет делать качественные приложения с использованием сторонних плагинов...


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)

Сообщение отредактировано
VadimLevkin - Чт, 06 Августа 2009, 23:26
 
Сообщение
Quote (Alex3A)
ты должен понимать не только как работают те или иные функции,
но и когда

Думаю что здесь, в том числе, Ваши замечания помогли - чтобы начать мыслить еще и в терминах "железа"... Спасибо за них! Я только в начале пути. Буду рад при случае прочесть и другие Ваши заметки о том, "как это всё работает на самом деле..."!

Quote (Alex3A)
При включении таймера, текущая процедура заканчивается, а отложенное тобой действие будет выполнено после срабатывания таймера в его обработчике. Таким образом ты однозначно разведеш по времени два своих действия.

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

А можно Вас попросить об очередном ликбезе?
А именно - описать время, которое следует отвести (условия, которые следует соблюсти) на решение типовых задач.
К примеру:
- команда на запись в файл с одновременным созданием такового этой же командой (напр. аналоги FileWrite) - требует обычно столько то ???? мл/с, но точнее будет: примерно столько то мл/с на столько то бит при низкой скорости (или высокой загруженности, фрагментированности памяти....) компьютера пользователя (без учета специфики конкретного плагина и т.д.).
- команда на считывание файла в переменную - ???? мл/с
- чтение из файла... такие-то команды, типы и размеры файла - примерно ???? мл/с
- разархивация
- архивирование
- чтение указанной строки файла (может есть разница: ini, txt, rtf, pdf...?)
- поиск/копирование/запись элемента строки
- запись/чтение в/из реестр/а
- ...

Как влияет на скорость:
- оперативка, кэш, виртуальная память, скорость винта, ... ...
- размер самого приложения?
- тип обрабатываемого файла?
- разница и в скорости работы логических операторов, условий?
- структура файловой системы (FAT32, NTFS...)?
- количество запущенных программой процессов? Кстати, как сделать так, чтобы обрабатывались одновременно несколько скриптов/процессов параллельно (как это умеет Windows)?

Когда чем следует пренебречь, а когда следует быть особенно внимательным и не забыть про.....?

А где (в каких случаях) вместо таймера лучше следующей строкой кода использовать просто другие операции с другими переменными, а не с той же самой, чтобы выполнение этих команд играло роль "таймера"...
А в каких случаях нужно использовать специальные программные "датчики" завершения процесса, запущенного командами данной программы ранее?

Какие общие принципы наработаны в этой теме? Своего рода "хороший тон" программирования... В чем он состоит? В каких правилах, чего придерживаться, на что ориентироваться?

Наверняка есть программы для тестирования разрабатываемых приложений. Может есть такие, которые показали бы какая операция не успевает, какая какую опережает... Своего рода датчики/мониторы выполнения команд приложения, может даже с удобной визуализацией по типу "диаграммы Ганта"...
Какую посоветуете для начала?
Думаю эта тема очень актуальна, для тех кто хочет делать качественные приложения с использованием сторонних плагинов...


Автор - Вадим
Дата добавления - 06 Августа 2009 в 23:23
Alex3AДата: Пт, 07 Августа 2009, 03:02 | Сообщение # 71
Друг клуба ММВ
Все зависит от конкретных условий, конкретного кода, конкретного языка или средства разработки. что касаемо необук, то тут я тебе не советчик, конкретной его спецификой я не владею, небыло нужды с ней знакомится.
Могу рассуждать только об общий понятиях и принципах. Временное согласование работы программы это искуство, в основном при остутствии конкретных знаний,
основывающееся на опыте, как правило, этому уделяют мало внимания, в основном
обходясь общими фразами, типа процедурный язык или событийно ориентированый.
Как будет вести себя написанный тобою код еще надо понять, по простому кажется
что он будет выполнятся последовательно, команда за командой, однако это не всегда справедливо, в разных языках и оболочках может быть по разному.
Такие вещи как запись файлов могут иметь непредсказуемое время исполнения,
так как оно зависит от множества причин, и выполняется операционной системой.
Котрая может быть в момент записи занята какими то своими, тебе непонятными делами, не взависимости как называется функция записи файла и в каком языке,
все они выполняются операционной системой, ее функциями, находящимися в системных библиотеках, язык или оболочка, своей функцией или командой, делает только обертку, упрощающую вызов системной функции. По этому невозможно дать тебе конкретный ответ сколько времени займет тот или иной процес записи. Ты сам, опытным путем можеш определить необходимое время ожидания, выбрав такое что бы все работало. Далее я попытаюсь дать тебе ответ на то что как то можно ответить.
Quote (VadimLevkin)
- разница и в скорости работы логических операторов, условий?

Есть два типа исполнения исходного кода,по принципу работы, компиляторы и интерпритаторы. Компиляторы переводят товой исходный код в машинные кода, при
компиляции (трансляции)проекта, то есть получившийся после этого файл содержит
машинные инструкции. Интерпритаторы работают совсем по другому, считывая построчно
исходный код, переводят его в машинные инструкции и выполняют его. Программы как первого, так и второго типа могут иметь исполняемый формат *.exe. В случае интерпритатора, файл содержит исходный код твоей программы и интерпритатор, при запуске интерпритатор считывает строку за строкой твой исходник, переводит в машинный код, и выполняет. Если в твоей программе имеется ветвление, изменение
последовательности выполнения строк, то считываются только те строки на которые указавает это ветвление. Исходя из выше изложеного можно сделать вывод, что интерпритаторы работают медленее, и требуют дополнительной памяти для размещения интерпритатора. ммв, необук, бейсики...., интерпритаторы, С, паскаль... компиляторы. Асемблер это мнемонический аналог машинного кода.
Логические и битовые оператоторы имеют наибольшую скорость выполнения и имеют прямые аналоги в машинном коде с относительно малым расходом тактов процессора.
Значительно влияют на время исполнения логических операторов сравниваемые
операнды, наменьше времени занимают сравнения булевых величин, затем цифровых,
затем строковых(тут слово значительно, следует понимать относительно).
Математические операторы требуют больше времени, для своего исполнения, некоторые,
несмотря на свой безобидно - короткий вид, могут потащить за собой огромую кучу
кода. При сравнивании строковых значений анализируется каждый символ.
Все выше описанные медленности относительны и выполняются во мгновение ока.
То что мы считаем программами виндовс не являются самодостаточными, по сравнению
с дос программами(хотя дос программы в свою очередь используют вызовы дос и биоса), а являются управляющими надстройками проводника, в контексте которого и выполняются, по сути они являются обвязкой функций API виндовс, за которыми стоит хренова туча кода.
Объекты. Каждый объект является подпрограммой, со своим исполнительным кодом и полями памяти. Многие функции имеют свойство паровоза, кидая твой вызов друг другу, и черт те знает где они выполняются, какая либо, поставленная какой то прогой библиотека библиотека, может кардинально отфутболить твой запрос в неведомую сторону. Немного не правильный запрос или неинициализированная переменная может значительно увеличить время исполнения, операционка проделает
кучу безсмысленной работы, прежде чем сообразит что с тобой делать.
Винда вовсе не является мультизадачной, в прямом понимании термина, все выполняется последовательно, на каждый запущенный процесс выделяется определенный квант времени, после чего управление передается другому процессу.

Добавлено (07 Август 2009, 03:02)
---------------------------------------------

Quote (VadimLevkin)
- запись/чтение в/из реестр/а

Кроме описанного, имеет значение размер реестра, чем больше в нем мусора и ошибок,
тем медленее.
Quote (VadimLevkin)
- оперативка, кэш, виртуальная память, скорость винта, ... ...

Чем параметры и значения выше тем быстрее, что ты имееш в виду под виртуальной памятью, если файл подкачки(своп), то тут такя закономерность, если не хватает оперативки для хранения данных запущенных просессов, то они помещаются в файл подкачки, на время пока они не активны, логично иметь как можно больше
оперативки, ибо скорость доступа к ней не сравнима со скоростью доступа к
диску, как улитка с самолетом. Кеш это пережиток бывших комерческих выгод,
згачительно изуродовавших логику работы в целом, это как наркотик, чем доза выше тем легче дышется. А по сути это мальнький кусочек очень быстрой памяти.
Это не касается кеша переферийных устройств, являющегоса быстрой копией их
содержимого, пролетела считывающая головка над диском, для считывания определенного кластера, кинула в кеш все что прочитала, если туда попал
кластер который будет затребованым в последствии, его считают с кеша,
а не будут гонять диск в его поисках.
Quote (VadimLevkin)
- структура файловой системы (FAT32, NTFS...)?

FAT32 это более старый стандарт, имеющий иные принципы работы, чем NTFS,
тема весьма объемна, если интересно почитай. Я предпочитаю FAT32, по той причине,
что в NTFS процес записи в файл вовсе не означает записи данных на диск, операционка записыват только тогда когда решит что ей это надо сделать, а до тех пор держит все в оперативке, я не раз на этом подлетал, когда при сбое банально пропадали открытые файлы, а отлаживая прогу такое случается регулярно.
Quote (VadimLevkin)
- количество запущенных программой процессов? Кстати, как сделать так, чтобы обрабатывались одновременно несколько скриптов/процессов параллельно (как это умеет Windows)?

Понятие процесс включат в себя грубо говоря запущеное приложение, область
памяти выделенной под его нужды, внутри процесса могут оргазовываться паралельные
потоки, так называемые нити thread, потоками так же называют области памяти выделеные для доступа к файлам (проеция файла на участок памяти процесса).
Такие возможности могут быть или нет в том или ином средстве разработки..
В ммб нет полного аналога нити, есть некое ее подобие называемое семипараленым
процессом, а по сути является событийным обработчиком в основном процессе, а не нитью. В этом свете интересно использования библиотек, к примеру плагинов, они работают не в контексте основной программы, облегчая ей жизнь.
Quote (VadimLevkin)
А где (в каких случаях) вместо таймера лучше следующей строкой кода использовать просто другие операции с другими переменными, а не с той же самой, чтобы выполнение этих команд играло роль "таймера"...

Одну и ту же логическую задачу можно решить не одним десятком способов, ты сам
должен определить оптимальную структуру своего кода, и ту тебе поможет только твой
интелект и опыт. Есть процедуры и функции, разница между ними в том что функция
возвращает некое значение, то ли результат запроса то ли статус корректности выполненого задания. В зависимости от того что вернула функция, результат или ошибку, ты принимаеш те или иные решения, к примеру пребразовать строку в число,
вернет или результат или 0, если строка не является числом.
Quote (VadimLevkin)
Наверняка есть программы для тестирования разрабатываемых
приложений.

Называются отладчики, но самый главный отладчик - твоя голова.
 
СообщениеВсе зависит от конкретных условий, конкретного кода, конкретного языка или средства разработки. что касаемо необук, то тут я тебе не советчик, конкретной его спецификой я не владею, небыло нужды с ней знакомится.
Могу рассуждать только об общий понятиях и принципах. Временное согласование работы программы это искуство, в основном при остутствии конкретных знаний,
основывающееся на опыте, как правило, этому уделяют мало внимания, в основном
обходясь общими фразами, типа процедурный язык или событийно ориентированый.
Как будет вести себя написанный тобою код еще надо понять, по простому кажется
что он будет выполнятся последовательно, команда за командой, однако это не всегда справедливо, в разных языках и оболочках может быть по разному.
Такие вещи как запись файлов могут иметь непредсказуемое время исполнения,
так как оно зависит от множества причин, и выполняется операционной системой.
Котрая может быть в момент записи занята какими то своими, тебе непонятными делами, не взависимости как называется функция записи файла и в каком языке,
все они выполняются операционной системой, ее функциями, находящимися в системных библиотеках, язык или оболочка, своей функцией или командой, делает только обертку, упрощающую вызов системной функции. По этому невозможно дать тебе конкретный ответ сколько времени займет тот или иной процес записи. Ты сам, опытным путем можеш определить необходимое время ожидания, выбрав такое что бы все работало. Далее я попытаюсь дать тебе ответ на то что как то можно ответить.
Quote (VadimLevkin)
- разница и в скорости работы логических операторов, условий?

Есть два типа исполнения исходного кода,по принципу работы, компиляторы и интерпритаторы. Компиляторы переводят товой исходный код в машинные кода, при
компиляции (трансляции)проекта, то есть получившийся после этого файл содержит
машинные инструкции. Интерпритаторы работают совсем по другому, считывая построчно
исходный код, переводят его в машинные инструкции и выполняют его. Программы как первого, так и второго типа могут иметь исполняемый формат *.exe. В случае интерпритатора, файл содержит исходный код твоей программы и интерпритатор, при запуске интерпритатор считывает строку за строкой твой исходник, переводит в машинный код, и выполняет. Если в твоей программе имеется ветвление, изменение
последовательности выполнения строк, то считываются только те строки на которые указавает это ветвление. Исходя из выше изложеного можно сделать вывод, что интерпритаторы работают медленее, и требуют дополнительной памяти для размещения интерпритатора. ммв, необук, бейсики...., интерпритаторы, С, паскаль... компиляторы. Асемблер это мнемонический аналог машинного кода.
Логические и битовые оператоторы имеют наибольшую скорость выполнения и имеют прямые аналоги в машинном коде с относительно малым расходом тактов процессора.
Значительно влияют на время исполнения логических операторов сравниваемые
операнды, наменьше времени занимают сравнения булевых величин, затем цифровых,
затем строковых(тут слово значительно, следует понимать относительно).
Математические операторы требуют больше времени, для своего исполнения, некоторые,
несмотря на свой безобидно - короткий вид, могут потащить за собой огромую кучу
кода. При сравнивании строковых значений анализируется каждый символ.
Все выше описанные медленности относительны и выполняются во мгновение ока.
То что мы считаем программами виндовс не являются самодостаточными, по сравнению
с дос программами(хотя дос программы в свою очередь используют вызовы дос и биоса), а являются управляющими надстройками проводника, в контексте которого и выполняются, по сути они являются обвязкой функций API виндовс, за которыми стоит хренова туча кода.
Объекты. Каждый объект является подпрограммой, со своим исполнительным кодом и полями памяти. Многие функции имеют свойство паровоза, кидая твой вызов друг другу, и черт те знает где они выполняются, какая либо, поставленная какой то прогой библиотека библиотека, может кардинально отфутболить твой запрос в неведомую сторону. Немного не правильный запрос или неинициализированная переменная может значительно увеличить время исполнения, операционка проделает
кучу безсмысленной работы, прежде чем сообразит что с тобой делать.
Винда вовсе не является мультизадачной, в прямом понимании термина, все выполняется последовательно, на каждый запущенный процесс выделяется определенный квант времени, после чего управление передается другому процессу.

Добавлено (07 Август 2009, 03:02)
---------------------------------------------

Quote (VadimLevkin)
- запись/чтение в/из реестр/а

Кроме описанного, имеет значение размер реестра, чем больше в нем мусора и ошибок,
тем медленее.
Quote (VadimLevkin)
- оперативка, кэш, виртуальная память, скорость винта, ... ...

Чем параметры и значения выше тем быстрее, что ты имееш в виду под виртуальной памятью, если файл подкачки(своп), то тут такя закономерность, если не хватает оперативки для хранения данных запущенных просессов, то они помещаются в файл подкачки, на время пока они не активны, логично иметь как можно больше
оперативки, ибо скорость доступа к ней не сравнима со скоростью доступа к
диску, как улитка с самолетом. Кеш это пережиток бывших комерческих выгод,
згачительно изуродовавших логику работы в целом, это как наркотик, чем доза выше тем легче дышется. А по сути это мальнький кусочек очень быстрой памяти.
Это не касается кеша переферийных устройств, являющегоса быстрой копией их
содержимого, пролетела считывающая головка над диском, для считывания определенного кластера, кинула в кеш все что прочитала, если туда попал
кластер который будет затребованым в последствии, его считают с кеша,
а не будут гонять диск в его поисках.
Quote (VadimLevkin)
- структура файловой системы (FAT32, NTFS...)?

FAT32 это более старый стандарт, имеющий иные принципы работы, чем NTFS,
тема весьма объемна, если интересно почитай. Я предпочитаю FAT32, по той причине,
что в NTFS процес записи в файл вовсе не означает записи данных на диск, операционка записыват только тогда когда решит что ей это надо сделать, а до тех пор держит все в оперативке, я не раз на этом подлетал, когда при сбое банально пропадали открытые файлы, а отлаживая прогу такое случается регулярно.
Quote (VadimLevkin)
- количество запущенных программой процессов? Кстати, как сделать так, чтобы обрабатывались одновременно несколько скриптов/процессов параллельно (как это умеет Windows)?

Понятие процесс включат в себя грубо говоря запущеное приложение, область
памяти выделенной под его нужды, внутри процесса могут оргазовываться паралельные
потоки, так называемые нити thread, потоками так же называют области памяти выделеные для доступа к файлам (проеция файла на участок памяти процесса).
Такие возможности могут быть или нет в том или ином средстве разработки..
В ммб нет полного аналога нити, есть некое ее подобие называемое семипараленым
процессом, а по сути является событийным обработчиком в основном процессе, а не нитью. В этом свете интересно использования библиотек, к примеру плагинов, они работают не в контексте основной программы, облегчая ей жизнь.
Quote (VadimLevkin)
А где (в каких случаях) вместо таймера лучше следующей строкой кода использовать просто другие операции с другими переменными, а не с той же самой, чтобы выполнение этих команд играло роль "таймера"...

Одну и ту же логическую задачу можно решить не одним десятком способов, ты сам
должен определить оптимальную структуру своего кода, и ту тебе поможет только твой
интелект и опыт. Есть процедуры и функции, разница между ними в том что функция
возвращает некое значение, то ли результат запроса то ли статус корректности выполненого задания. В зависимости от того что вернула функция, результат или ошибку, ты принимаеш те или иные решения, к примеру пребразовать строку в число,
вернет или результат или 0, если строка не является числом.
Quote (VadimLevkin)
Наверняка есть программы для тестирования разрабатываемых
приложений.

Называются отладчики, но самый главный отладчик - твоя голова.

Автор - Alex3A
Дата добавления - 07 Августа 2009 в 03:02
ВадимДата: Пт, 07 Августа 2009, 09:35 | Сообщение # 72
Генератор идей
Quote (Alex3A)
Такие вещи как запись файлов могут иметь непредсказуемое время исполнения,
так как оно зависит от множества причин, и выполняется операционной системой.
Котрая может быть в момент записи занята какими то своими, тебе непонятными делами

Т.е. в том месте кода, где что-то пишется в файл надо, по хорошему, для надежности, добавлять код проверки успеха записи? Я кстати, такое уже сделал, при копировании созданного в моей программе шаблона анкеты в rtf, там я проверяю по количеству добавленных строк (поскольку их количество мне заранее известно).
А вот как проконтролировать качество (или завершенность) записи в файл, когда неизвестно заранее сколько информации может быть дописано?

Quote (Alex3A)
Логические и битовые оператоторы имеют наибольшую скорость выполнения и имеют прямые аналоги в машинном коде с относительно малым расходом тактов процессора.

Интересно! Если я правильно понимаю, то логические одни из самых быстрых - если готовая переменная есть рядом, уже со значением True или False, а если ее надо еще проверить, то смотрим уже на специфику условий проверки.
Т.е., в общем смысле, если что-то можно написать через If и пр., то, по хорошему, следует этот способ и предпочесть различным специальным плагинам?

Quote (Alex3A)
Значительно влияют на время исполнения логических операторов сравниваемые
операнды, наменьше времени занимают сравнения булевых величин, затем цифровых,
затем строковых

Т.е. чем больше у команды аргументов и параметров, тем медленнее она выполняется, но, при этом, аргументы аргументам рознь (как и параметры параметрам) и команда с большим числом аргументов и параметров может работать быстрее... Правильно размышляю?

Quote (Alex3A)
какая либо, поставленная какой то прогой библиотека, может кардинально отфутболить твой запрос в неведомую сторону. Немного не правильный запрос или неинициализированная переменная может значительно увеличить время исполнения, операционка проделает кучу безсмысленной работы, прежде чем сообразит что с тобой делать.

Т.е. всё-таки лучше объявлять переменные задавая им конкретный тип (если он заранее известен)? Спрашиваю потому, что в NB можно почти все переменные делать SetVar (любого содержания). А это, если я правильно понимаю, ведет к загрузке памяти, ведь на такую переменную должно выделяться больше памяти? Но может быть сама NB потом анализирует историю использования переменной и назначает ей определенный тип в момент компиляции приложения и тем самым решает эту проблему?

Правильно ли я понимаю, что лучше переменные инициировать (создавать/пересоздавать) непосредственно перед местом кода, где они потребуются? Кстати, как влияет на скорость "пересоздание" переменной с тем же значением? Допустим, я ее создал вначале кода, а потом забыл про нее и создал заново уже там, где она действительно нужна. ?

Добавлено (07 Август 2009, 09:35)
---------------------------------------------

Quote (Alex3A)
Винда вовсе не является мультизадачной, в прямом понимании термина, все выполняется последовательно, на каждый запущенный процесс выделяется определенный квант времени, после чего управление передается другому процессу

Это справедливо и для современных двух и более процессорных машин?

Quote (Alex3A)
Я предпочитаю FAT32, по той причине, что в NTFS процес записи в файл вовсе не означает записи данных на диск, операционка записыват только тогда когда решит что ей это надо сделать, а до тех пор держит все в оперативке, я не раз на этом подлетал, когда при сбое банально пропадали открытые файлы, а отлаживая прогу такое случается регулярно.

Очень, очень любопытно! Я в последние пару лет ставлю ХР в NTFS (слышал мнение, что этот формат XP больше любит, и работает быстрее, чем с FAT... уже не знаю почему такое мнение существует). А для меня скорость критически важна - старый ноутбук - слабый процессор, мало оперативки...
Quote (Alex3A)
что ты имееш в виду под виртуальной памятью, если файл подкачки(своп)

Да, я его имел ввиду. Регулярно о нем вижу сообщение из трея :D

Quote (Alex3A)
внутри процесса могут оргазовываться паралельные
потоки, так называемые нити thread

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

Ага, значит есть условия, когда плагины наоборот ускоряют работу использующего их приложения! Как можно отличить - когда использование плагина будет ускорять работу приложения, а когда замедлять? Наверное от специфики плагина зависит, от того, что и как он делает, видимо... Может есть какие-то общие ориентиры, маркеры этого? Все плагины работают как библиотеки?
Когда (зачем) имеет смысл специально программно организовывать такие "нити"? Как это делают? Конечно, я понимаю, что эти премудрости, на уровне разрабатываемой мною в настоящее время программы, пока не нужны, но хотелось бы сразу начинать мыслить правильно и продуктивно. Тем более, хорошие программные затеи, алгоритмы имеют свойство развиваться/разрастаться и, лучше будет, если будет разрастаться правильная логика, чем неправильная...

Quote (Alex3A)
самый главный отладчик - твоя голова

Это точно. Это надо помнить... В конце концов отладчик все равно не знает, что именно МНЕ нужно, чтобы делала программа. Он лишь покажет что она делает, как и где...

Огромное спасибо за очень содержательный ответ! Всё предельно ясно и понятно написано! Получилась целая статья! Много пищи для размышлений. Если все Ваши посты собрать с этого форума (и с других, в разное время, я полагаю), то книгу по MMB (с большой главой "Базовые знания или нехорошо забытое") можно считать практически готовой! :) И тоже самое у Петра, по NB. Столько качественно сформулированной информации, на живом языке!


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (Alex3A)
Такие вещи как запись файлов могут иметь непредсказуемое время исполнения,
так как оно зависит от множества причин, и выполняется операционной системой.
Котрая может быть в момент записи занята какими то своими, тебе непонятными делами

Т.е. в том месте кода, где что-то пишется в файл надо, по хорошему, для надежности, добавлять код проверки успеха записи? Я кстати, такое уже сделал, при копировании созданного в моей программе шаблона анкеты в rtf, там я проверяю по количеству добавленных строк (поскольку их количество мне заранее известно).
А вот как проконтролировать качество (или завершенность) записи в файл, когда неизвестно заранее сколько информации может быть дописано?

Quote (Alex3A)
Логические и битовые оператоторы имеют наибольшую скорость выполнения и имеют прямые аналоги в машинном коде с относительно малым расходом тактов процессора.

Интересно! Если я правильно понимаю, то логические одни из самых быстрых - если готовая переменная есть рядом, уже со значением True или False, а если ее надо еще проверить, то смотрим уже на специфику условий проверки.
Т.е., в общем смысле, если что-то можно написать через If и пр., то, по хорошему, следует этот способ и предпочесть различным специальным плагинам?

Quote (Alex3A)
Значительно влияют на время исполнения логических операторов сравниваемые
операнды, наменьше времени занимают сравнения булевых величин, затем цифровых,
затем строковых

Т.е. чем больше у команды аргументов и параметров, тем медленнее она выполняется, но, при этом, аргументы аргументам рознь (как и параметры параметрам) и команда с большим числом аргументов и параметров может работать быстрее... Правильно размышляю?

Quote (Alex3A)
какая либо, поставленная какой то прогой библиотека, может кардинально отфутболить твой запрос в неведомую сторону. Немного не правильный запрос или неинициализированная переменная может значительно увеличить время исполнения, операционка проделает кучу безсмысленной работы, прежде чем сообразит что с тобой делать.

Т.е. всё-таки лучше объявлять переменные задавая им конкретный тип (если он заранее известен)? Спрашиваю потому, что в NB можно почти все переменные делать SetVar (любого содержания). А это, если я правильно понимаю, ведет к загрузке памяти, ведь на такую переменную должно выделяться больше памяти? Но может быть сама NB потом анализирует историю использования переменной и назначает ей определенный тип в момент компиляции приложения и тем самым решает эту проблему?

Правильно ли я понимаю, что лучше переменные инициировать (создавать/пересоздавать) непосредственно перед местом кода, где они потребуются? Кстати, как влияет на скорость "пересоздание" переменной с тем же значением? Допустим, я ее создал вначале кода, а потом забыл про нее и создал заново уже там, где она действительно нужна. ?

Добавлено (07 Август 2009, 09:35)
---------------------------------------------

Quote (Alex3A)
Винда вовсе не является мультизадачной, в прямом понимании термина, все выполняется последовательно, на каждый запущенный процесс выделяется определенный квант времени, после чего управление передается другому процессу

Это справедливо и для современных двух и более процессорных машин?

Quote (Alex3A)
Я предпочитаю FAT32, по той причине, что в NTFS процес записи в файл вовсе не означает записи данных на диск, операционка записыват только тогда когда решит что ей это надо сделать, а до тех пор держит все в оперативке, я не раз на этом подлетал, когда при сбое банально пропадали открытые файлы, а отлаживая прогу такое случается регулярно.

Очень, очень любопытно! Я в последние пару лет ставлю ХР в NTFS (слышал мнение, что этот формат XP больше любит, и работает быстрее, чем с FAT... уже не знаю почему такое мнение существует). А для меня скорость критически важна - старый ноутбук - слабый процессор, мало оперативки...
Quote (Alex3A)
что ты имееш в виду под виртуальной памятью, если файл подкачки(своп)

Да, я его имел ввиду. Регулярно о нем вижу сообщение из трея :D

Quote (Alex3A)
внутри процесса могут оргазовываться паралельные
потоки, так называемые нити thread

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

Ага, значит есть условия, когда плагины наоборот ускоряют работу использующего их приложения! Как можно отличить - когда использование плагина будет ускорять работу приложения, а когда замедлять? Наверное от специфики плагина зависит, от того, что и как он делает, видимо... Может есть какие-то общие ориентиры, маркеры этого? Все плагины работают как библиотеки?
Когда (зачем) имеет смысл специально программно организовывать такие "нити"? Как это делают? Конечно, я понимаю, что эти премудрости, на уровне разрабатываемой мною в настоящее время программы, пока не нужны, но хотелось бы сразу начинать мыслить правильно и продуктивно. Тем более, хорошие программные затеи, алгоритмы имеют свойство развиваться/разрастаться и, лучше будет, если будет разрастаться правильная логика, чем неправильная...

Quote (Alex3A)
самый главный отладчик - твоя голова

Это точно. Это надо помнить... В конце концов отладчик все равно не знает, что именно МНЕ нужно, чтобы делала программа. Он лишь покажет что она делает, как и где...

Огромное спасибо за очень содержательный ответ! Всё предельно ясно и понятно написано! Получилась целая статья! Много пищи для размышлений. Если все Ваши посты собрать с этого форума (и с других, в разное время, я полагаю), то книгу по MMB (с большой главой "Базовые знания или нехорошо забытое") можно считать практически готовой! :) И тоже самое у Петра, по NB. Столько качественно сформулированной информации, на живом языке!


Автор - Вадим
Дата добавления - 07 Августа 2009 в 09:35
Alex3AДата: Пт, 07 Августа 2009, 13:36 | Сообщение # 73
Друг клуба ММВ
Quote (VadimLevkin)
Т.е., в общем смысле, если что-то можно написать через If и пр., то, по хорошему, следует этот способ и предпочесть различным специальным плагинам?

Все относительно, незабывай что плагин это уже готовый машинный код, а основная
оптимизация достигается не за счет применения тех или иных методов и примочек,
а за счет построения более оптимального алгоритма.
Quote (VadimLevkin)
для надежности, добавлять код проверки успеха записи?
Несовсем, я тебе говорил, что функции записи в файл возвращают информацию о результате, в той или иной програмной среде ты можеш иметь доступ к ней а можеш и не иметь. Возможно
функция устанавливает какую либо системную переменную, в зависимости от результата. Обычно программа ожидает окончания файловой операции, но может и нет.
Все зависит от конкретной реализации.
Quote (VadimLevkin)
когда неизвестно заранее сколько информации может быть дописано?

Тут логика проще, должно быть достаточно свободного места на записываемом носителе.
Quote (VadimLevkin)
и команда с большим числом аргументов и параметров может работать быстрее... Правильно размышляю?

правльно.
Quote (VadimLevkin)
Т.е. всё-таки лучше объявлять переменные задавая им конкретный тип

В каждом языке свои правила и их следует придерживаться, объявление переменной приводит к выделению памяти для ее размещения, некоторые просто ее выделяют,
а некоторые еще и очищают, так просто выделив память, в ней может оказатся какой либо мусор. А вообще, в этом контексте, я тебе расказывал о том куда девается
время на выполнение операции и влияние на нее системных библиотек, для общего
понимания.
Quote (VadimLevkin)
SetVar (любого содержания).

В машинном коде нет никаких переменных и типов, они работают с памятью и указателями на нее, переменные и типы для человека програмера, это типа слов
для описания чего то человеческими понятиями и логикой. В свете такой логики,
переменные бывают локальными и глобальными, хотя могут быть и только глобальными.
В ммв, и наверное необук...и ряде иных языков. Есть негласные рекомендации,
переменные которые будут использоваться в разных местах лучше размещать в начале
программы, с коментариями, пременные использующиеся только в пределах какой либо процедуры или функции (участка кода)описывать в ее начале, то же с коментариями.
Переменные носящие вспомогательный характер, типа индексов цикла и прочее, указывать в месте применения.
Тогда ты четко будеш знать где искать ее описание и какое у нее назначение, и исключит ненужные ее дублирования. скорости создания-пересоздания ничтожны,
вред в том что ты можеш получить две переменные с разными значениями (внешне похожие имена), воспринимая их в алгоритме как одну, найти такое будет трудно.
Quote (VadimLevkin)
Это справедливо и для современных двух и более процессорных машин?

Почти, и по большому счету. сколько процов столько реально истинных возможных
многозадачностей. :D
Quote (VadimLevkin)
(слышал мнение, что этот формат XP больше любит, и работает быстрее, чем с FAT... уже не знаю почему такое мнение существует).
Это дествительно правда, более современный, продвинутый формат, но есть и недоработки. Не во всем новое лучше старого. :D
 
Сообщение
Quote (VadimLevkin)
Т.е., в общем смысле, если что-то можно написать через If и пр., то, по хорошему, следует этот способ и предпочесть различным специальным плагинам?

Все относительно, незабывай что плагин это уже готовый машинный код, а основная
оптимизация достигается не за счет применения тех или иных методов и примочек,
а за счет построения более оптимального алгоритма.
Quote (VadimLevkin)
для надежности, добавлять код проверки успеха записи?
Несовсем, я тебе говорил, что функции записи в файл возвращают информацию о результате, в той или иной програмной среде ты можеш иметь доступ к ней а можеш и не иметь. Возможно
функция устанавливает какую либо системную переменную, в зависимости от результата. Обычно программа ожидает окончания файловой операции, но может и нет.
Все зависит от конкретной реализации.
Quote (VadimLevkin)
когда неизвестно заранее сколько информации может быть дописано?

Тут логика проще, должно быть достаточно свободного места на записываемом носителе.
Quote (VadimLevkin)
и команда с большим числом аргументов и параметров может работать быстрее... Правильно размышляю?

правльно.
Quote (VadimLevkin)
Т.е. всё-таки лучше объявлять переменные задавая им конкретный тип

В каждом языке свои правила и их следует придерживаться, объявление переменной приводит к выделению памяти для ее размещения, некоторые просто ее выделяют,
а некоторые еще и очищают, так просто выделив память, в ней может оказатся какой либо мусор. А вообще, в этом контексте, я тебе расказывал о том куда девается
время на выполнение операции и влияние на нее системных библиотек, для общего
понимания.
Quote (VadimLevkin)
SetVar (любого содержания).

В машинном коде нет никаких переменных и типов, они работают с памятью и указателями на нее, переменные и типы для человека програмера, это типа слов
для описания чего то человеческими понятиями и логикой. В свете такой логики,
переменные бывают локальными и глобальными, хотя могут быть и только глобальными.
В ммв, и наверное необук...и ряде иных языков. Есть негласные рекомендации,
переменные которые будут использоваться в разных местах лучше размещать в начале
программы, с коментариями, пременные использующиеся только в пределах какой либо процедуры или функции (участка кода)описывать в ее начале, то же с коментариями.
Переменные носящие вспомогательный характер, типа индексов цикла и прочее, указывать в месте применения.
Тогда ты четко будеш знать где искать ее описание и какое у нее назначение, и исключит ненужные ее дублирования. скорости создания-пересоздания ничтожны,
вред в том что ты можеш получить две переменные с разными значениями (внешне похожие имена), воспринимая их в алгоритме как одну, найти такое будет трудно.
Quote (VadimLevkin)
Это справедливо и для современных двух и более процессорных машин?

Почти, и по большому счету. сколько процов столько реально истинных возможных
многозадачностей. :D
Quote (VadimLevkin)
(слышал мнение, что этот формат XP больше любит, и работает быстрее, чем с FAT... уже не знаю почему такое мнение существует).
Это дествительно правда, более современный, продвинутый формат, но есть и недоработки. Не во всем новое лучше старого. :D

Автор - Alex3A
Дата добавления - 07 Августа 2009 в 13:36
PeterДата: Пт, 07 Августа 2009, 13:44 | Сообщение # 74
Админ NeoBook
Quote (VadimLevkin)
старый ноутбук - слабый процессор, мало оперативки...

VadimLevkin, купи современный ноутбук, а ещё лучше - нормальный компутер, и не парься! :)
Это во "взрослых" языках программирования, все вышеописанное ещё имеет какой-то смысл, т.к. на выходе компиллятора создается экзешник в машинных кодах, и компиллятор определяет ЧТО и СКОЛЬКО и кому выделять.
К тому же, одну и ту же задачу можно решить далеко не одним способом.
В NB-же тупой прямолинейный интерпретатор, который в любом случае работает со строковыми значениями. ;)
И правило тут, в общем случае, только одно - чем меньше строк, тем - быстрее!


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (VadimLevkin)
старый ноутбук - слабый процессор, мало оперативки...

VadimLevkin, купи современный ноутбук, а ещё лучше - нормальный компутер, и не парься! :)
Это во "взрослых" языках программирования, все вышеописанное ещё имеет какой-то смысл, т.к. на выходе компиллятора создается экзешник в машинных кодах, и компиллятор определяет ЧТО и СКОЛЬКО и кому выделять.
К тому же, одну и ту же задачу можно решить далеко не одним способом.
В NB-же тупой прямолинейный интерпретатор, который в любом случае работает со строковыми значениями. ;)
И правило тут, в общем случае, только одно - чем меньше строк, тем - быстрее!

Автор - Peter
Дата добавления - 07 Августа 2009 в 13:44
Alex3AДата: Пт, 07 Августа 2009, 14:09 | Сообщение # 75
Друг клуба ММВ
Quote (VadimLevkin)
Ага, значит есть условия, когда плагины наоборот ускоряют работу использующего их приложения!

Без всяких условий, однозначно ускоряют и облегчают работу.
Quote (VadimLevkin)
Когда (зачем) имеет смысл специально программно организовывать такие "нити"?

Это в основном доступно в иных языках, а зачем, многие вещи вообще невозможно было бы сделать без этого. Ты поставил чайник и пошел к компютеру, как только он
закипает, начинает свистеть, ты идеш и делаеш себе чашечку кофейку :D
Аналогично работают нити - паралельные потоки.
Quote (VadimLevkin)
Да, я его имел ввиду. Регулярно о нем вижу сообщение из трея
Да не мучай ты машину, дай ей памяти по больше и почисть винт от мусора, убери все лишнее в автозагрузке, повыганяй всяких ненужных агентов :D
Quote (VadimLevkin)
Все плагины работают как библиотеки?

Вовсе нет, плагин в преводе - вставной, а что то вставить в любое окно можно и из
другой проги, так что плагин это название технологии. А длл это формат исполняемого файла, динамически связываемая библиотека, которая может одновременно
применяться разными программами, для того и делается. К стати, отменное хранилище
для пользовательских функций.

Добавлено (07 Август 2009, 14:09)
---------------------------------------------

Quote (Peter)
И правило тут, в общем случае, только одно - чем меньше строк, тем - быстрее!

Это все очевидно!
Самым быстрым будет просто вызвать плагин, в котором полностью реализована основная программа :D
А зачем же тогда необук, ммв..., а для увеличения прозрачности и легитимности :D
 
Сообщение
Quote (VadimLevkin)
Ага, значит есть условия, когда плагины наоборот ускоряют работу использующего их приложения!

Без всяких условий, однозначно ускоряют и облегчают работу.
Quote (VadimLevkin)
Когда (зачем) имеет смысл специально программно организовывать такие "нити"?

Это в основном доступно в иных языках, а зачем, многие вещи вообще невозможно было бы сделать без этого. Ты поставил чайник и пошел к компютеру, как только он
закипает, начинает свистеть, ты идеш и делаеш себе чашечку кофейку :D
Аналогично работают нити - паралельные потоки.
Quote (VadimLevkin)
Да, я его имел ввиду. Регулярно о нем вижу сообщение из трея
Да не мучай ты машину, дай ей памяти по больше и почисть винт от мусора, убери все лишнее в автозагрузке, повыганяй всяких ненужных агентов :D
Quote (VadimLevkin)
Все плагины работают как библиотеки?

Вовсе нет, плагин в преводе - вставной, а что то вставить в любое окно можно и из
другой проги, так что плагин это название технологии. А длл это формат исполняемого файла, динамически связываемая библиотека, которая может одновременно
применяться разными программами, для того и делается. К стати, отменное хранилище
для пользовательских функций.

Добавлено (07 Август 2009, 14:09)
---------------------------------------------

Quote (Peter)
И правило тут, в общем случае, только одно - чем меньше строк, тем - быстрее!

Это все очевидно!
Самым быстрым будет просто вызвать плагин, в котором полностью реализована основная программа :D
А зачем же тогда необук, ммв..., а для увеличения прозрачности и легитимности :D

Автор - Alex3A
Дата добавления - 07 Августа 2009 в 14:09
PeterДата: Пт, 07 Августа 2009, 19:02 | Сообщение # 76
Админ NeoBook
Quote (Alex3A)
А зачем же тогда необук, ммв...,

Это тоже очевидно.
Но только бессмысленно искать черную кошку в темной комнате, особенно, когда её там нет!
Что же касаемо оптимизации кода, например, для NB, то тут можно привести такой пример записи в текстовой файл: можно в него писАть построчно, а можно занести все строки в переменную, и записать одним махом сразу все!
Вот тут уже можно говорить о скорости, а трястись над выделением памяти, и проч. - пустая трата времени!


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (Alex3A)
А зачем же тогда необук, ммв...,

Это тоже очевидно.
Но только бессмысленно искать черную кошку в темной комнате, особенно, когда её там нет!
Что же касаемо оптимизации кода, например, для NB, то тут можно привести такой пример записи в текстовой файл: можно в него писАть построчно, а можно занести все строки в переменную, и записать одним махом сразу все!
Вот тут уже можно говорить о скорости, а трястись над выделением памяти, и проч. - пустая трата времени!

Автор - Peter
Дата добавления - 07 Августа 2009 в 19:02
Alex3AДата: Пт, 07 Августа 2009, 20:15 | Сообщение # 77
Друг клуба ММВ
Quote (Peter)
а трястись над выделением памяти, и проч. - пустая трата времени!

Это просто небольшой ликбез, про че спросил про то навешал. :D
Были времена, когда количество затраченых тактов процессора на выполнение задачи
имело смысл.
 
Сообщение
Quote (Peter)
а трястись над выделением памяти, и проч. - пустая трата времени!

Это просто небольшой ликбез, про че спросил про то навешал. :D
Были времена, когда количество затраченых тактов процессора на выполнение задачи
имело смысл.

Автор - Alex3A
Дата добавления - 07 Августа 2009 в 20:15
СергейДата: Пт, 07 Августа 2009, 20:42 | Сообщение # 78
Необукер
Quote (Alex3A)
74657374 01110100011001010111001101110100 116101115116 164145163164 0312024503110312
дай угадаю, случайно не test?! :D


Сообщение отредактировано
sp3d - Пт, 07 Августа 2009, 20:43
 
Сообщение
Quote (Alex3A)
74657374 01110100011001010111001101110100 116101115116 164145163164 0312024503110312
дай угадаю, случайно не test?! :D

Автор - Сергей
Дата добавления - 07 Августа 2009 в 20:42
PeterДата: Пт, 07 Августа 2009, 20:44 | Сообщение # 79
Админ NeoBook
Quote (Alex3A)
про че спросил про то навешал.

Ну, коли так подходить к вопросу, то почему бы не начинать: Сначала Бог отделил свет от тьмы....
В итоге получим исключительно глубокое освещение темы, с исключительно... нулевым практическим результатом... :)


- А вам какую операционку поставить - экспи, семерку или висту?
- Это ты сейчас о чем?
- Олег Георгиевич, вам какой компьютер хотелось бы - молодежный или надежный?
- Ну, конечно, надежный!
- Вот, значит - экспи, без вопросов! Сейчас сделаем...

(Улицы разбитых фонарей, сезон 10, серия 17)

Единственная инновация Windows 8 это - Metro, чтобы дебилы по иконкам не промахивались!


При модном втюхе модоподдающимся начинает нравиться
 
Сообщение
Quote (Alex3A)
про че спросил про то навешал.

Ну, коли так подходить к вопросу, то почему бы не начинать: Сначала Бог отделил свет от тьмы....
В итоге получим исключительно глубокое освещение темы, с исключительно... нулевым практическим результатом... :)

Автор - Peter
Дата добавления - 07 Августа 2009 в 20:44
Alex3AДата: Пт, 07 Августа 2009, 20:51 | Сообщение # 80
Друг клуба ММВ
Quote (sp3d)
дай угадаю, случайно не test?!

Это верный ответ, почити зачет, но фишка состоит в последней группе цыферь,
слово тоже а основание системы счиления какое?
 
Сообщение
Quote (sp3d)
дай угадаю, случайно не test?!

Это верный ответ, почити зачет, но фишка состоит в последней группе цыферь,
слово тоже а основание системы счиления какое?

Автор - Alex3A
Дата добавления - 07 Августа 2009 в 20:51
СергейДата: Пт, 07 Августа 2009, 21:12 | Сообщение # 81
Необукер
Quote (Alex3A)
но фишка состоит в последней группе цыферь
тут я пас результат такой "E". И в чем фишка?

Добавлено (07 Август 2009, 21:12)
---------------------------------------------
VadimLevkin, решили вопрос бинарной записи в ини?

 
Сообщение
Quote (Alex3A)
но фишка состоит в последней группе цыферь
тут я пас результат такой "E". И в чем фишка?

Добавлено (07 Август 2009, 21:12)
---------------------------------------------
VadimLevkin, решили вопрос бинарной записи в ини?


Автор - Сергей
Дата добавления - 07 Августа 2009 в 21:12
Alex3AДата: Пт, 07 Августа 2009, 21:17 | Сообщение # 82
Друг клуба ММВ
Quote (sp3d)
И в чем фишка?

В основании системы исчисления, первая группа кодов хекс(16) вторая бин(2),
дальше продолжиш? Ты наверное слово прочитал по бин коду, он то легко
визуально определим :D
 
Сообщение
Quote (sp3d)
И в чем фишка?

В основании системы исчисления, первая группа кодов хекс(16) вторая бин(2),
дальше продолжиш? Ты наверное слово прочитал по бин коду, он то легко
визуально определим :D

Автор - Alex3A
Дата добавления - 07 Августа 2009 в 21:17
СергейДата: Пт, 07 Августа 2009, 21:49 | Сообщение # 83
Необукер
Quote (Alex3A)
Ты наверное слово прочитал по бин коду
:D через плагин


Сообщение отредактировано
sp3d - Пт, 07 Августа 2009, 21:51
 
Сообщение
Quote (Alex3A)
Ты наверное слово прочитал по бин коду
:D через плагин

Автор - Сергей
Дата добавления - 07 Августа 2009 в 21:49
Alex3AДата: Пт, 07 Августа 2009, 22:08 | Сообщение # 84
Друг клуба ММВ
У системы счисления может быть любое основание :D

Добавлено (07 Август 2009, 22:08)
---------------------------------------------
16, 2 а дальше?

 
СообщениеУ системы счисления может быть любое основание :D

Добавлено (07 Август 2009, 22:08)
---------------------------------------------
16, 2 а дальше?


Автор - Alex3A
Дата добавления - 07 Августа 2009 в 22:08
ВадимДата: Сб, 08 Августа 2009, 00:28 | Сообщение # 85
Генератор идей
Quote (Alex3A)
В ммв, и наверное необук...и ряде иных языков

Т.е. NB - это самостоятельный язык, у меня возникает такой вопрос, когда справочного файла не хватает - может быть NB есть визуальная оболочка какого-то языка программирования и есть по нему пособия... Но видимо это свой язык, имеющий много общего с Паскалем. Да?

Кстати, может Peter знает, есть ли на ресурсах NB специальные пособия по NB? Пусть хоть на албанском - с гуглом теперь можно любые тексты и сайты читать, едва ли не с любого языка :)!

Quote (Alex3A)
Есть негласные рекомендации, переменные которые будут использоваться в разных местах лучше размещать в начале программы, с коментариями
Да, в общем, вполне гласные, я читал о них в книгах по Дельфи. Хорошо, что напомнили!
Quote (Peter)
купи современный ноутбук
:D Хорошая идея! Еще не приходила мне в голову!
Quote (Peter)
чем меньше строк, тем - быстрее!
Да, только это я меня пока еще плохо получается... Оптимизация еще ждет меня, и я по ней уже скучаю... :)
Quote (Alex3A)
не мучай ты машину, дай ей памяти по больше

Это да... К слову, если у кого завалялся раритет - ноутбучная память SO Dimm SDRAM PC100, на 512Мб и больше (сейчас у меня два слота по 64 + 64 Mб встроенной, итого 192Мб :)...), то буду признателен, с удовольствием куплю в свои хорошие руки :)
Да вроде Ауслоджиком чищу регулярно, едва ли не каждый день. Раз в неделю-две дефрагментирую. Места в принципе хватает. Вот скорости (проц PIII на 700Мг) и памяти реально мало... А так машинка (Compaq Armada M700) славно работает - столько лет мне безотказно служит, а я ни дня ему покоя...

Quote (Alex3A)
Самым быстрым будет просто вызвать плагин, в котором полностью реализована основная программа
:D
Quote (Peter)
пример записи в текстовой файл: можно в него писАть построчно, а можно занести все строки в переменную, и записать одним махом сразу все!
Спасибо за совет! Запомню.
Quote (Peter)
Сначала Бог отделил свет от тьмы....
... и слово было - "байт!" :D Да, пожалуй, это было бы немного слишком :D , как в "Матрице", про гл.архитектора, прямо... Не, ликбез на то и ликбез - полезен, коль не освоен...

Quote (sp3d)
решили вопрос бинарной записи в ини?

Да. С этим проблем нет, хоть потом в архив складывать. Сложности возникают при чтении такого ини из архива. Но я еще не успел ознакомиться толком с присланным Вами примером, пришлось на работу смотаться. Ночью вот никто не дергает, сейчас по форуму пройдусь и займусь примером. Результаты доложу! Я в ЛС по нему вопросы писал, не глянули?
...
Ага, увидел, ответ в теме "Плагины Давида".


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)

Сообщение отредактировано
VadimLevkin - Сб, 08 Августа 2009, 00:35
 
Сообщение
Quote (Alex3A)
В ммв, и наверное необук...и ряде иных языков

Т.е. NB - это самостоятельный язык, у меня возникает такой вопрос, когда справочного файла не хватает - может быть NB есть визуальная оболочка какого-то языка программирования и есть по нему пособия... Но видимо это свой язык, имеющий много общего с Паскалем. Да?

Кстати, может Peter знает, есть ли на ресурсах NB специальные пособия по NB? Пусть хоть на албанском - с гуглом теперь можно любые тексты и сайты читать, едва ли не с любого языка :)!

Quote (Alex3A)
Есть негласные рекомендации, переменные которые будут использоваться в разных местах лучше размещать в начале программы, с коментариями
Да, в общем, вполне гласные, я читал о них в книгах по Дельфи. Хорошо, что напомнили!
Quote (Peter)
купи современный ноутбук
:D Хорошая идея! Еще не приходила мне в голову!
Quote (Peter)
чем меньше строк, тем - быстрее!
Да, только это я меня пока еще плохо получается... Оптимизация еще ждет меня, и я по ней уже скучаю... :)
Quote (Alex3A)
не мучай ты машину, дай ей памяти по больше

Это да... К слову, если у кого завалялся раритет - ноутбучная память SO Dimm SDRAM PC100, на 512Мб и больше (сейчас у меня два слота по 64 + 64 Mб встроенной, итого 192Мб :)...), то буду признателен, с удовольствием куплю в свои хорошие руки :)
Да вроде Ауслоджиком чищу регулярно, едва ли не каждый день. Раз в неделю-две дефрагментирую. Места в принципе хватает. Вот скорости (проц PIII на 700Мг) и памяти реально мало... А так машинка (Compaq Armada M700) славно работает - столько лет мне безотказно служит, а я ни дня ему покоя...

Quote (Alex3A)
Самым быстрым будет просто вызвать плагин, в котором полностью реализована основная программа
:D
Quote (Peter)
пример записи в текстовой файл: можно в него писАть построчно, а можно занести все строки в переменную, и записать одним махом сразу все!
Спасибо за совет! Запомню.
Quote (Peter)
Сначала Бог отделил свет от тьмы....
... и слово было - "байт!" :D Да, пожалуй, это было бы немного слишком :D , как в "Матрице", про гл.архитектора, прямо... Не, ликбез на то и ликбез - полезен, коль не освоен...

Quote (sp3d)
решили вопрос бинарной записи в ини?

Да. С этим проблем нет, хоть потом в архив складывать. Сложности возникают при чтении такого ини из архива. Но я еще не успел ознакомиться толком с присланным Вами примером, пришлось на работу смотаться. Ночью вот никто не дергает, сейчас по форуму пройдусь и займусь примером. Результаты доложу! Я в ЛС по нему вопросы писал, не глянули?
...
Ага, увидел, ответ в теме "Плагины Давида".

Автор - Вадим
Дата добавления - 08 Августа 2009 в 00:28
СергейДата: Сб, 08 Августа 2009, 00:46 | Сообщение # 86
Необукер
Quote (VadimLevkin)
Но я еще не успел ознакомиться толком с присланным Вами примером, пришлось на работу
есть еще плагин, много параметров с ини, можно получить хеш(MD5)файла, или зашифровать текст тоже через MD5 да много чего
Lector выложил плаги Давида
 
Сообщение
Quote (VadimLevkin)
Но я еще не успел ознакомиться толком с присланным Вами примером, пришлось на работу
есть еще плагин, много параметров с ини, можно получить хеш(MD5)файла, или зашифровать текст тоже через MD5 да много чего
Lector выложил плаги Давида

Автор - Сергей
Дата добавления - 08 Августа 2009 в 00:46
ВадимДата: Сб, 08 Августа 2009, 04:16 | Сообщение # 87
Генератор идей
Quote (sp3d)
есть еще плагин, много параметров с ини, можно получить хеш(MD5)файла, или зашифровать текст тоже через MD5 да много чего
Lector выложил плаги Давида

Спасибо! Уже качаю!!! :)

Добавлено (08 Август 2009, 04:16)
---------------------------------------------
sp3d, пример посмотрел! Создал для [Embedded] архив (в проекте его не оказалось), ini создаёт, но после записи не читает... Так и должно быть?
Точнее, если выбрать первый файл из списка (кстати, спасибо за пример его применения!), то он читает и записывает без проблем. А вот когда потом выбираешь второй файл из списка, то читает, но записывать в него уже не хочет и далее отказывается читать и первый, равно как и писать в первый. И, с этого момента, не хочет ни с каким файлом ничего делать - только ошибки выдает (хотя сообщения самого проекта бодро рапортуют, что все ок - пишется как надо). Если проект перегрузить, то все повторяется - с первым из списка файлов дружит, а после смены файла, всё... Не знаю в чем дело... Может конфликт переменных образуется, может во взаимодействие с объектом Список закралась ошибка (я с ним еще не работал, не могу сразу определить). Устойчивость ошибок (точнее их одинаковое поведение), говорят, что дело наверное не в плагине, а в том, как мы его используем. Новые плагины, от Lector`a, я еще не смотрел, но руки чешутся :).
Кроме того, благодаря этому примеру, я заметил, что делал ОЧЕНЬ много лишних операций :D ... Ваш код экономичнее во много раз! Команды плагина действительно позволяют делать чтение/запись на лету, без создания разархивированной копии файла на диске. То, что надо! Спасибо!


Бесплатный онлайн курс программирования в VisualNEO Win (NeoBook)
 
Сообщение
Quote (sp3d)
есть еще плагин, много параметров с ини, можно получить хеш(MD5)файла, или зашифровать текст тоже через MD5 да много чего
Lector выложил плаги Давида

Спасибо! Уже качаю!!! :)

Добавлено (08 Август 2009, 04:16)
---------------------------------------------
sp3d, пример посмотрел! Создал для [Embedded] архив (в проекте его не оказалось), ini создаёт, но после записи не читает... Так и должно быть?
Точнее, если выбрать первый файл из списка (кстати, спасибо за пример его применения!), то он читает и записывает без проблем. А вот когда потом выбираешь второй файл из списка, то читает, но записывать в него уже не хочет и далее отказывается читать и первый, равно как и писать в первый. И, с этого момента, не хочет ни с каким файлом ничего делать - только ошибки выдает (хотя сообщения самого проекта бодро рапортуют, что все ок - пишется как надо). Если проект перегрузить, то все повторяется - с первым из списка файлов дружит, а после смены файла, всё... Не знаю в чем дело... Может конфликт переменных образуется, может во взаимодействие с объектом Список закралась ошибка (я с ним еще не работал, не могу сразу определить). Устойчивость ошибок (точнее их одинаковое поведение), говорят, что дело наверное не в плагине, а в том, как мы его используем. Новые плагины, от Lector`a, я еще не смотрел, но руки чешутся :).
Кроме того, благодаря этому примеру, я заметил, что делал ОЧЕНЬ много лишних операций :D ... Ваш код экономичнее во много раз! Команды плагина действительно позволяют делать чтение/запись на лету, без создания разархивированной копии файла на диске. То, что надо! Спасибо!


Автор - Вадим
Дата добавления - 08 Августа 2009 в 04:16
СергейДата: Сб, 08 Августа 2009, 12:23 | Сообщение # 88
Необукер
Quote (VadimLevkin)
Устойчивость ошибок (точнее их одинаковое поведение), говорят, что дело наверное не в плагине, а в том, как мы его используем.

не исключенно, я писал для примера команд(т.е. как их использовать, для каких целей) и наверное упустил из виду код в целом. Может даже так(был случай), что загружаю данные в массив для работы, а за ней команда которая очищает этот массив, :D , потом искал почему не работает хотел с экономить опер-память. Поэтому, все возможно, напиши заново, это лучший способ найти ошибку :D
 
Сообщение
Quote (VadimLevkin)
Устойчивость ошибок (точнее их одинаковое поведение), говорят, что дело наверное не в плагине, а в том, как мы его используем.

не исключенно, я писал для примера команд(т.е. как их использовать, для каких целей) и наверное упустил из виду код в целом. Может даже так(был случай), что загружаю данные в массив для работы, а за ней команда которая очищает этот массив, :D , потом искал почему не работает хотел с экономить опер-память. Поэтому, все возможно, напиши заново, это лучший способ найти ошибку :D

Автор - Сергей
Дата добавления - 08 Августа 2009 в 12:23
DEMBELДата: Вс, 06 Сентября 2009, 01:34 | Сообщение # 89
Наш дизайнер
Эээ, еле осилил все вышенаписанное, и хочу спросить, как в итоге решился вопрос о создании триальных версий. Если хранить все триал-данные в запароленном архиве... я так понял что программа создает его при первом запуске, а что делать если этот файл просто удалить/подменить? также как отмониторить реестр? для "обычного" юзера это давно не проблема...

Как задавать вопросы

Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
СообщениеЭээ, еле осилил все вышенаписанное, и хочу спросить, как в итоге решился вопрос о создании триальных версий. Если хранить все триал-данные в запароленном архиве... я так понял что программа создает его при первом запуске, а что делать если этот файл просто удалить/подменить? также как отмониторить реестр? для "обычного" юзера это давно не проблема...

Автор - DEMBEL
Дата добавления - 06 Сентября 2009 в 01:34
СергейДата: Вс, 06 Сентября 2009, 01:50 | Сообщение # 90
Необукер
Quote (DEMBEL)
а что делать если этот файл просто удалить/подменить?
последние посты не о защете НБ в целом уже обсуждалось, а банально спрятать инфу, т.с. в них то весь секрет наработанный годами, вот и применялось запароленная архивность т.к. нет шифратора
 
Сообщение
Quote (DEMBEL)
а что делать если этот файл просто удалить/подменить?
последние посты не о защете НБ в целом уже обсуждалось, а банально спрятать инфу, т.с. в них то весь секрет наработанный годами, вот и применялось запароленная архивность т.к. нет шифратора

Автор - Сергей
Дата добавления - 06 Сентября 2009 в 01:50
Форум NeoBook » Всё о программе NeoBook » Общие вопросы по NeoBook » Способы реализации триальности программы (Какие можно придумать способы реализации триал-версий?)
Поиск: