Re: Серийный номер USB | |
---|---|
akvvohinc Сообщений: 3916 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:Не могу пробиться через твои кавычки. ![]() Но я бы так написал то, что ты описал выше как Q-строка, изображается в фоксовом окне как 0haabbcc:
Аналогично выполняется и обратное преобразование Q -> C;
Ну, и наконец, оба этих преобразования можно выполнить явно:
Исправлено 2 раз(а). Последнее : akvvohinc, 14.03.23 02:10 ![]() |
Re: Серийный номер USB | |
---|---|
ABB Сообщений: 131 Откуда: Санкт-Петербург Дата регистрации: 21.10.2006 |
После нескольких итераций ChatGPT предложил следующее решение:
![]() |
Re: Серийный номер USB | |
---|---|
of63 Сообщений: 24232 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
() какой-то человеческий текст... с комментами, отступами...
()() он работает? Только под виндой... WMI... Доб. убавил зеленки, непонятно Исправлено 2 раз(а). Последнее : of63, 17.03.23 22:06 ![]() |
Re: Серийный номер USB | |
---|---|
akvvohinc Сообщений: 3916 Откуда: Москва Дата регистрации: 11.11.2008 |
Раз это работает, значит, без человека не обошлось. ![]() ![]() |
Re: Серийный номер USB | |
---|---|
ABB Сообщений: 131 Откуда: Санкт-Петербург Дата регистрации: 21.10.2006 |
Работает ![]() Вот мой диалог с ботом. Обратите внимание на временные точки. Тормозил я - были другие дела. Я, [14.03.2023 11:37] получить серийный номер usb drive используя язык visual foxpro ChatGPT Bot, [14.03.2023 11:37] Для получения серийного номера USB-накопителя в Visual FoxPro можно использовать функцию API GetVolumeInformation. Вот пример кода, который генерирует сообщение в диалоговом окне с серийным номером выбранного USB-накопителя: Обратите внимание: данное решение может не работать на новых версиях ОС Windows из-за ограничений доступа к функциям API. Я, [14.03.2023 20:40] код nDrive = ASC(UPPER(GETFILE("Select your USB-Drive from the file dialog...", "", "*.*/n"))) неверен ChatGPT Bot, [14.03.2023 20:41] Да, Вы правы, код nDrive = ASC(UPPER(GETFILE("Select your USB-Drive from the file dialog...", "", "*.*/n"))) некорректен. Я внес ошибку. Вместо него можно использовать функцию API GetLogicalDrives, которая возвращает информацию о всех доступных дисковых устройствах, включая USB-накопители. Этот код сначала использует функцию GetLogicalDrives для получения битовой маски всех доступных дисковых устройств. Затем он проходит по всем буквам дисков (от A до Z) и проверяет их соответствие маске доступных дисков. Если диск является USB-накопителем, функция GetVolumeInformation запрашивает его серийный номер и выводит его в сообщении. Я, [14.03.2023 20:51] оператор F GetDriveType(cDriveLetter) = "DRIVE_REMOVABLE" неверен ChatGPT Bot, [14.03.2023 20:51] Да, вы правы. В операторе `IF GetDriveType(cDriveLetter) = "DRIVE_REMOVABLE"` неправильно установлено условие проверки. В стандартной библиотеке Visual FoxPro нет функции GetDriveType, и мы использовали функцию API GetDriveTypeA из библиотеки kernel32.dll для получения типа дискового устройства. Исправленный код с правильной проверкой типа дискового устройства выглядит так: Теперь, если тип дискового устройства соответствует значению DRIVE_REMOVABLE, функция продолжает запрашивать информацию о диске и выводит его серийный номер. Я, [14.03.2023 20:57] функция GetDriveType(cDriveLetter) не видит сменного устройства ChatGPT Bot, [14.03.2023 20:58] Да, Вы правы. Функция GetDriveType из библиотеки kernel32.dll не всегда может правильно определять тип дискового устройства. Она может ошибочно считать, что съемный диск является фиксированным, если диск не содержит носитель, или если на диск нельзя записывать (например, если защита записи включена). Вместо функции GetDriveType можно использовать функцию WMI (Windows Management Instrumentation), чтобы получить более точную информацию о дисковых устройствах, включая тип и съемность. Вот пример кода, который использует функцию WMI для получения списка всех съемных дисков и выводит их серийные номера: Этот код использует функцию ExecQuery для запроса списка всех USB-дисков. Затем он перебирает каждый диск и ассоциированные с ним устройства, получает их серийные номера и выводит их в сообщении. Обратите внимание: для использования функции WMI необходимо иметь соответствующие права доступа на компьютере. Я, [15.03.2023 12:49] операто oItems = oDrive.AssociatedMedia выдает ошибку ole error code 0x80020006: unknown name ChatGPT Bot, [15.03.2023 12:50] Извините за путаницу. В коде я ошибочно использовал свойство `AssociatedMedia`, которого на самом деле не существует в классе Win32_DiskDrive. Вместо этого мы должны использовать класс Win32_DiskDriveToDiskPartition, чтобы получить информацию о дисковых разделах на диске, и класс Win32_LogicalDiskToPartition, чтобы получить информацию о логических дисках, связанных с этими разделами. Вот исправленный код, который использует правильные классы для получения списка USB-накопителей и выводит их серийные номера: В этом коде мы использовали связывающие запросы для получения информации о дисках, разделах и логических дисках. Затем мы фильтруем результаты, чтобы найти только съемные диски, и выводим их серийные номера. ![]() |
Re: Серийный номер USB | |
---|---|
akvvohinc Сообщений: 3916 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:Я. - Бот, сколько будет дважды два? Bot. - Четыреста сорок четыре. (Обратите внимание - на новых версиях ОС Windows иногда бывает 445) Я. - Ответ 444 неверен. Bot. - Да, я ошибся. Использовал не ту библиотеку, надо было другую. А теперь? Сорок четыре. Я. - Ответ 44 неверен. Bot. - Извините за путаницу. У Фокса нет функции, которую я ошибочно применил. Может, четыре? Я. - Лайк, лайк, лайк... ![]() |
Re: Серийный номер USB | |
---|---|
ABB Сообщений: 131 Откуда: Санкт-Петербург Дата регистрации: 21.10.2006 |
Типичная реакция избегания ![]() Реакция избегания или избегающее поведение (англ. Escape response) — род оборонительных реакций, возникающих в ответ на сигнал-предвестник негативно окрашенного эмоционального раздражения, либо действия, направленные на предотвращение такого раздражения. Различают активные и пассивные реакции избегания. ![]() |
Re: Серийный номер USB | |
---|---|
akvvohinc Сообщений: 3916 Откуда: Москва Дата регистрации: 11.11.2008 |
В журнале "Наука и жизнь" где-то в середине 70-х, когда я ещё учился в школе, была опубликована статья из книги Мартина Гарднера "Математические досуги", которая называлась "Самообучающая машина из спичечных коробков".
Там "компьютер", который представлял собой спичечные коробки и разноцветные бусинки, примерно так же, как ваш Бот, обучался какой-то несложной игре. Если "компьютер" побеждал, его поощряли - оставляли ему его бусинки, если проигрывал - забирали. И в конце концов у него оставались только те бусинки, которые всегда приводили его к победе. Ваш диалог с ботом странным образом воскресил в моей памяти те события - не так уж и много изменилось в этой области за последние почти 50 лет. ![]() PS Кому интересны детали самообучения того "компьютера", может скачать эту и другие книги Гарднера из серии занимательной математики здесь: rutracker.org (но можно и погуглить) ![]() |
Re: Серийный номер USB | |
---|---|
akvvohinc Сообщений: 3916 Откуда: Москва Дата регистрации: 11.11.2008 |
Но можно и по-другому - решение бота - как бесполезный кусок мрамора, но если человек отсечёт от него всё лишнее, то может получиться шедевр.
(возможно, я бы и удивился результатам вашего последнего общения, если бы не видел его решений предыдущих задачек.) ![]() |
Re: Серийный номер USB | |
---|---|
Burn Автор Сообщений: 5609 Откуда: Днепр Дата регистрации: 02.01.2002 |
А как вы его заставили разговаривать на русском?
![]() |
Re: Серийный номер USB | |
---|---|
ABB Сообщений: 131 Откуда: Санкт-Петербург Дата регистрации: 21.10.2006 |
|
Re: Серийный номер USB | |
---|---|
Burn Автор Сообщений: 5609 Откуда: Днепр Дата регистрации: 02.01.2002 |
Синкс
![]() |
© 2000-2023 Fox Club  |