PureBasic - форум

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » PureBasic - форум » OffTop » Программа поиска и выбора констант API


Программа поиска и выбора констант API

Сообщений 31 страница 41 из 41

31

newJS
Посмотри как работает AutoCompletionIDE, я вызываю хоткей в IDE, он выдаёт список констант, но если рассматривать функционал фрагментов, то там выбор лексемы вставляет в IDE связанный фрагмент. Разница что у тебя не вставляет в IDE, а показывает в GUI и не фрагмент кода, а описание. Но выбор то происходит. автоподстановщик находит по части текста константу, почему у тебя непонимание происходящего? В чём проблема? В избавлении печатать константу. Она уже напечатана в коде и я хочу получить её описание, зачем мне печатать её второй раз? Я хочу нажать хоткей и получить описание, нажать Esc и закрыть описание. Вместо этого мне приходится либо печатать её ручками, либо выбирать в комбо-списке, ища связанный раздел, а я мог бы этого ничего не делать.

0

32

newJS

newJS написал(а):

не понял, на пальцах можно

Всё то же самое - если запускать программы, ну, опять-таки, через ярлыкы с пустой "рабочей папкой", программы сохраняли свои ini-файлы куда попало, часто на тот же рабочий стол. Пришлось на PB набросать "запускатель", устанавливающий текущую папку и запускавший программу (в начале вообще через батник сделал). Ну что поделать, если я запускаю программы не стандартным с точки зрения простого пользователя способом :)
Сам Хорст, к слову, пишет свои программы на PureBasic.

0

33

Smitis написал(а):

Сам Хорст, к слову, пишет свои программы на PureBasic.

Но от этого не холодно не жарко, скомпилированные они уже в машинном коде и к языку уже не имеют никакого отношения.

0

34

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

теперь что и будет, так это исправление возможных ошибок и пополнение базы

0

35

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

Отредактировано AZJIO (07.09.2022 06:59:36)

0

36

Smitis написал(а):

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

а это правильно работает????

Код:
Procedure myGetCurrentDirectory()
Protected pPath.s, n1, n2, *m

n1 = GetCurrentDirectory_(0, 0); возвращает необходимую длину строки с учётом стоп байта
*m=AllocateMemory(n1*2); удваиваем под юникод
n2 = GetCurrentDirectory_(n1, *m); читаем путь
pPath = PeekS(*m); получаем путь

Debug ""+n1+" "+n2+" "+pPath

EndProcedure

0

37

newJS написал(а):

а это правильно работает????

Нет, конечно.
Папка программы это GetPathPart(ProgramFilename()) (с бакслешем на конце).

П.С.
Для получения текущей папки можно использовать встроенную GetCurrentDirectory.

0

38

ясно, но возникает вопрос, а что федя использует во встроенных

вот ещё изврат, но должен давать правильный каталог

Код:
; извращение, но эффект тот же
; имя обязательно, достаточно одного символа от тёти Фени
n1=GetFullPathName_("N", 0, 0, 0)
*m2=AllocateMemory(n1*2); удваиваем под юникод
n2=GetFullPathName_("N", n1, *m2, @n3)
;PokeU(n3, 0); необязательно забивать стоп байт, можно указать сколько символов читать
; -1 это длина имени
pPath = PeekS(*m2, n2-1); получаем путь
Debug ""+n1+" "+n2+" "+Hex(n3)+" "+pPath

0

39

newJS написал(а):

вот ещё изврат

Действительно, изврат какой-то.
Особенно классно будет, если "символ от тёти Фени" таки совпадёт с именем файла/папки.
Поэтому для надёжности надо ещё поизвращаться с проверкой в цикле :D
Это из серии "вредных советов в программировании".

0

40

Smitis написал(а):

Особенно классно будет, если "символ от тёти Фени" таки совпадёт с именем файла/папки.
Поэтому для надёжности надо ещё поизвращаться с проверкой в цикле

Хотя о чём это я? :dontknow:
https://learn.microsoft.com/ru-ru/windo … lpathnamea

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

Если не понятна цитата - при использовании GetFullPathName возвращается к тому, с чего начали - к текущей папке.
Но сомневающиеся сами могут написать тест и проверить.

Отредактировано Smitis (23.04.2023 00:05:06)

0

41

Smitis написал(а):

Особенно классно будет, если "символ от тёти Фени" таки совпадёт с именем файла/папки.

и чё?
нам то нужно то что функция в качестве пути вернёт, функция ни чего не делает, добавляет путь и всё
должно работать

Smitis написал(а):

Если не понятна цитата

да меня про потоки смущало сразу, но как то я про них не понял сразу
теперь понятно где засада

0


Вы здесь » PureBasic - форум » OffTop » Программа поиска и выбора констант API