Форум программистов, компьютерный форум, киберфорум
Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.62/134: Рейтинг темы: голосов - 134, средняя оценка - 4.62
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4

Общие вопросы и приёмы эффективного программирования на BASIC

27.03.2021, 15:34. Показов 32741. Ответов 391
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот как создать кнопку:
PureBasic
1
2
3
4
5
6
7
8
9
10
Dim hwndButton As HWND = CreateWindow( _
    WC_BUTTON,
    "Текст кнопки", _
    WS_CHILD Or BS_BITMAP Or BS_PUSHBUTTON Or WS_CLIPSIBLINGS, _
    10, 10, 100, 50, _
    hwndMainForm, _
    Cast(HMENU, 1000), _
    hInst, _
    NULL _
)
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.03.2021, 15:34
Ответы с готовыми решениями:

Общие вопросы по языку 1с Visual Basic
Всем привет, много информации нашел, но путевого очень мало, подскажите, пожалуйста, где можно побольше прочитать о достоинстве этого...

Приемы взаимодействия Visual Basic и SQL
При создании приложений, оперирующих базами данных, нередко возникают проблемы, связанные с организацией взаимодействия языка...

Основные понятия и приемы программирования
Помогите ответить на вопросы по С#. 1)Создание объектов.Понятия ссылки. 2)Массивы:одномерные,многомерные,непрерывные,массивы объектов. ...

391
 Аватар для CoderHuligan
1753 / 1019 / 257
Регистрация: 30.06.2015
Сообщений: 5,132
Записей в блоге: 56
05.04.2021, 14:19
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от The trick Посмотреть сообщение
Ну так локальные массивы к этому и относятся.
Если массив используется только этой конкретной функцией. А если кем-то еще, то нужно держать её где-то за её пределами. Если же требуется рекурсия тормоза буду просто космическими.
Цитата Сообщение от The trick Посмотреть сообщение
И что? Как секция data поможет с локальными переменными функции (которые также могу быть массивами)?
Размещать их в статик.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
05.04.2021, 14:26
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Крис Касперски писал, цитата, - "за размещение массивов в стеке давно пора расстреливать".
Не нужно искажать цитаты:
Цитата Сообщение от Крис Касперски ака мыщъх
За бездумное размещение массивов в стеке уже давно пора расстреливать.
https://www.evilfingers.com/pu... ks-1Ch.pdf

Добавлено через 6 минут
Цитата Сообщение от CoderHuligan Посмотреть сообщение
Если массив используется только этой конкретной функцией. А если кем-то еще, то нужно держать её где-то за её пределами. Если же требуется рекурсия тормоза буду просто космическими.
Какие тормоза, ты о чем вообще? Возможно мы про разные вещи говорим. У тебя есть функция которая имеет локальный массив в стеке (к примеру MAX_PATH байт для пути). Мы можем отправлять этот массив в любые функции вызываемые ею. static массив - это глобальный массив, он один и любая рекурсия будет перезаписывать в нем данные + еще если потоки будут то вообще там каша будет.

