Форум программистов, компьютерный форум, киберфорум
Pure Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.81/21: Рейтинг темы: голосов - 21, средняя оценка - 4.81
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443

Использование функции IsFile

01.02.2023, 22:15. Показов 4917. Ответов 42

Студворк — интернет-сервис помощи студентам
Последовательно переписываю свою программу с PowerBasic'а на PureBasic, внося необходимые коррективы.

Дошёл до места, где нужно проверить, имеется ли файл с некоторым именем на диске, и если он имеется, тогда его надо удалить.

В PowerBasic'е такая операция выполняется в одну строчку кода, а именно вот так:

PowerBasic
PureBasic
1
  If IsFile ("<Путь/Имя>")  Then Kill ("<Путь/Имя>")
Причём предварительно пытаться открыть этот файл нет необходимости.


Как я понял, в PureBasic'е вместо Kill используется DeleteFile, а IsFile так и будет IsFile.

Но возник такой вопрос. В PowerBasic'е функция IsFile ожидает строку в качестве аргумента:
Purpose
Determine whether or not a file exists.

Syntax
FileExists& = ISFILE(FileName)

А в PureBasic'е та же самая функция почему-то ожидает число:
Syntax
Result = IsFile(#File)

Description
Tests if the given #File number is a valid and correctly initialized file.
Ну то есть получается, чтобы узнать присутствует ли на диске файл с определённым именем, придётся сначала попытаться открыть этот файл и присвоить ему некоторый номер. Но какой тогда практический смысл в этой функции (IsFile), как она используется? В Справке примеров для этой функции нет.

Допечатав свой пост до этого места, я обнаружил, что для выяснения присутствия файла можно использовать функцию FileSize, ну вот её-то и буду использовать:
Syntax
Result.q = FileSize(Filename$)

Description
Returns the size of the specified file. This function can also be used to check if a file or directory exists or not.

Parameters
Filename$ The filename to get the size from.

Return value
Returns the size of the file in bytes, or one of the following values:
-1: File not found.
-2: File is a directory.
Но всё равно не понятно, как можно использовать IsFile? Или это какой-то бесполезный анахронизм, доставшийся от предыдущих версий PureBasic'а?
1
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.02.2023, 22:15
Ответы с готовыми решениями:

Почему os.path.isfile не определяет файл
Есть файл input.zip Из него нужно считать размер файла 123.txt Но os.path.isfile выводит False Также os.path.getsize не видит файл ...

решение задачи двумя способами без использования функции и с использованием функции
Помогите(( Вычислить значение: z = min(a,3b)*min(2a-b,2b) где min(x, y) – минимальное из чисел x и y. Задачу...

Вычисление функции y(x)=|5*x-4| без использования функции модуля abs
2) Составить программу вычисления функции y(x)=|5*x-4| без использования функции модуля abs

42
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
04.02.2023, 17:55  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Замабувараев Посмотреть сообщение
Что вы хотите от языка в котором окна отладчика загораживают код, модули — это на самом деле пространства имён и доступ к полю структуры идёт через «\» (а не через точку).
Ну если только этим ограничиваются все недостатки этого ЯП, ну тогда он просто идеален

Вот давайте немного отклонюсь от темы, чтобы дать конкретный пример.
Есть у меня программа на VBA Excel, написанная лет эдак 10 тому назад. Эта программа ежедневно автостартует и загружает в таблицы несколько цифр с двух сайтов в Интернете.
Главное меню Excel > Данные > Из Интернета, ну и так далее.
Потом там по этим данным строятся графики, но это уже другая история.
И вот так оно всё это время относительно исправно работало за тем редким исключением, когда что-то приходилось немного подправить вручную. Но вот пару недель назад на одном из этих сайтов случилась кардинальная смена дизайна и мне вместо нормальной загрузки данных стали выдавать кучу месседж-боксов с текстом приблизительно такого содержания: "Не могу выполнить сценарий на этой странице. Продолжить? (Да/Нет)".
Пошёл на тот сайт разбираться. Сначала надеялся просто изменить настройки запроса. Ничего из этого не получилось. Как-то они там хитро всё устроили, что в Excel именно эти нужные мне данные импортировать не получается. Ну ладно, думаю, пойду, как говорится, другим путём

План был такой:
1. Функцией URLDownloadToFile скачиваю на диск целиком весь файл .html с сайта.
3. Загружаю весь этот файл в большую текстовую строку. Я знаю, The trick такой подход не одобряет, но меня он пока ещё ни разу не подводил
2. С помощью регулярных выражений отыскиваю в этой текстовой строке нужные цифры и копирую их в таблицы.

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

Для выполнения этого плана сначала думал обойтись силами самого VBA. Когда-то я с ним очень неплохо дружил. Но сейчас обнаружил, что с тех пор многое подзабылось. Скрипит мой VBA как несмазанная ржавая телега
А главный затык именно в регулярных выражениях. Погуглил. Короче, там надо создавать объект RegExp, ранняя привязка, поздняя привязка... А мне хочется поскорее из этой аварийной ситуации вырулить, короче не до теорий тут

А какой у меня сейчас самый любимый ЯП? Ну разумеется PowerBasic. Как говорится, что знаем, то и любим
И ведь как раз совсем недавно в соседней ветке про DLL у нас речь уже заходила. Ну вот, думаю, и потренируюсь заодно.

Быстренько набросал нужную DLL, пытаюсь вставить её в VBA. Ну не работает, хоть ты тресни. Потом сообразил в чём дело. Снова та же самая история: DLL (x32), а VBA (x64). Тупик, печаль

Ну хорошо, думаю. Не зря же я последние пару месяцев прозанимался консольным FreeBasic'ом. А там как раз имеется x64, к тому же никакая графика для этой задачи не требуется, да и с файлами я в том ЯП уже научился работать вполне сносно. Но снова всё упёрлось в регулярные выражения. Таких встроенных функций нет. Ну и по каким внешним библиотекам мне их искать? А хотелось-то именно поскорее.

Ну и поступил (цитируя великого сатирика) дёшево и сердито

Короче говоря, теперь у меня дело обстоит вот так:
Excel стартует по расписанию, автоматом запускает ексешник PowerBasic'а (Shell <имя_файла>). Тот делает всю вышеописанную работу и записывает нужные цифры в файл (Result.txt).
Ну а потом я уже в самом Excel'е нажимаю на кнопку возле одной из таблиц, вызывается подпрограмма, которая считывает данные из упомянутого файла и разбрасывает их по таблицам. Костыли? Ну да, костыли. Но меня устраивает.
Ну я не профессионал, я любитель. Мне не надо нести это заказчику или что-то в таком роде. Меня самого устраивает, ну вот и чудненько.
Так что хочется именно простоты. Чтобы меня, образно выражаясь, за ручку водили. Ну вот и решил переключиться на PureBasic. Всё-таки, хочется, чтобы был один-единственный редактор, и не надо выбирать из огромной кучи. Хочется, чтобы был один-единственный встроенный отладчик, а не надо забивать себе голову выбором из нескольких, да ещё и с проблемой как бы их подключить.
Хочется, чтобы просто нажал на кнопку и там всё скомпилировалось, а не надо было тормозить на выборе правильных комбинаций ключей из множества возможных:
-s gui
-g -exx -s gui
-s console
-g -exx -s console
-s gui -dll -export
-lib
-s gui
-g -exx -s gui
-s console
-g -exx -s console
-s gui -dll -export
-s gui -dll -export -e
А главное, что маловато в FreeBasic'е встроенных функций. А вот внешних библиотек великое множество, ну и поди разберись, в какой чего искать

Добавлено через 20 минут
Цитата Сообщение от Замабувараев Посмотреть сообщение
Цитата Сообщение от Power_Basic Посмотреть сообщение
в сложной программе всегда открыто много окон и в них легко запутаться
Тогда ваша программа будет работать неправильно. Даже если gadget существует — это вам не скажет ничего, когда надо получить текст. Вам же нужен будет конкретный gadget, а не любой существующий. Это же ненормально, когда вместо gadget с фамилией пользователя вы возьмёте gadget с именем пользователя, и функция IsWindow на оба этих gadget вернёт истину.
Насколько я успел заметить, гаджетами в PureBasic'е называют элементы управления (они же контролы в других ЯП), ну а окна, как я понимаю, это Формы (в терминологии Визуального Бейсика), на которых располагаются эти самые контролы. Следовательно, функция IsWindow вроде бы должна относиться именно к окнам (Формам), а не к контролам. Или это не так?

Добавлено через 20 минут
Цитата Сообщение от locm Посмотреть сообщение
Причем здесь язык? Окна отладчика относятся к IDE, а не ЯП.
Для других ЯП разработчики вообще не предоставили IDE со отладчиком...
Вот это точно! К тому же почти все более или менее современные многочисленные IDE для FreeBasic'а либо совсем без справочной системы, либо с каким-нибудь жалким огрызком. Каждый из разработчиков действует по принципу: "Я же бесплатно работаю, ну вот и пусть сами разбираются, что к чему. Я же неоценённый гений, мне надо постоянно что-то разрабатывать, чтобы доказать, что я круче всех остальных. До справки ли мне в такой ситуации, ну сами-то подумайте".

Цитата Сообщение от locm Посмотреть сообщение
Цитата Сообщение от Замабувараев Посмотреть сообщение
доступ к полю структуры идёт через «\» (а не через точку).
Это особенности синтаксиса. Точка занята под объявление для указания типа.
Ну вот, теперь, когда мне стала известна причина такого немного нестандартного подхода, я это очень хорошо запомню.

И кстати, с объявлением типов переменных через точку я уже успел сдружиться, хотя, да, сначала было очень непривычно. К тому же, так оно и лаконичнее получается.

Добавлено через 7 минут
Цитата Сообщение от AZJIO Посмотреть сообщение
Цитата Сообщение от Power_Basic Посмотреть сообщение
Kill
да тут конечно понятно, но лично я не понимаю что такое убить файл, это понятно только в разговоре двух компьютерщиков, которые договорились о понятиях, то есть у них понятие "убить файл" означает понятное для них действие. Возможно удалить. А в программировании под этим можно подразумевать что угодно (отказаться от дескриптора, закрыть дескриптор, удалить файл минуя корзину, удалить в корзину, удалить, даже если файл открыт другим процессом, удалить данные но не удалять файл).
Ну это же стандартная функция из Визуального Бейсика, а уж с ним-то знакомы почти все более или менее возрастные программисты.
Вот пример с сайта Майкрософт:

Visual Basic
1
2
3
4
5
' Assume TESTFILE is a file containing some data.
Kill("TestFile")   ' Delete file.
 
' Delete all *.TXT files in current directory.
Kill("*.TXT")
Добавлено через 3 минуты
Цитата Сообщение от AZJIO Посмотреть сообщение
Цитата Сообщение от Power_Basic Посмотреть сообщение
древней версии
нет, справка предпоследней версии
У меня версия 6.00. Это справка для версии 5.73?

Добавлено через 9 минут
Цитата Сообщение от AZJIO Посмотреть сообщение
На счёт справки, скачай мою модификацию перевода
Спасибо, но мне это совсем не нужно. Во-первых, я с инглишем дружу по жизни, а во-вторых, русской Справки по моему любимому PowerBasic'у вообще не существует в природе, поскольку это закрытое сообщество вроде ордена Тамплиеров
Ну как-то же я обходился всё это время
Компьютерная терминология почти везде одинаковая, везде вертится довольно ограниченный набор слов. Это же не художественная литература, где каждый автор стремится к оригинальной высокохудожественной игре словами

Добавлено через 3 минуты
Цитата Сообщение от AZJIO Посмотреть сообщение
FreeFile это тоже что #PB_Any, только эта константа используется для всех типов идентификаторов в зависимости внутри какой функции она используется, это может быть пункт меню, гаджет, окно и т.д.
Спасибо за уточнение. Мне полезна такая информация.

Добавлено через 17 минут
Цитата Сообщение от Power_Basic Посмотреть сообщение
К тому же почти все более или менее современные многочисленные IDE для FreeBasic'а либо совсем без справочной системы, либо с каким-нибудь жалким огрызком. Каждый из разработчиков действует по принципу: "Я же бесплатно работаю, ну вот и пусть сами разбираются, что к чему. Я же неоценённый гений, мне надо постоянно что-то разрабатывать, чтобы доказать, что я круче всех остальных. До справки ли мне в такой ситуации, ну сами-то подумайте".
Единственное исключение из этого общего правила это Станислав Будинов. У него, да, на первом месте реальная забота о пользователе.
0
63 / 61 / 3
Регистрация: 06.11.2010
Сообщений: 186
Записей в блоге: 1
05.02.2023, 07:30
Цитата Сообщение от Замабувараев Посмотреть сообщение
Что вы хотите от языка в котором окна отладчика загораживают код
Окно отладчика настраиваемое и запоминающее позицию, то есть имитировать нижнюю консоль не составляет труда. И наоборот, те у кого отладка в консоли не могут имитировать режим PureBasic.

На счёт Excel, в AutoIt3 есть библиотека для работы с Excel (ru, en). А регвыр в AutoIt3 поддерживает ссылки на группы нативно. В PureBasic надо самому создавать такой функционал.

Справка интерактивней вне зависимости от языка, знание инглиша не делает англ. справку интерактивной и приятной глазу. А то это уже смахивает на фетиш какой-то.

Посмотри разницу между 5.73 и 6.00 в истории. Если там исправлены ошибки, но к функциям не добавлены новые параметры, то почему вам нужна именно 6.00? Я понимаю вы бы PureBasic наизусть знали и использовали бы все функции и какая нибудь запятая избавила бы от лишнего теста, но когда новичок, то это выглядит странно. Для начала хотя бы базовый уровень освоить надо, пока ещё не до таких тонкостей, которые сам автор только знает.

Цитата Сообщение от Power_Basic Посмотреть сообщение
Компьютерная терминология почти везде одинаковая
Спор ради спора. Несмотря на то что я знаю знакомые слова и могу понять смысл, среди них встречаются незнакомые слова, которые сводят на нет знание других слов, если в итоге полного осознания нет. Читать англ. текст тяжело, его также надо постоянно выворачивать наизнанку. Даже если человек перевёл справку через гугл или сам, то я вижу что русский человек так никогда не скажет. Читая свой же перевод на AutoIt3 я время от времени подзабыв, читал как будто это просто текст и понимал что наши так не говорят, поэтому я переделывал такие на мой взгляд кривые фразы. Также когда я пользуюсь SpiderBasic, да и раньше в AutoIt3, то замечал что одни и те же фразы я выделяю и перевожу, так какой смысл их переводить в QTranslate по 10 раз, если можно 1 раз перевести и избавить 400 человек от 10-кратного перевода, то есть 4000 раз переводить зачем, если можно 1 раз перевести. Это обезьянья работа или мартышкин труд. Поэтому всё сделано чтобы не мучится и если кто-то выбирает мучения, то это фетиш, использование англ справки не делает вас выше, разве что вы считаете что это будет так. Когда вы приводите англ. текст я его даже не читаю. Если вам так хочется то переводите его на русский, если в нём будет ошибка я перепроверю, а если он будет похож на правду, то мне нет необходимости вам не доверять, так как вы с этого плюшек иметь не будете.

Для ускоренного изучения набор ссылок, ещё моё
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
05.02.2023, 15:17  [ТС]
AZJIO, я ознакомился с вашими рассуждениями и ссылками.

Цитата Сообщение от AZJIO Посмотреть сообщение
Для ускоренного изучения
Ну уж нет. Спешка в мои планы точно не входит
0
63 / 61 / 3
Регистрация: 06.11.2010
Сообщений: 186
Записей в блоге: 1
06.02.2023, 09:46
Power_Basic
Посмотри видосики, может что-то из этого тебе захочется. Качай по ссылке в upload.ee, так как на яндексе расплывчато показывает.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
06.02.2023, 16:45  [ТС]
Цитата Сообщение от AZJIO Посмотреть сообщение
Power_Basic
Посмотри видосики, может что-то из этого тебе захочется. Качай по ссылке в upload.ee, так как на яндексе расплывчато показывает.
Скачал и посмотрел самое начало PureBasic1.mp4.
Не, ну так не годится. При всём уважении.
Немое кино в наше время смотреть ну просто неприятно. Да и что вы там делаете тоже не понятно.
В наше суровое время не публика бегает за автором, а, наоборот, автор за публикой
Уж слишком много всевозможных источников информации по любой тематике.
Но, с другой стороны, ниша озвученного обучающего видео (на русском языке) по PureBasic, например, на ютубе почти совсем не заполнена. И я даже старательно искал там совсем недавно уроки по этой тематике. Найти удалось только то, что перечислено ниже. Прямые ссылки я нигде стараюсь не давать, ограничусь лишь поисковыми запросами, по которым, при желании, легко нагуглить самостоятельно, чтобы иметь представление о творчестве ваших "конкурентов"

Я всё нижеперечисленное посмотрел и на всякий случай скачал, теперь храню на диске, чтобы гарантировать себя от капризов авторов, которые могут в любой момент сжечь (удалить) свои труды как Гоголь второй том "Мёртвых душ"

ютуб: Pure Basic - feel the pure power!
Видео на 24 минуты, выложенное автором ровно 2 года назад.
Но там, в общем-то, не урок, а скорее общий экскурс по Pure Basic, решение всевозможных организационных вопросов (как установить, как получить справку и т.п.).

ютуб 01-Pure-Basic-Vstuplenie-Znakomstvo-s-IDE-YouTube
9 коротких уроков для начинающих 7-летней давности.

И это всё, что мне удалось найти, хотя искал очень старательно. Так что ниша пуста, можете смело занимать
Если надумаете, скиньте мне ссылку. С интересом буду смотреть и может быть даже комментировать.

Мои предпочтения:
видео
- обязательно должно быть озвученное,
- желательно шрифт в IDE покрупнее, поскольку я предпочитаю смотреть не с монитора, а с планшета по утрам из-под одеяла

Ну и сами понимаете, миллионных просмотров точно не будет, поскольку бейсики нынче явно не в тренде. Но сотни за большой срок, наверно, посмотрят.
0
63 / 61 / 3
Регистрация: 06.11.2010
Сообщений: 186
Записей в блоге: 1
06.02.2023, 17:52
Power_Basic
А что там показывать? Как кнопки нажимать? Если бы я с 2005 года занимался бы PureBasic и был бы готов обсуждать любые темы на легке без плана, то был бы смысл. А я не сказать что давно, я AutoIt3`ом больше занимался чем PureBasic, у меня в AutoIt3 800 личных файлов в коллекции (примеры, фрагменты, функции, библиотеки, программы), это для публикации в интернет, а так ещё больше. Так что в PureBasic я только ещё учусь и мне нечего выкладывать. Для затравки показал инструменты для вставки фрагментов, автоматическое исправление текста, вызов справки и как это выглядит.
Для создания видео слишком много надо, чистую Windows (без личных ярлыков, имён), стандартную установку (с классическими путями), а тут я даже пример из справки не стал открывать, потому что путь будет виден в заголовке, а у PureBasic стандартный путь примеров "C:\ProgramData\PureBasic". Микрофон надо покупать нормальный, у профессионалов хорошая дикция, а многим людям даже свой реальный голос не нравится, он другой от того что ты слышишь. В программировании хорошая "Справка" лучше любого видео.
Забыл ещё сказать, в англ справки нет многих примеров, которые есть во французской справке, в русской эти примеры есть.
1
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
06.02.2023, 20:29
Цитата Сообщение от locm Посмотреть сообщение
Причем здесь язык? Окна отладчика относятся к IDE, а не ЯП.
Так можно было бы говорить, если бы язык был отделён от IDE. Но это не так.
У вас нет альтернативы не учень удобной PureBasic IDE.
Автоматизации сборки — где? А если надо на сервере собирать проект, на сервер тоже IDE ставить и создавать специальный скрипт который будет эмулировать нажатие F5?
Цитата Сообщение от AZJIO Посмотреть сообщение
Окно отладчика настраиваемое и запоминающее позицию
Я когда Alt+TAB делаю, эти окна загораживают всё, потому что находятся в режиме TopMost.
Если снять TopMost‐галочку в настройках, тогда исходный код программы будет загораживать окна отладчика.
Совершенно неюзабельно.
Казалось бы, у языка PureBasic и программы Notepad++ одно ядро, но первым пользоваться неудобно, а второй этих проблем не имеет. Интересно, разработчики PureBasic когда‐нибудь запускали что‐нибудь уровня Визуальной Студию? Даже в Visual Basic 5, вышедшем в далёком 1997 году, никакие окна не перекрывают ни код, ни моих программ.
Миниатюры
Использование функции IsFile  
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
06.02.2023, 20:37
Цитата Сообщение от Power_Basic Посмотреть сообщение
Ну если только этим ограничиваются все недостатки этого ЯП, ну тогда он просто идеален
Нет, надо быть внимательным к каждой функции. Например, вопреки общепринятому порядку аргументов функции CopyMemory (она же memcpy), которые указываются как «назначение, источник, количество» в PureBasic «назначение» и «источник» перепутаны местами. А сколько ещё таких подводных камней существует?
Вы не можете просто скопировать пример из MSDN, заменив синтаксис и оставив названия функций, вам также необходимо пройтись по справке PureBasic и проверить каждую функцию, не перепутаны ли там аргументы.
0
6 / 5 / 1
Регистрация: 19.03.2019
Сообщений: 14
06.02.2023, 21:01
Цитата Сообщение от Замабувараев Посмотреть сообщение
Например, вопреки общепринятому порядку аргументов функции
У кого этот порядок, у вас лично, в том же паскале так же move откуда и куда, почему PB должен СИ копировать, да ни фига

p.s. В моем понимании всегда в любой функции откуда - куда, а не наоборот, иначе это называется через Ж...
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
06.02.2023, 21:11  [ТС]
Цитата Сообщение от AZJIO Посмотреть сообщение
Забыл ещё сказать, в англ справки нет многих примеров, которые есть во французской справке, в русской эти примеры есть.
Это полезная информация. Спасибо, буду иметь в виду.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Нет, надо быть внимательным к каждой функции. Например, вопреки общепринятому порядку аргументов функции CopyMemory (она же memcpy), которые указываются как «назначение, источник, количество» в PureBasic «назначение» и «источник» перепутаны местами. А сколько ещё таких подводных камней существует?
Вы не можете просто скопировать пример из MSDN, заменив синтаксис и оставив названия функций, вам также необходимо пройтись по справке PureBasic и проверить каждую функцию, не перепутаны ли там аргументы.
Ну, наверно, со временем привыкну. Зато здесь всё в одном, идеально для любителя, который программирует "по-серьёзному" лишь время от времени.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
06.02.2023, 21:28
Цитата Сообщение от caphal Посмотреть сообщение
p.s. В моем понимании всегда в любой функции откуда - куда, а не наоборот, иначе это называется через Ж...
На первом месте всегда находится тот, над кем совершают действие. Все функции PureBasic следуют этому логике.
Но только не функция CopyMemory.
0
6 / 5 / 1
Регистрация: 19.03.2019
Сообщений: 14
06.02.2023, 22:42
Цитата Сообщение от Замабувараев Посмотреть сообщение
Но только не функция CopyMemory.
Вы прикалываетесь что ли?
https://www.purebasic.com/docu... emory.html
https://www.purebasic.com/docu... emory.html
https://www.purebasic.com/docu... yfile.html

Примеры из других ЯП:
https://learn.microsoft.com/en... tem-string)
https://www.freepascal.org/doc... /move.html
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
06.02.2023, 23:47
Цитата Сообщение от caphal Посмотреть сообщение
Вы прикалываетесь что ли?
Возьмите любую функцию PureBasic которая что‐то делает над каким‐то объектом, и везде на первом месте будет параметр с решёткой.
А перепутанные source и destination говорят лишь о том, что отдельные части библиотеки функций несогласованы между собой и противоречат друг другу.
0
Эксперт по электронике
6855 / 3279 / 339
Регистрация: 28.10.2011
Сообщений: 12,816
Записей в блоге: 7
07.02.2023, 00:33
Цитата Сообщение от Замабувараев Посмотреть сообщение
Так можно было бы говорить, если бы язык был отделён от IDE. Но это не так.
Почему же?
Компилировать можно без IDE. https://www.purebasic.com/docu... piler.html

Цитата Сообщение от Замабувараев Посмотреть сообщение
У вас нет альтернативы
Прикрутить компилятор можно к любой IDE или использовать из командной строки.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Автоматизации сборки — где?
Мне это не нужно. Большинству тоже.

Цитата Сообщение от Замабувараев Посмотреть сообщение
А если надо на сервере собирать проект
Если сервер поддерживает запуск бинарных исполняемых файлов, копируете на него компилятор и библиотеки и компилируете.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Например, вопреки общепринятому порядку аргументов функции CopyMemory
Кто установил порядок и где о нем можно прочитать?

Цитата Сообщение от Замабувараев Посмотреть сообщение
А сколько ещё таких подводных камней существует?
Нет никаких подводных камней. Справку нужно читать. В ней все написано. При клике по функции, в строке состояния IDE перечислены имена аргументов и их последовательность.

Цитата Сообщение от Замабувараев Посмотреть сообщение
Вы не можете просто скопировать пример из MSDN
А причем здесь MSDN? В PB функция CopyMemory библиотечная, а не WinAPI или из Сишного рантайма винды.

Если вам нужна Сишная функция memcpy, импортируете ее и вызываете в коде.
PureBasic
1
2
3
4
5
6
7
8
ImportC ""
  memcpy(*dst, *src, size)
EndImport
 
x=0
y=100
memcpy(@x, @y, SizeOf(x))
Debug x
0
63 / 61 / 3
Регистрация: 06.11.2010
Сообщений: 186
Записей в блоге: 1
07.02.2023, 01:55
Цитата Сообщение от Замабувараев Посмотреть сообщение
если бы язык был отделён от IDE
Кстати, я выкладываю свою сборку AkelPad, в котором по F8 есть меню для некоторых типов файлов .
Меню надо будет подредактировать под свои пути, то есть открыть файл "AkelPad\AkelFiles\Plugs\Scripts\Menu_by _type.js", найти там "PureBasic" и поменять переменную var sPBPath = "C:\\D\\SpiderBasic";

Там же и для других языков, которыми я пользовался или пользуюсь.
Подсветка видна на скриншоте. Используйте конт.меню на вкладке чтобы кликнуть "Открыть кодер", чтобы изменить цвета (начиная с раздела QuotesRE в строке 102). AkelPad поддерживает подсветку файла кодер и подсвечивает RGB-цвета своим же цветом. И в комментариях указано что эти рег.выр подсвечивают.
В этом же файле автозавершение, раздел Blocks в строке 421 и до конца. Мне нравится автозавершение в AkelPad, он поддерживает конструкции кода (фрагменты, они же снипсеты), поддерживает отступы, поддерживает вариации, например чтобы вставить конструкцию If...EndIf вы можете набирать либо "If" либо "если". То есть вы можете пробежаться по часто используемым фрагментам и использовать для них сленг. Например введите "ms" и увидите 4 варианта вставки MessageRequester.

На счёт предложенного вами Notepad++ отказался от него по причинам рекламы плохого образа жизни, я это написал и на официальном форуме и тут, причём будучи ранее активным его пользователем. Он также легко настраивается, там есть плаг NppExec для запуска с ключами и вывода данных в консоль (с правилами подсветки и обрезки ненужной инфы).

Вот ссылки по теме PureBasic в Notepad++ : Подсветка, Автозавершение, functionList.xml, моя тема подсветки (архив с 4 темами)
Миниатюры
Использование функции IsFile  
0
63 / 61 / 3
Регистрация: 06.11.2010
Сообщений: 186
Записей в блоге: 1
07.02.2023, 02:00
JavaScript
1
var sPBPath = "C:\\...\\PureBasic\\PureBasic 6.00 x64\\";
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
07.02.2023, 16:00  [ТС]
Цитата Сообщение от AZJIO Посмотреть сообщение
Забыл ещё сказать, в англ справке нет многих примеров, которые есть во французской справке, в русской эти примеры есть.
Огромное спасибо!!!

Сначала-то я, признаться, очень легкомысленно отнёсся к вашим словам. Ну типа, быть такого не может. Обычно же английский язык всегда везде в приоритете как основное средство международного общения. Ну стало быть, по логике, и информации на инглише должно быть по максимуму. Но вот, разбирая код, который вчера опубликовал в соседней ветке locm,
Особенности работы с файлами в PureBasic
я обратился к английской справке, чтобы выяснить значение функции ReadStringFormat. Примера там нет. А хотелось бы
И тут вспомнил ваши слова. С уверенностью, что в русской справке тоже не окажется примера, всё-таки решил туда заглянуть, как говорится, для успокоения совести. И о чудо! Там действительно есть пример и очень даже информативный.
А тут ещё совершенно случайно в закреплённой ветке обнаружил, что это вы сами лично участвуете в русском переводе. Ну тогда не удивительно, что справка вполне актуальная и шагает в ногу с выпуском новых версий PureBasic. Насколько я уже успел заметить, перевод очень качественный. Так что с вашего благословения полностью перехожу на русскую справку. Одним словом, респект вам и уважуха!

P.S. А почему же всё-таки французы так дискриминационно отнеслись к английским пользователям? Уж не за столетнюю ли войну они им мстят, не за Жаннну ли д'Арк?
0
Эксперт по электронике
6855 / 3279 / 339
Регистрация: 28.10.2011
Сообщений: 12,816
Записей в блоге: 7
07.02.2023, 16:34
Цитата Сообщение от Power_Basic Посмотреть сообщение
А почему же всё-таки французы так дискриминационно отнеслись к английским пользователям?
Разработчик PureBasic из франции. Для него это родной язык, в отличии от английского.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
07.02.2023, 19:31  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Разработчик PureBasic из франции. Для него это родной язык, в отличии от английского.
Ну вот я и говорю, что справку англичанам "по дружбе" урезанную предоставили. Уж на английский-то, наверняка, сами разработчики из компании Fantaisie Software переводили. Да это, в принципе, не секрет, что многие французы англичан недолюбливают. Если с ними у нас в России на английском попытаться заговорить, сразу выражение лица меняется и отворачиваются, хотя до этого вроде бы доброжелательно улыбались. Разумеется, не все, но встречаются такие. Ну просто у меня был такой опыт один раз по работе. С одним французом очень долго общались на инглише, очень хорошие взаимоотношения с ним сложились, он вроде администратора был, потом ещё несколько французов подъехало, радушно так улыбаются, их начальник "бонжур" мне говорит. Я на английском их всех поприветствовал, ну а он как-то сразу резко покислел, от меня отвернулся и стал разговаривать с тем первым французом. А тот (первый) в момент резкой перемены настроения своего начальника успел взглянуть на меня каким-то извиняющимся взглядом. Причём, я уверен, что каждый из той группы прекрасно по-английски говорит, когда это по необходимости, ну а им лично я по работе был не нужен, им и того администратора было вполне достаточно. Я уверен, ответь я им по-французски, да хотя бы тот же самый "бонжур", отношение было бы совсем другое, вплоть до взаимных объятий
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
20.02.2023, 17:59  [ТС]
Всё-таки по сравнению с FreeBasic'ом изучать PureBasic действительно одно сплошное удовольствие. Всего неделя как приступил к изучению и вот уже переписал на нём ту программу, которую до этого написал на PowerBasic'е и о которой рассказал вот здесь:
Использование функции IsFile

А ведь FreeBasic перед этим изучал месяца 2, пожалуй. А как на нём то же самое сделать, но так, чтобы так же быстро и легко? Вопрос риторический. Так что окончательный выбор сделан, остаюсь здесь навсегда
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
20.02.2023, 17:59
Помогаю со студенческими работами здесь

Вычислить x, без использования функции и с использованием функции
Вычислить x, без использования функции и с использованием функции: x=((sin2-cos3/2+3)+(sin1-cos5/1+5)+(sin7-cos4/7+4))

Как можно нарисовать график функции с разрывом без использования точек при выводе и без функции scatter()
Подскажите, пожалуйста, как можно нарисовать график функции с разрывом в Матлабе без использования точек при выводе и без функции...

Разработать программу по алгоритму с использование рекурсивной функции и без использования рекурсивной функции
Разработать программу по алгоритму с использование рекурсивной функции и без использования рекурсивной функции.

Ошибка использования функции
Подскажите что не так делаю.Выводит в результате 0. public int funk(int massF,int massG) { ...

Условие использования функции
Здравствуйте! Имею код: def showrecords(): # Records recordstable = Toplevel(root) ...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru