|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|||||||||
Использование функции IsFile01.02.2023, 22:15. Показов 4917. Ответов 42
Последовательно переписываю свою программу с PowerBasic'а на PureBasic, внося необходимые коррективы.
Дошёл до места, где нужно проверить, имеется ли файл с некоторым именем на диске, и если он имеется, тогда его надо удалить. В PowerBasic'е такая операция выполняется в одну строчку кода, а именно вот так: PowerBasic
Как я понял, в PureBasic'е вместо Kill используется DeleteFile, а IsFile так и будет IsFile. Но возник такой вопрос. В PowerBasic'е функция IsFile ожидает строку в качестве аргумента:
А в PureBasic'е та же самая функция почему-то ожидает число:
Допечатав свой пост до этого места, я обнаружил, что для выяснения присутствия файла можно использовать функцию FileSize, ну вот её-то и буду использовать:
1
|
|||||||||
| 01.02.2023, 22:15 | |
|
Ответы с готовыми решениями:
42
решение задачи двумя способами без использования функции и с использованием функции
|
|
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. Всё-таки, хочется, чтобы был один-единственный редактор, и не надо выбирать из огромной кучи. Хочется, чтобы был один-единственный встроенный отладчик, а не надо забивать себе голову выбором из нескольких, да ещё и с проблемой как бы их подключить. Хочется, чтобы просто нажал на кнопку и там всё скомпилировалось, а не надо было тормозить на выборе правильных комбинаций ключей из множества возможных:
![]() Добавлено через 20 минут Добавлено через 20 минут И кстати, с объявлением типов переменных через точку я уже успел сдружиться, хотя, да, сначала было очень непривычно. К тому же, так оно и лаконичнее получается. Добавлено через 7 минут Вот пример с сайта Майкрософт:
Добавлено через 9 минут ![]() Ну как-то же я обходился всё это время ![]() Компьютерная терминология почти везде одинаковая, везде вертится довольно ограниченный набор слов. Это же не художественная литература, где каждый автор стремится к оригинальной высокохудожественной игре словами ![]() Добавлено через 3 минуты Добавлено через 17 минут
0
|
||||||||||||||||
| 05.02.2023, 07:30 | |||
|
На счёт Excel, в AutoIt3 есть библиотека для работы с Excel (ru, en). А регвыр в AutoIt3 поддерживает ссылки на группы нативно. В PureBasic надо самому создавать такой функционал. Справка интерактивней вне зависимости от языка, знание инглиша не делает англ. справку интерактивной и приятной глазу. А то это уже смахивает на фетиш какой-то. Посмотри разницу между 5.73 и 6.00 в истории. Если там исправлены ошибки, но к функциям не добавлены новые параметры, то почему вам нужна именно 6.00? Я понимаю вы бы PureBasic наизусть знали и использовали бы все функции и какая нибудь запятая избавила бы от лишнего теста, но когда новичок, то это выглядит странно. Для начала хотя бы базовый уровень освоить надо, пока ещё не до таких тонкостей, которые сам автор только знает. Для ускоренного изучения набор ссылок, ещё моё
0
|
|||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
||
| 05.02.2023, 15:17 [ТС] | ||
|
AZJIO, я ознакомился с вашими рассуждениями и ссылками.
0
|
||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
||
| 06.02.2023, 16:45 [ТС] | ||
|
Не, ну так не годится. При всём уважении. Немое кино в наше время смотреть ну просто неприятно. Да и что вы там делаете тоже не понятно. В наше суровое время не публика бегает за автором, а, наоборот, автор за публикой ![]() Уж слишком много всевозможных источников информации по любой тематике. Но, с другой стороны, ниша озвученного обучающего видео (на русском языке) по PureBasic, например, на ютубе почти совсем не заполнена. И я даже старательно искал там совсем недавно уроки по этой тематике. Найти удалось только то, что перечислено ниже. Прямые ссылки я нигде стараюсь не давать, ограничусь лишь поисковыми запросами, по которым, при желании, легко нагуглить самостоятельно, чтобы иметь представление о творчестве ваших "конкурентов" ![]() Я всё нижеперечисленное посмотрел и на всякий случай скачал, теперь храню на диске, чтобы гарантировать себя от капризов авторов, которые могут в любой момент сжечь (удалить) свои труды как Гоголь второй том "Мёртвых душ" ![]() ютуб: Pure Basic - feel the pure power! Видео на 24 минуты, выложенное автором ровно 2 года назад. Но там, в общем-то, не урок, а скорее общий экскурс по Pure Basic, решение всевозможных организационных вопросов (как установить, как получить справку и т.п.). ютуб 01-Pure-Basic-Vstuplenie-Znakomstvo-s-IDE-YouTube 9 коротких уроков для начинающих 7-летней давности. И это всё, что мне удалось найти, хотя искал очень старательно. Так что ниша пуста, можете смело занимать ![]() Если надумаете, скиньте мне ссылку. С интересом буду смотреть и может быть даже комментировать. Мои предпочтения: видео - обязательно должно быть озвученное, - желательно шрифт в IDE покрупнее, поскольку я предпочитаю смотреть не с монитора, а с планшета по утрам из-под одеяла ![]() Ну и сами понимаете, миллионных просмотров точно не будет, поскольку бейсики нынче явно не в тренде. Но сотни за большой срок, наверно, посмотрят.
0
|
||
| 06.02.2023, 17:52 | |
|
Power_Basic
А что там показывать? Как кнопки нажимать? Если бы я с 2005 года занимался бы PureBasic и был бы готов обсуждать любые темы на легке без плана, то был бы смысл. А я не сказать что давно, я AutoIt3`ом больше занимался чем PureBasic, у меня в AutoIt3 800 личных файлов в коллекции (примеры, фрагменты, функции, библиотеки, программы), это для публикации в интернет, а так ещё больше. Так что в PureBasic я только ещё учусь и мне нечего выкладывать. Для затравки показал инструменты для вставки фрагментов, автоматическое исправление текста, вызов справки и как это выглядит. Для создания видео слишком много надо, чистую Windows (без личных ярлыков, имён), стандартную установку (с классическими путями), а тут я даже пример из справки не стал открывать, потому что путь будет виден в заголовке, а у PureBasic стандартный путь примеров "C:\ProgramData\PureBasic". Микрофон надо покупать нормальный, у профессионалов хорошая дикция, а многим людям даже свой реальный голос не нравится, он другой от того что ты слышишь. В программировании хорошая "Справка" лучше любого видео. Забыл ещё сказать, в англ справки нет многих примеров, которые есть во французской справке, в русской эти примеры есть.
1
|
|
|
COM‐пропагандист
|
|||
| 06.02.2023, 20:29 | |||
|
У вас нет альтернативы не учень удобной PureBasic IDE. Автоматизации сборки — где? А если надо на сервере собирать проект, на сервер тоже IDE ставить и создавать специальный скрипт который будет эмулировать нажатие F5? Если снять TopMost‐галочку в настройках, тогда исходный код программы будет загораживать окна отладчика. Совершенно неюзабельно. Казалось бы, у языка PureBasic и программы Notepad++ одно ядро, но первым пользоваться неудобно, а второй этих проблем не имеет. Интересно, разработчики PureBasic когда‐нибудь запускали что‐нибудь уровня Визуальной Студию? Даже в Visual Basic 5, вышедшем в далёком 1997 году, никакие окна не перекрывают ни код, ни моих программ.
0
|
|||
|
COM‐пропагандист
|
||
| 06.02.2023, 20:37 | ||
|
Вы не можете просто скопировать пример из MSDN, заменив синтаксис и оставив названия функций, вам также необходимо пройтись по справке PureBasic и проверить каждую функцию, не перепутаны ли там аргументы.
0
|
||
|
6 / 5 / 1
Регистрация: 19.03.2019
Сообщений: 14
|
||
| 06.02.2023, 21:01 | ||
![]() p.s. В моем понимании всегда в любой функции откуда - куда, а не наоборот, иначе это называется через Ж...
0
|
||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|||
| 06.02.2023, 21:11 [ТС] | |||
|
0
|
|||
|
COM‐пропагандист
|
||
| 06.02.2023, 21:28 | ||
|
Но только не функция CopyMemory.
0
|
||
|
6 / 5 / 1
Регистрация: 19.03.2019
Сообщений: 14
|
||
| 06.02.2023, 22:42 | ||
|
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‐пропагандист
|
||
| 06.02.2023, 23:47 | ||
|
А перепутанные source и destination говорят лишь о том, что отдельные части библиотеки функций несогласованы между собой и противоречат друг другу.
0
|
||
|
|
|||||||||||||
| 07.02.2023, 00:33 | |||||||||||||
|
Компилировать можно без IDE. https://www.purebasic.com/docu... piler.html Если вам нужна Сишная функция memcpy, импортируете ее и вызываете в коде.
0
|
|||||||||||||
| 07.02.2023, 01:55 | ||
|
Меню надо будет подредактировать под свои пути, то есть открыть файл "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 темами)
0
|
||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
||
| 07.02.2023, 16:00 [ТС] | ||
|
Сначала-то я, признаться, очень легкомысленно отнёсся к вашим словам. Ну типа, быть такого не может. Обычно же английский язык всегда везде в приоритете как основное средство международного общения. Ну стало быть, по логике, и информации на инглише должно быть по максимуму. Но вот, разбирая код, который вчера опубликовал в соседней ветке locm, Особенности работы с файлами в PureBasic я обратился к английской справке, чтобы выяснить значение функции ReadStringFormat. Примера там нет. А хотелось бы ![]() И тут вспомнил ваши слова. С уверенностью, что в русской справке тоже не окажется примера, всё-таки решил туда заглянуть, как говорится, для успокоения совести. И о чудо! Там действительно есть пример и очень даже информативный. А тут ещё совершенно случайно в закреплённой ветке обнаружил, что это вы сами лично участвуете в русском переводе. Ну тогда не удивительно, что справка вполне актуальная и шагает в ногу с выпуском новых версий PureBasic. Насколько я уже успел заметить, перевод очень качественный. Так что с вашего благословения полностью перехожу на русскую справку. Одним словом, респект вам и уважуха! P.S. А почему же всё-таки французы так дискриминационно отнеслись к английским пользователям? Уж не за столетнюю ли войну они им мстят, не за Жаннну ли д'Арк?
0
|
||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
||
| 07.02.2023, 19:31 [ТС] | ||
0
|
||
|
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
|
|
| 20.02.2023, 17:59 [ТС] | |
|
Всё-таки по сравнению с FreeBasic'ом изучать PureBasic действительно одно сплошное удовольствие. Всего неделя как приступил к изучению и вот уже переписал на нём ту программу, которую до этого написал на PowerBasic'е и о которой рассказал вот здесь:
Использование функции IsFile А ведь FreeBasic перед этим изучал месяца 2, пожалуй. А как на нём то же самое сделать, но так, чтобы так же быстро и легко? Вопрос риторический. Так что окончательный выбор сделан, остаюсь здесь навсегда
0
|
|
| 20.02.2023, 17:59 | |
|
Помогаю со студенческими работами здесь
40
Вычислить x, без использования функции и с использованием функции
Разработать программу по алгоритму с использование рекурсивной функции и без использования рекурсивной функции Ошибка использования функции Условие использования функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мысли в слух. Про "навсегда".
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
Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
|