Цитата Сообщение от CoderHuligan Посмотреть сообщение
Размещать их в статик.
Нет, локальные и статик переменные это вообще две разные сущности которые используются для разных целей. Уже выше написал чем статик массивы обернутся.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
05.04.2021, 14:36
Цитата Сообщение от The trick Посмотреть сообщение
Приведу аналогию. Я тебе говорю к примеру в некоторых задачах можно использовать линейный массив для данных если доступ к данным должен быть по индексу, ты мне говоришь, нет все фигня, нужно использовать ассоциативный массив для любых таких задач.
Так и не говорил что куча идеальна в любых ситуациях. Это ты ставишь кучу в такие условия, когда
она априори неэффективна. Всегда толдычу только об одном, об архитектуре программы. Меня
по большому счёту вся эта возьня с микронюансами не интересует настолько, чтобы утонуть в ней,
потому что знаю простую вещь, что правильно построенная архитектура(а это нефиговый такой анализ)
не даст проге работать как говно. Потому что в ней как раз и закладываются все эти будущие
узкие места, где завести память, где освободить, что и где обсчитать. Как бы никогда не сяду
прямолинейно кодить прогу потому что мол много мозгов и готов прошибать в прямом смысле стены.
А на форуме дело больше в другом, ты вот даёшь людям на откуп дубину, которой они себя потом зашибут.
Стек это реально НУ и очень тонкая работа. А какие-то строки им заводить, ну это не знаю.
В задачах где реально там циклы и надо мелкими кусками заводить много, может и будет прирост,
большие объёмы нужны чтобы этот прирост был ощутим, в реальных ситуациях такого нет
и почти всегда можно обойтись хепом, понять где завести заранее, чтобы сразу все потребности накрыть.
Т.е. как-бы аккуратно все эти штуки со стеком, а не так чтобы мол вот вам стек он работает быстрее
и мол юзайте, да там неофиты такого нагородят, потом ещё из их голов это не вытравишь никак.
да и как бы то что ты показал через тип - предполагаю в FB такое тоже есть, и пока он сам это пасёт
мне вот честное слово пофигу, я понимаю что это не топовый компиль и скоростные характеристики
меня устраивают.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
05.04.2021, 14:43  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Пример встудию!
Потому что написать каждый может, а вы сделайте и чтобы код был понятным и работало без сбоев.
Работает в финальной версии и с оптимизацией -O0 (то есть без оптимизаций)
В отладочной версии у меня падает, там кто‐то другой теребит её rsp.
Ссылка на гитхаб https://github.com/zamabuvaraeu/test
(для x86 версии ставьте gcc)
Миниатюры
Общие вопросы и приёмы эффективного программирования на BASIC  
Вложения
Тип файла: zip trunk.zip (67.7 Кб, 0 просмотров)
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
05.04.2021, 14:51  [ТС]
На скриншоте код функции __alloca из библиотеки ГЦЦ.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
05.04.2021, 15:06
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Это ты ставишь кучу в такие условия, когда
она априори неэффективна.
Не было такого, это ты про стек так говоришь. Про стек я написал что в некоторых сценариях он намного эффективней кучи. Все.
Вот мое оригинальное сообщение:
Не нужно освобождать такую память + выделение такой памяти намного быстрее. Есть конечно и недостатки, такие как ограниченный размер + нельзя возвращать такую память из функции, ну еще некоторые ограничения. Но вывыделение памяти в стеке может пригодится для повышения эффективности кода.
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Т.е. как-бы аккуратно все эти штуки со стеком, а не так чтобы мол вот вам стек он работает быстрее
и мол юзайте, да там неофиты такого нагородят, потом ещё из их голов это не вытравишь никак.
Да сишники испокон веков юзают массивы в стеке, всякие char result[80] и т.п.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
05.04.2021, 15:34
Цитата Сообщение от The trick Посмотреть сообщение
изначально динамический размер (в отличии от массивов со статическим размером где размер задается константой), я не писал что его можно изменить.
Вспомни, говорил, что будут нюансы, не просто так говорил. Всплывают потихоньку.

Цитата Сообщение от The trick Посмотреть сообщение
но так и не привел толком ничего
А что я должен привести? Описал подход к оптимизации, этот подход применял в 2004 году,
когда писал текстурирование на ассемблере. Там было около 10 версий текстур +/-, на это было убито
в общей сложности полтора года, даже больше. Это не сел и нахерачил за 5 минут пример,
который показывает лишь базовый принцип и не показывает где зарыта собака.
С тех пор много воды утекло, уже асм давно забросил, да и те навыки слабо под винду канают,
ибо x64 уже во всю, со своими 15-ю регистрами. Дай мне тогда 15 толстенных 64 битных регистра,
да я бы озверел с такой халявы. А в то время на портах например обычная горизониальная линия
быстрее работала, пример - библиотека XLib для Паскаля.

