newJS
А вообще нужны ли эти инструкции по процессору в справке? Они настолько узкоспециализированные, что у меня мелькала мысль не вырезать ли эти 8 Мб файлов. По началу мне казалось что это какая то реклама процессоров. Потом я понял что это для разработчиков ASM, которые знают язык в совершенстве и просматривают в этой документации команды поддерживаемые процессорами, но нам это недопурибейсиковцам (по крайней мере мне) как до Пекина на корячках, тут у меня три темы мелькают перед глазами изучить спрайты, 3D, параллельно с написанием 2-х программ (жизненно необходимых), подписаться в самозанятые и выложить на русторе пару игр и прог, посмотреть что из этого выйдет. А ты пытаешься ради красоты, чтобы было исправить никому не нужный текст. Когда придёт время нужные люди всё исправят для себя, не нужно забирать у них работу. Я вот не против примеры бы хорошие воткнуть, больше пользы будет, но чтобы их воткнуть надо в совершенстве знать раздел, те же спрайт или 3D. Нужны такие примеры, чтобы вставил их в IDE и хотелось бы дорабатывать. А то зайдёшь в раздел, а там ни одного примера. Вон jacdelad три дня пытается дым сделать из раздела частиц, а пример на 30 строк (без коментов) вполне в справку можно воткнуть, или урезать чуть-чуть.
Улучшение справки
Сообщений 61 страница 90 из 131
Поделиться6126.04.2024 09:30:48
Поделиться6226.04.2024 22:40:16
Я как-то пропустил момент, а откуда в справке вообще эти ассемблерные инструкции взялись? Вроде как в официальной справке такого нет.
Поделиться6326.04.2024 23:52:06
Smitis
Точно нет. Посмотрел справку 6.10, потом вернулся к началам 5.62, 5.70, ни в одной из них нет этого... удалю у себя тоже. Так если честно, смотрел оригинальные страницы и модернизированные, уж слишком они многословны и оригинальный контент перенесён вниз или между строк. Я принципиально за то чтобы сначала идёт оригинальный контент, а потом уже от себя с пометкой "от автора перевода". При чём уровни у всех разные, мне всё время приходится искать среди десятка примеров по массивам нужное и не нахожу. Например нужен многомерный массив, забыл как записывать так (2,3) или так (2)(3), причём как объявляется и как доступ к элементу (в AutoIt3 было [2][3], а перечисление [2, 3]) и вот начинаю крутить этот список примеров и вычитывать страницу текста. Хотя можно было по порядку от простейшего к сложным Объявление и доступ, потом двумерный, потом редко используемый многомерный, потом усложнённые со структурами - массив структур, потом массив внутри структуры, потом вообще профессиональные моменты, пересоздание, очистка, почему пустой массив с одним элементом, объявление массива без инициализации.
У меня тоже есть интересные вещи (условие, массив, битовый флаг), но всё это можно сделать отдельным разделом и ссылкой на него.
Скомпилировал, файл справки уменьшился на 0,53 Мб (5.94->5.41).
Отредактировано AZJIO (27.04.2024 00:29:02)
Поделиться6427.04.2024 17:38:05
да ни где этого нет, это очень похоже на Серёгину отсебятину
А вообще нужны ли эти инструкции по процессору в справке?
да я ковырялся по разным версиям и случайно наткнулся, а ты просил об ошибках сообщать
согласен с тобой, можно удалить
ещё в Серёгиной версии есть один файл с кракозяблами, но у тебя вроде всё в 1251
не помню что за файл, еле нашёл, у него что то с кодировкой не так, если надо найду
Поделиться6527.04.2024 22:18:35
у него что то с кодировкой не так, если надо найду
Найди, но учти, что я делал поиск по "??" двойным вопросам, когда проблема кодировки вместо юникодных символов знак вопроса, я нашёл их всех и исправил. Если ты их видел до этого, то можешь зря потратить время.
Кодировка 1251 помогает сделать поиск, вкладка "Поиск" работает. Потому что поиск работает только в ANSI, в однобайтовой кодировке. Именно поэтому я конвертировал все файлы в эту кодировку а юникоде-символы воспроизвёл с помощью псевдо-кода.
Отредактировано AZJIO (27.04.2024 22:20:00)
Поделиться6629.04.2024 13:17:47
справка от 29.04.24 скачать яндекс, upload.ee
Добавлен раздел "Учебник", куда перенесены из Dim, а также добавил свои описания массивов и синтаксиса рег.выр. Также добавлены ссылки на странице Dim (в шапке) и CreateRegularExpression в "см. также".
Удалены "процессоры"
Ещё перезалил, добавил "Условие" в учебник.
Отредактировано AZJIO (29.04.2024 17:22:22)
Поделиться6704.05.2024 15:35:00
Reference\binary.html Работа с различными системами счисления
файл без bom, но ты не парься, ты её перекодировал
похоже это тоже Серёгино, как в справке попасть на эту страницу не нашёл
могут ещё такие страницы быть, надо эту папку перепроверить
Кодировка 1251 помогает сделать поиск, вкладка "Поиск" работает.
да, chm это такая бяка которая работает только с 1251, у Серёги русский текст не ищется, у тебя ищется
Поделиться6820.08.2024 07:06:13
CreateToolBar()
Федя давно поменял имена функций, выкинул константы типа #PB_ToolBarIcon_New, примеры не работают в новых версиях
исправь
Поделиться6920.08.2024 19:59:05
Можно добавить к имени раздела последнюю версию, с которой этот раздел работает. Вдруг пригодится.
Chr()
Исправить, теперь содержит диапазон работающих символов и суррогатных.
Отредактировано AZJIO (27.09.2024 17:21:28)
Поделиться7006.10.2024 19:19:15
1. На каждой странице теперь есть ссылка на официальную английскую онлайн-страницу. Это позволит посмотреть изменения, другие примеры, проверить качество перевода на соответствие оригиналу. (ради этого выложил, заметное улучшение)
2. Раздел "Ключевые слова" там подсветил <expression>, в общем то что в синтаксисе внутри <...>. (ручная работа нескольких страниц и даже исправлял текст пару раз)
3. Добавил в Chr() валидные диапазоны юникода, как в оригинале.
4. В историю добавил перевод обновления для версий 6.11 и 6.12. И добавил указанные там константы для OSVersion() и FrameGadget() на их страницы.
Поделиться7108.10.2024 09:09:49
Почему то до сих пор справка 5.73?
Поделиться7208.10.2024 10:46:46
Почему то до сих пор справка 5.73?
1. Некому встроить новое, да и я уже начал необратимые процессы встраивая в "свою" версию справки поправки и улучшения, я уже не готов повторить эту обработку дважды. Если только кто-то будет улучшать именно "мой" вариант, то да, мы уже будем работать в команде.
2. Потому что небольшое обновление отнимает несколько часов работы. И мне выгодней тратить время на свои программы. Бывает временный позыв, что выбрать, куда потратить время отдыха, потерять время на пустой просмотр фильма (заранее неизвестно) или потратить на что-либо полезное, например справка. Выбор не очевиден, я ведь тоже не робот.
3. Некоторые страницы изменены в разделе 3D-графики, или сетевого программирования, кои я не использую. Мне интересней улучшать разделы до совершенства, которые я использую по 100 раз в сутки. А это а) ключевые слова, б) строковые функции, в) регвыр, ini-файл, гаджеты, карты, списки, файлы, структуры, работа с памятью. И работы там непочатый край, от подсветки примеров и ключевых слов по тексту до вылизывания формулировок. Остальные разделы они уже после основ, то есть перечисленные являются обязательными для других разделов, невозможно не зная разделов структуры и работы с памятью работать над 3D-графикой.
4. Значимые функции добавлены (HTTPTimeout, CustomSortList, CustomSortArray, CompareMap,CompareList, CompareArray, SysTrayIconMenu, DateUTC, CreatePasswordHash, CompareStructure), но нельзя назвать справку 6.12 пока не будет исправлено всё, так что по факту справка у вас 6.12, цифра 5.73 не должна вас пугать. (читайте отсюда и далее)
——————————
Возникли вопросы:
1. DrawingBufferFormat() не найдена через "Указатель", есть только DrawingBufferPixelFormat(), и похоже #PB_PixelFormat_NoAlpha для неё. Ошибка в истории?
2. fingerprint переводится как отпечаток пальца, у Сергея в скобках пояснение (цифровой отпечаток ключа) пока непонятно как это переводить, но каждый раз на страницах справки англ-вставка fingerprint вместо понятного перевода.
Отредактировано AZJIO (09.10.2024 19:27:00)
Поделиться7309.10.2024 19:26:41
Скачать
Новая иконка - ссылка на официальную документацию.
Добавлены функции:
+ConvertDate
+UseDialogOpenGLGadget
+UseDialogScintillaGadget
+UseDialogWebGadget
+UseDialogWebViewGadget
Добавлены константы в функции где они применяются
#PB_Cipher_HMAC
#PB_2DDrawing_NativeText
#PB_EventType_ColumnClick
#PB_PixelFormat_NoAlpha
#PB_EventType_Refresh
11.10.2024
Добавлены функции:
AddPackDirectory
CatchPack
исправления для уже добавленных функций в плане перехода между функций (в нижней строке). Если вклинена функция то у предыдущей и последующей должны изменится переходы на добавленную. Также поправка в index.html, где эти функции должны быть перечислены списком, также в разделе HTTP в список вклинены ссылки с открытием во внешнем браузере. Всё уже сделано, но скомпилирую чуть позже, может ещё пару функций добавлю.
(ссылка обновлена)
План:
CreateAnimatedMaterial
CreateCubicTexture
CreateShader
CreateShaderMaterial
DeriveCipherKey
DraggedItemIndex
ExamineDraggedItems
NextDraggedItem
GetEntityMesh
MaterialAnimation
MaterialShaderAutoParameter
MaterialShaderParameter
MaterialShaderTexture
PackEntryDate
ScaleEntityBone
Text3DX
Text3DY
Text3DZ
VerifyPasswordHash
Skeleton (раздел)
AddSkeletonAnimationKeyFrame
CreateBone
CreateSkeleton
CreateSkeletonAnimation
FinishBoneAssignment
VertexBoneAssignment
Отредактировано AZJIO (26.10.2024 22:20:43)
Поделиться7426.10.2024 22:21:40
Скачать +WebView (4 функции)
Ещё раз перезалил, забыл в Index.hhk. И попутно в Index.hhk ссылку на List, Map, Array поправил на index, то есть на раздел, а не на NewList, NewMap, Dim, а то как то не логично получается ищешь List, а попадаешь на NewList и т.д.
Отредактировано AZJIO (26.10.2024 22:54:14)
Поделиться7521.12.2024 13:13:30
Описание функций PushListPosition() и PopListPosition() не раскрывают понимание их работы, хотя частично.
Функцию PushListPosition() можно вызвать многократно, при это создаётся список указателей. При этом вызов PopListPosition() устанавливает последний указатель текущим и удаляет его из списка ListPosition(), то есть если мы 3 раза выбрали 2, 5, 8 элемент, то PopListPosition() при вызове сделает текущим 8-й, потом 5-й, потом 2-й. Лишний вызов PopListPosition() приведёт к ошибке, потому что в ListPosition() не будет указателей.
Изначально я думал что PushListPosition() создаёт один указатель и я могу несколько раз вызвать PopListPosition(), который всегда будет задавать то что задал PushListPosition(), но после попытки я сразу понял, что PopListPosition() можно вызвать 1 раз. Допустим у меня 3 цикла и после каждого я хотел бы иметь доступ к текущему, соответственно перед каждым циклом я должен вызвать PushListPosition(), а по завершению цикла вызвать PopListPosition(). То есть мое представление что я должен вызвать PushListPosition() один раз, а потом просто восстановить текущий вызывая три раза PopListPosition() накрылось медным тазом. Перечитываю справку, там есть упоминание (в PushListPosition()), что каждый вызов должен быть уравновешен, но ошибку то вызвала функция PopListPosition(), в которой об это ничего не сказано, и потом понимая что в названии функции присутствует "List", то я понимаю что это список позиций, а не просто запоминание позиции. Явно формулировка не проливает свет, на работу функции, если мне приходится тестировать её поведение.
Поделиться7621.12.2024 13:55:28
PushListPosition()
Syntax
PushListPosition(List())
Description
Remembers the current element (if any) of the list so it can later be restored using PopListPosition(). The position is remembered on a stack structure, so multiple calls to this function are possible.
Описание на 111% простое и объясняющее суть вопроса. Не понять его можно, только в одном случае - не представлять суть понятия stack.
https://ru.wikipedia.org/wiki/Стек
Отредактировано useful (21.12.2024 14:53:59)
Поделиться7721.12.2024 15:02:49
Вот чтобы чел представлял для чего предназначена функция и в том числе что такое стек я и предложил описать работу функции.
Поделиться7821.12.2024 15:06:47
Это предложение описать, что 2 * 2 = 4
Поделиться7921.12.2024 15:16:22
Может тогда удалить описание функции FindString(), оставить только синтаксис, потому что для меня это как 2*2? Ну и до кучи ещё подрезать пару десятков функций? Цель же справки не удалять то, что вам известно и подстраиваться только под вас.
Вот моё предложение по улучшению PushListPosition().
Сохраняет указатель на текущий элемент списка в список позиций, чтобы после цикла ForEach восстановить текущий с помощью PopListPosition().
List() - список, текущий элемент которого необходимо запомнить.
Число вызовов PushListPosition() должно завершиться таким же числом вызовов PopListPosition(). Каждый вызов PopListPosition() делает сохранённый элемент списка текущим, при этом удаляя его указатель из списка позиций.
В примечание добавить в начало, не удаляя то что там есть.
Отредактировано AZJIO (21.12.2024 15:52:19)
Поделиться8121.12.2024 16:51:18
Я знаю общую характеристику понятия стек. Но иногда в общении мне странно упоминание стека, используется ли это для употребления терминов, чтобы показать себя выше других или чел действительно знает, о чём говорит, потому что при попытке употребления этих слов и начале вопросов начинаешь получать вместо ответов плавающее рассуждение и попытку борьбы с автором вопроса по причине не понимания челом использующим этот термин и невозможностью им его объяснить. Поэтому через время я многие вещи не спрашиваю, понимая, что чел сдуется и будет давать ссылки на общее описание понятия стек.
Чтобы не быть голословным выражение "функция помещается в стек" - помещается указатель на функцию? сейчас тут нет контекста и фраза вырвана из него, поэтому надо искать эти слова автора, чтобы понять его. И я боюсь что при попытке столкновения с этими терминами и обращением к вам я опять не увижу борьбу против неудобных вопросов, в которых автор поплывёт. Но ладно, вы заикнулись, я в будущем буду набрасывать вопросы. Но в данном описании проблема в том, что не я жду ответа на вопросы, а предлагаю правильно описать работу функции. То что вы положите указатель в стек или в ячейку памяти, не говорит о том что это список данных, это только место куда будет сохранён указатель. Я же предлагаю раскрыть тему что это не ячейка памяти или стек, а о том что это список, куда будут помещаться указатели при каждом вызове. Опять же "позиция запоминается в структуре стека" здесь нет ключевого смысла сохранение нескольких позиций, здесь сказано что "позиция" не "позиции", "position" не "positions". Разницу в отсутствии "s" вы видите? Опять же по вашей ссылке где в описании "структура стека", а по вашей ссылке там просто стек. Структура имеет одинаковую длину на всём времени жизни. Как я должен угадать что есть какая то изменяющаяся в размере структура? Но есть список - пурибэйсиковский стандартный, который может быть объявлен в структуре и структура хранит указатель на список, структура не меняется в длину, а функционал списка позволяет управлять этим списком в структуре и что-то мне подсказывает, что этот функционал имеет те же свойства что и у списка пурибэйсиковского или тот же но с небольшой урезкой для работы в рамках этого функционала, то есть хранится указатель на список, хранится размер списка, при доступе к указателю перемещаемся сложением к указателю размера ширины Integer умноженного на число добавленных элементов, или пускай это будет стек, некий внутренний движок выделяющий некий буфер, где вставляются указатели и берутся сверху, пока не достигнет нуля. Не важно как устроена эта фича пускай будет так или так, в контексте текущей функции важна упрощенная формулировка список позиций, а не просто одна позиция.
Вы заряженный на борьбу со мной, ваша позиция имеет мало смысла, потому что у меня цель сделать справку понятной, у вас цель борьба со мной, из-за чего ваши комментарии не несут полезных вещей для справки.
Поделиться8221.12.2024 17:03:00
Зачем мне с кем то бороться?
Я всего лишь высказал мнение, что текущее описание функции исчерпывающее для любого, кто понимает базовое понятие СТЕК.
И ни каких дополнений не требуется!
Всё.
p.s. части (pop и push) в названиях функций комментируют сами себя https://sysprog.ru/post/komandy-push-i-pop
Отредактировано useful (21.12.2024 17:26:24)
Поделиться8321.12.2024 17:48:12
Вы пытаете давить на знание стек, не смотря на то, что я знаю общее понятие "стек". Справка вызвала непонимание работы функции. То есть по существующему факту, по прецеденту, а не по вашим фантазиям. Если что я считаю себя достаточно знакомым с программированием. Если описание вызывало у меня проблему, то есть по факту, а у вас что есть кроме борьбы со мной? Плюс я сделал объективный разбор, который не основывается на том знаете ли вы как работает функция, а основывается только на отсутствии логически завершённой формулировки, из которой не должно возникать вопросов как работает функция, не создаст ложного представления.
Описание это тоже как программирование, если вы не правильно понимаете бизнес договор, то это может вызвать проблемы, поэтому договор пишется так, чтобы все пункты были ясны для понимания. Вот поэтому я хочу, чтобы в формулировки отсутствовали лишние слова не несущие смысловой нагрузки, такие как в описании параметра List(), говорящие что нужно создать его с помощью NewList, как будто его можно создать и без этого ключевого слова, опять же его можно создать в структуре с ключевым словом List и есть подозрение что список в структуре также будет работать с функциями PushListPosition(), PopListPosition(), то есть как бы формулировка ещё не оказалось ложной.
Итак текст
Structure Person List Num.i() EndStructure x.Person For i = 0 To 11 AddElement(x\Num()) x\Num() = i Next SelectElement(x\Num(), 5) Debug x\Num() PushListPosition(x\Num()) ForEach x\Num() Debug x\Num() Next PopListPosition(x\Num()) Debug x\Num()
Получаем ещё и ложность описания, список создан с помощью List в структуре, как видим NewList тут вообще нет, а функции PushListPosition(), PopListPosition() работают.
Поделиться8421.12.2024 17:57:48
Всё работает именно так как описано.
EnableExplicit Structure Person List Num.i() EndStructure Define x.Person ; в данном случае по сути срабатывает неявный newlist но это уже другая история к обсуждению не относящаяся. Define i.i For i = 0 To 11 AddElement(x\Num()) x\Num() = i PushListPosition(x\Num()) Next PopListPosition(x\Num()) Debug x\Num() PopListPosition(x\Num()) Debug x\Num() PopListPosition(x\Num()) Debug x\Num() ; ...
Отредактировано useful (21.12.2024 18:07:38)
Поделиться8521.12.2024 18:05:04
Всё работает именно так как описано..
Вы видите в моём примере ключевое слово NewList? И прочитайте описание ещё раз, найдите там упоминание NewList.
p.s. части (pop и push) в названиях функций комментируют сами себя
Вообще я считаю что у нас язык PureBasic и я в рамках этого языка не обязан знать другие языки для работы с PureBasic. По желанию вы можете об этом рассказывать, но справка должна описывать свой функционал без использования терминов другого языка.
Не кажется ли вам что текст "You must include the brackets after the list name." более излишен и очевиден по наличию синтаксиса, чем отсутствие тех вещей, что я указал?
Отредактировано AZJIO (21.12.2024 18:09:39)
Поделиться8621.12.2024 18:29:12
Изначально я думал что PushListPosition() создаёт один указатель и я могу несколько раз вызвать PopListPosition(), который всегда будет задавать то что задал PushListPosition()
Любому человеку, кто имеет представление о стеке на уровне школьной информатики ( https://infourok.ru/urok-po-informatike … 69576.html ) это не могло прийти в голову.
И не нужно мои реплики воспринимать как нападение.
В моих знаниях куча пробелов, мне трудно представить, что кто то на них указал, а я воспринял как нападение.
Поделиться8721.12.2024 18:32:59
AZJIO, используется классический стек. Ссылку на википедию уже дали.
Работает примерно так (код максимально упрощен без проверок корректности данных).
Structure TestList List DataList.i() ; Наши данные. List StackList.i() ; Служебный список-стек. EndStructure MyList.TestList Procedure Push_ListPosition(*l.TestList) AddElement(*l\StackList()) *l\StackList() = ListIndex(*l\DataList()) EndProcedure Procedure Pop_ListPosition(*l.TestList) SelectElement(*l\DataList(), *l\StackList()) DeleteElement(*l\StackList()) EndProcedure For i=1 To 10 AddElement(MyList\DataList()) Next SelectElement(MyList\DataList(), 4) Push_ListPosition(MyList) SelectElement(MyList\DataList(), 8) Push_ListPosition(MyList) SelectElement(MyList\DataList(), 2) Debug ListIndex(MyList\DataList()) Pop_ListPosition(MyList) Debug ListIndex(MyList\DataList()) Pop_ListPosition(MyList) Debug ListIndex(MyList\DataList())
Можно также сделать через указатель на элемент списка.
Structure TestList List DataList.i() ; Наши данные. List *StackList() ; Служебный список-стек. EndStructure MyList.TestList Procedure Push_ListPosition(*l.TestList) AddElement(*l\StackList()) *l\StackList() = @*l\DataList() EndProcedure Procedure Pop_ListPosition(*l.TestList) ChangeCurrentElement(*l\DataList(), *l\StackList()) DeleteElement(*l\StackList()) EndProcedure For i=1 To 10 AddElement(MyList\DataList()) Next SelectElement(MyList\DataList(), 4) Push_ListPosition(MyList) SelectElement(MyList\DataList(), 8) Push_ListPosition(MyList) SelectElement(MyList\DataList(), 2) Debug ListIndex(MyList\DataList()) Pop_ListPosition(MyList) Debug ListIndex(MyList\DataList()) Pop_ListPosition(MyList) Debug ListIndex(MyList\DataList())
Сохраняет указатель на текущий элемент списка в список позиций, чтобы после цикла ForEach восстановить текущий с помощью PopListPosition().
Думаю правильнее будет
Сохраняет указатель на текущий элемент списка в список позиций, чтобы в дальнейшем восстановить текущий с помощью PopListPosition().
потому что восстановить можно не только после цикла ForEach.
Поделиться8821.12.2024 19:00:31
в список позиций
Зачем коверкать истину? Сохраняет в стек!!!! Именно так в исходном варианте и написано, именно об этом говорит часть имени функции!!!!!
p.s. и даже не сохраняет, а корректнее - помещает на вершину специально организованного для этого стека.
Отредактировано useful (21.12.2024 19:05:06)
Поделиться8921.12.2024 19:08:22
useful, во первых, я не писал про список позиций, а процитировал. А во вторых вы тоже не совсем правы. Если написать "Сохраняет в стек" то можно перепутать со стеком потока, где сохраняются локальные переменные, адреса возврата из функций и др. Наверное правильнее "Внутренний список, используемый в качестве стека, связанный с текущим списком".
Поделиться9021.12.2024 19:29:34
Всё началось с того, что The position is remembered on a stack structure, so multiple calls to this function are possible. в сочетании с частью push в имени функции
однозначно говорит о том, что происходит и то что этот стек привязан именно к тому списку указатель на элемент которого мы берём в работу также абсолютно очевидно.
Просто для чтения этого текста понятия push/pop stack должны быть базовыми на уровне 2*2 = 4
Для особого случая можно сделать сноску со ссылкой на википедию.
Теперь точно всё!
Похожие темы
Обсуждение русской справки | PureBasic для Windows | 15.02.2023 |
Про новую справку | OffTop | 02.02.2022 |
Генерация палитры | PureBasic для Windows | 05.10.2023 |
Расширители буфера обмена | PureBasic для Windows | 02.06.2025 |
PureBasic сборка | PureBasic для Windows | 16.03.2025 |