#arrays #basic #qbasic #freebasic
#массивы #Базовые модели #qbasic #freebasic
Вопрос:
У меня есть следующий код QuickBASIC 4.5:
IF LEN(Dir$("mtn.vga")) > 0 THEN
BLOAD "mtn.vga", VARPTR(mtn(1))
Я пытаюсь перенести его на FreeBASIC, но получаю сообщение об ошибке:
Массив, у которого нет размеров, перед ‘(‘
ЕСЛИ LEN(Dir(«mtn.vga»)) > 0, ТО
^
Есть идеи?
Ответ №1:
Эта конкретная строка является абсолютно допустимым кодом на бесплатной основе (она работает, даже если вы сохраняете знак доллара после Dir()). Я запустил этот тестовый код, просто чтобы убедиться, и он работает так, как и следовало ожидать:
IF LEN(DIR("sa.bas")) > 0 THEN 'sa.bas is the name of this file
PRINT "file exists"
END IF
Не могли бы вы поместить больший фрагмент кода (возможно, на pastebin и связать меня с ним)? Причина проблемы может быть где-то чуть раньше в вашем коде.
Ответ №2:
В FreeBASIC строковая переменная $ after устарела, полезна, только если вы хотите использовать для совместимой программы со старым BASIC
Следуйте примеру программы, чтобы понять, что делает DIR ()
'This example show you how work if want verify the exist file.
Print DIR("lendir.bas") ' Dir("namefile.ext") show the name of file if exist
IF LEN(DIR("lendir.bas")) > 0 THEN 'sa.bas is the name of this file
PRINT "file exists"
END IF
'or you can use this too
IF DIR("lendir.bas") = "" THEN 'If file not exist
PRINT "file not exists"
Else
PRINT "file exist"
END IF
ЗАГРУЗКА
Загружает произвольные данные из файла, созданного с помощью BSave, или совместимого файла изображения BMP.
Но вы должны быть уверены, является ли исходный код QB или QuickBASIC, потому что у вас есть разные способы использовать одни и те же вещи
Пример fbc myprog.bas -lang qb
не работает с этим примером, попробуйте fblite вместо qb