Цитата Сообщение от The trick Посмотреть сообщение
Про стек я написал что в некоторых сценариях он намного эффективней кучи. Все.
Ну тогда я без вопросов. Так оно всё так и есть. Для меня просто слово эффективность
не может быть фиктивным, привык чувствовать эффективность, в прямом смысле слова.
Т.е. если это 5% - то уже чувствую, но меня это не сильно волнует, если 10-15% - то как-бы
на это обращу внимание, просто отложу в долгий ящик, а если 20-50% - то это делаю сразу.
Что-то менее значимое чем 5%, мной даже не рассматривается, потому что архитектура,
грамотный алгоритм и формализация совместно дают кратные прибавки и лучше потратить время
на модернизирование этих характеристик, а технические кодерские нюансы дают лишь
относительно небольшой прирост, ну если только это не SIMD или явные такие штуки типа
табличной оптимизации, но это тоже скорее больше архитектура, просто в более мелком
масштабе, на уровне конкретного алгоритма, конкретной функции.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
05.04.2021, 15:40
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Вспомни, говорил, что будут нюансы, не просто так говорил. Всплывают потихоньку.
Ну вообще-то я изначально об этом писал:
Цитата Сообщение от The trick Посмотреть сообщение
Ну динамическую строку, теоретически можно и в стеке выделить (просто расположить ее в самом конце локальных переменных), правда так почти никто не делает. В стеке память как правило выделяется для фиксированных данных.

Цитата Сообщение от Quiet Snow Посмотреть сообщение
А что я должен привести?
Ну ты сообщение прочти. Ты говоришь о каких-то мифических сложностях при выделении массивов в стеке, но так и не привел конкретный пример.
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
05.04.2021, 16:29
Цитата Сообщение от The trick Посмотреть сообщение
Ты говоришь о каких-то мифических сложностях при выделении
Не при выделении, а о дилемме во время оптимизации. И да я не курил эти компиляторы на предмет
того как они решают вопрос долгосрочности таких выделений, потому что в моих реалиях, когда кодил,
использовал стек для сохранения переменных внутри циклов, счётчиков и того что вытеснялось на время,
т.е. было не нужным для обсчёта. Уже описал этот процесс, при котором "регистры все заняты"
вроде бы должно быть понятно почему они заняты, причём, включая bp(ebp), и ситуация: ты внутри
цикла, идёт заход в ещё цикл, cx надо сохранять, куда? Стек ты подвинул, положишь что-то сверху,
ниже заведённое уже не ликвидировать, пока не вернёшься, возвращать указатель обратно тоже надо,
иначе прога дальше вытащит не свои данные(адрес возврата например на ret) и придёт кирдык.
А так то да, правил никаких, можно отдать ценнейший bp на адресацию и складывать регистры
в любую доступную память(локальную или глобальную, первое проще когда пишешь машинные коды,
второе, когда этим занимается компилятор).
Так ли всё это мифично на самом деле?
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
05.04.2021, 16:41
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Так ли всё это мифично на самом деле?
Да. Локальные переменные в случае с динамическим выделением памяти в стеке адресуются к примеру через EBP и никаких проблем о которых ты писал. Большинство компиляторов так и делают. Регистр EBP так и называется - Stack Base pointer register. Все проблемы о которых ты написал выше - ты создал себе сам.
0
Эксперт по электронике
6836 / 3260 / 338
Регистрация: 28.10.2011
Сообщений: 12,736
Записей в блоге: 7
05.04.2021, 17:54
Цитата Сообщение от The trick Посмотреть сообщение
Размер массива имеют изначально динамический размер
Размер массива вычисляется во время работы программы, но после этого его размер не меняется. Каждый раз создается новый массив заданного размера.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
05.04.2021, 18:33
Цитата Сообщение от locm Посмотреть сообщение
Размер массива вычисляется во время работы программы
Вот именно, вычисляется, а не задается константой. Это позволяет выделять динамически буфера для временных строк (к примеру результат вызова функции lstrlen).
0
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
05.04.2021, 21:26
Цитата Сообщение от The trick Посмотреть сообщение
Все проблемы о которых ты написал выше - ты создал себе сам.
Я не кодер хулиган, пачка реализованных проектов говорит сама за себя, проблем никогда не было
даже на системе, где всей этой памяти копейки, о чём пишу и делюсь своими опытом с другими.
Просто говорю, что не стал бы использовать это на каждый чих, в реале, в 99% случаев оно не даст никакой
видимой выгоды, только в каких-то редких случаях. Со строками в тех кейзах, в которых их обычно используют
- точно не даст. А разного рода геморроя может добавить порядком, особенно неопытным программистам,
которые не знают с какой стороны к этому самому стеку подойти. До сих пор уверен, что ты не осознаёшь
всю глубину проблемы, почему всё это пишу. Одно дело читать код, генеренный компилятором и совсем
другое писать этот код самому.
И когда BASIC программист увидит такой код, он будет долго ломать бошку, мол, зачем же его сделали,
если там не будет комментария. Повторюсь, оптимизирую только тогда, когда это необходимо,
т.е. когда есть явная в том потребность. Когда потребности нет в асм не лезу и не вижу смысла лезть.
И типовой кейз - это алгоритмы, а не просто потому что кто-то посчитал, что строки работают
недостаточно быстро и диалекты мол писали какие-то левые тюфяки, которые ни в зуб ногой.
Всё там работает отлично. И если внезапно начинаются проблемы - это как раз первый звоночек и
прямое свидетельство того, что архитектура проги сделана через задницу и не уделено внимание
самому главному, это также означает, что если вовремя эту работу не переделать - проблем станет больше.

Цитата Сообщение от The trick Посмотреть сообщение
Регистр EBP так и называется - Stack Base pointer register.
Знаю как он называется и для чего используется обычно (адресация локальных переменных).
Также знаю, что операция регистр регистр выполняется быстрее, чем регистр память.
Во всяком случае так было раньше и с этим никто не спорил, это был серьёзный
ресурс для оптимизации, наряду с выравниванием, с табличкой и другими, уже более сложными.
0
Эксперт по электронике
6836 / 3260 / 338
Регистрация: 28.10.2011
Сообщений: 12,736
Записей в блоге: 7
05.04.2021, 21:35
Цитата Сообщение от The trick Посмотреть сообщение
Это позволяет выделять динамически буфера для временных строк
Речь шла об изменении размера уже выделенного буфера в стеке. Просто выделить не меняя размер в дальнейшем проблем не составляет.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
05.04.2021, 21:44
Цитата Сообщение от Quiet Snow Посмотреть сообщение
До сих пор уверен, что ты не осознаёшь
всю глубину проблемы, почему всё это пишу.
Потому что никакой особой проблемы нет. Я реверсил кучу кода и прекрасно знаю как работают вещи в реальности.

Цитата Сообщение от locm Посмотреть сообщение
Речь шла об изменении размера уже выделенного буфера в стеке.
Я ни о чем таком не говорил, вот мое сообщение:
Цитата Сообщение от The trick Посмотреть сообщение
Не нужно освобождать такую память + выделение такой памяти намного быстрее. Есть конечно и недостатки, такие как ограниченный размер + нельзя возвращать такую память из функции, ну еще некоторые ограничения. Но вывыделение памяти в стеке может пригодится для повышения эффективности кода.
Про изменение размера уже выделенного буфера я только написал:
Цитата Сообщение от The trick Посмотреть сообщение
Ну динамическую строку, теоретически можно и в стеке выделить (просто расположить ее в самом конце локальных переменных), правда так почти никто не делает. В стеке память как правило выделяется для фиксированных данных.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
06.04.2021, 12:35  [ТС]
Цитата Сообщение от Quiet Snow Посмотреть сообщение
Это ты ставишь кучу в такие условия, когда
она априори неэффективна
Давайте сравним выделение памяти в куче и стэке.
1. Память в стэке выделается одной командой процессора.
2. Память в куче — это вызов функции, где проверяются всякие списки, свободные места, происходит вход в критическую секцию и так далее.
3. Данные в стэке лежат прямо вместе с кодом и легко умещаются в кеш процессора.
4. Данные в куче лежат неизвестно по каким адресам, и чтобы до них добраться, процессору может потребоваться сбросить кеш.
Есть есть ли ещё сомнения, почему куча априори неэффективна?
0
Эксперт по электронике
6836 / 3260 / 338
Регистрация: 28.10.2011
Сообщений: 12,736
Записей в блоге: 7
06.04.2021, 12:41
Цитата Сообщение от Замабувараев Посмотреть сообщение
Память в стэке выделается одной командой процессора.
Примера динамической строки или массива в стеке вы так не выложили.
Цитата Сообщение от Замабувараев Посмотреть сообщение
Данные в стэке лежат прямо вместе с кодом и легко умещаются в кеш процессора.
Как одно с другим связанно? Тем боле что стек находится не в той же области памяти что код.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Есть есть ли ещё сомнения, почему куча априори неэффективна?
Ждем примеры эффективного использования стека для хранения локальных динамических строк и массивов.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
06.04.2021, 13:09  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
динамической строки или массива в стеке
Функция realloc:

Описание
Функция realloc выполняет перераспределение блоков памяти.
Размер блока памяти, на который ссылается параметр ptrmem изменяется на size байтов. Блок памяти может уменьшаться или увеличиваться в размере.

Эта функция может перемещать блок памяти на новое место, в этом случае функция возвращает указатель на новое место в памяти. Содержание блока памяти сохраняется даже если новый блок имеет меньший размер, чем старый. Отбрасываются только те данные, которые не вместились в новый блок. Если новое значение size больше старого, то содержимое вновь выделенной памяти будет неопределенным.

Возвращаемое значение
Указатель на перераспределенный блок памяти, который может быть либо таким же, как аргумент ptrmem или ссылаться на новое место.
Не очень‐то вяжется с вашим динамическим массивом, особенно с учётом того, что старым указателем пользоваться уже нельзя.
0
Модератор
10057 / 3902 / 884
Регистрация: 22.02.2013
Сообщений: 5,853
Записей в блоге: 79
06.04.2021, 13:19
Цитата Сообщение от locm Посмотреть сообщение
Примера динамической строки или массива в стеке вы так не выложили.
Динамическую строку можно выделить в стеке, Замабувараев написал уже:
Цитата Сообщение от Замабувараев Посмотреть сообщение
realloc тривиально заменяется на связку alloca + копирование + freea.
только freea тут не нужно. Только такой случай уже не является таким оптимальным как тот о котором я пишу. Строки в стеке эффективнее выделять когда размер не будет изменен после выделения, т.е. это очень эффективно в сценариях типа таких:
Visual Basic
1
2
Dim z As StringOnStack
z = a & foo() & c & d
т.е. когда размер строки неизвестен на момент компиляции, но его можно вычислить в рантайме динамически (к примеру вывод каких-то данных на консоль или запись форматированной строки в файли или отправка по сети, в общем много сценариев можно придумать). Ничего не мешает конечно сделать и изменяемый размер, только стек будет расти для каждого изменения и это уже не так оптимально, хотя все-равно в некоторых случаях это будет эффективнее чем память в хипе. Если это и делать в компиляторе то нужно явно этот момент указывать - получишь настоящие динамические строки.

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

Не по теме:

Pro_grammer, я бы еще эту тему вытащил на главную, там про виртуальную память интересная дискуссия. Как считаешь?

0
06.04.2021, 15:06

Не по теме:

Цитата Сообщение от The trick Посмотреть сообщение
про виртуальную память интересная дискуссия. Как считаешь?
Можно. Сделаю чуть позже.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.04.2021, 15:06
Помогаю со студенческими работами здесь

Стоит ли изучать как устроена ЭВМ для эффективного программирования
Всем дробового времени суток (пятница!!!) Стоит ли изучать как устроен ЭВМ для эффективного программирования на плюсах ?

Подскажите ссылки на приемы программирования для Embedded
Народ! Подскажите пожалуйста ссылки, на приемы и упражнения по программированию, с разьяснениями по встраеваемому ПО. Заранее благодарю!

Нужны сайты про C#, приемы, рецепты, трюки программирования
Не советуйте msdn или книгу. Справочник должен быть похож на другие стандартные справочники как у delphi, которых полно в инете, а к C#...

Интересны приемы программирования, о которых не пишут в книгах, а которые узнаются на практике
интересны приемы программирования на C# те о которых не пишут в книгах, которые узнаются на практике. какие OpenSource проекты можете...

Общие вопросы.
Доброго времени суток! После изучения Паскаля, решил перейти на изучение С/С++, прочитал много мануалов для новичков, но накопились...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
140
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru