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

Изучение основ FreeBasic в сравнении с PowerBasic

10.10.2022, 22:17. Показов 22077. Ответов 218

Студворк — интернет-сервис помощи студентам
Всем добра и мира!

К сожалению, PowerBasic прекратил своё развитие вследствие смерти его создателя и главного (а скорее всего, единственного) разработчика Роберта Зейла в 2012-ом году. К настоящему времени последние надежды на его развитие окончательно угасли. В связи с этим я решил приступить к изучению основ FreeBasic'а.

В этой ветке форума буду задавать вопросы, возникающие у меня в процессе ознакомления с этим ЯП.

Как говорится, всё познаётся в сравнении. Ну вот и буду изучать FreeBasic, опираясь на определённый опыт ЛЮБИТЕЛЬСКОГО программирования на PowerBasic'е.

Буду очень благодарен за любую помощь.

Итак, первый возникший у меня вопрос.

Каким образом в структурах FreeBasic'а появилась возможность использовать динамические строки?
В PowerBasic'е это строго запрещено. Можно использовать только строки фиксированной длины.

Вот 2 работающих (с одним и тем же результатом на консоли) кода для сравнения:

FreeBasic
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
TYPE Persons
    Name AS STRING
    Surname AS STRING
    Age AS BYTE = 35
END TYPE
 
DIM Vpersons AS Persons
 
Vpersons.Name="Richard"
Vpersons.Surname="Black"
 
? Vpersons.Name
? Vpersons.Surname
? Vpersons.Age
Sleep
PowerBasic
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#COMPILE EXE
#DIM ALL
 
TYPE Persons
  Name AS STRING*10       'если здесь написать "Name AS STRING", компилятор бастует
  Surname AS STRING*10   'если здесь написать "Surname AS STRING", компилятор бастует
  Age AS BYTE           'значение по умолчанию здесь присвоить не получится
END TYPE
 
FUNCTION PBMAIN () AS LONG
DIM Vpersons AS Persons
 
  Vpersons.Name="Richard"
  Vpersons.Surname="Black"
  Vpersons.Age = 35
 
  ? Vpersons.Name
  ? Vpersons.Surname
  ? Vpersons.Age
 
  SLEEP 5000    'если SLEEP без указания продолжительности, компилятор бастует
END FUNCTION
1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.10.2022, 22:17
Ответы с готовыми решениями:

Перегрузка методов (изучение основ)
Добрый день! Вот я добрался до перегрузки методов и быстренько накидал вот такой пример: using System; namespace...

Сколько в среднем часов уходит на изучение основ C++?
1) Если с нуля 2) Если после паскаля или чего то в этом духе

Групповое изучение программирование с основ без преподавателя
Суть: Студенты 3 курса Специальность: информационно вычислительная техника, после третьего курса "Аналитики" С с божьей...

218
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
08.12.2022, 22:21  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Замабувараев Посмотреть сообщение
Если у вас не открывается хотя бы эта ссылка, значит ваш провайдер блокирует:
КодВыделить код
http://www.xn--d1abkidrejo.xn--p1ai/files/0188.png
Так да, открылась картинка со скриншотом.

Я не уверен, что мой провайдер блокирует безобидную ссылку.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
08.12.2022, 22:27
Power_Basic, скопировать ссылку и вставить в адресную строку, без щелчков по ней, сработает?
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
09.12.2022, 13:54  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Power_Basic, скопировать ссылку и вставить в адресную строку, без щелчков по ней, сработает?
Да, таким способом сработало.
Скачался архив VSCodePortable.7z (423,73Мб).

А вот простым щелчком обе проблемные ссылки по-прежнему не работают, симптомы аналогичны вчерашним.

А вообще что представляет из себя этот контент? Это уже готовая настроенная IDE (для х64) со всеми отладчиками и прочими фичами или как?
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
09.12.2022, 13:58
Цитата Сообщение от Power_Basic Посмотреть сообщение
Это уже готовая настроенная IDE (для х64) со всеми отладчиками и прочими фичами?
В архив входит:
Visual Studio Code с расширениями
компилятор
mingw64
Проект с программой подсчёта символов → откройте в студии каталог CharsCounter.
1
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
09.12.2022, 14:06  [ТС]
После распаковки заняло 2,25 Гб дискового пространства.

Добавлено через 4 минуты
Цитата Сообщение от Замабувараев Посмотреть сообщение
В архив входит:
Visual Studio Code с расширениями
компилятор
mingw64
Проект с программой подсчёта символов → откройте в студии каталог CharsCounter.
Спасибо, но, пожалуй, я сейчас уже не буду всем этим заниматься. У меня как раз всё очень хорошо наладилось с JK-IDE.
Но в качестве перспективы на будущее ваш материал будет у меня храниться.

В моих ближайших планах именно "Изучение основ FreeBasic в сравнении с PowerBasic" на основе простейших консольных программ. Заодно и пробелы в своих знаниях относительно особенностей передачи параметров в функции, работе с файлами, и прочее, буду постепенно заполнять. На простейших примерах это как раз самое оно.
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,538
Записей в блоге: 1
09.12.2022, 14:07
Цитата Сообщение от Замабувараев Посмотреть сообщение
А когда надо выполнить «Убрать изменения» которые ломают программу или приводят к ошибке, как вы поступите? Ctrl+Z нажмёте? А если в нескольких файлах или изменения были сделаны после перезагрузки?
Ну, когда я учился, мои +-большие проекты лежали в папках с папками "стабильная версия", "версия с фичей А", "версия с фичей Б, которая не работает", "Попытка объединить версии с фичей А и с фичей В в новую стабильную версию"

Усугублялось тем, что у папок названия были отнюдь не настолько самодокументированными, как я тут их представляю.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
09.12.2022, 14:25  [ТС]
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
Ну, когда я учился, мои +-большие проекты лежали в папках с папками "стабильная версия", "версия с фичей А", "версия с фичей Б, которая не работает", "Попытка объединить версии с фичей А и с фичей В в новую стабильную версию"
Усугублялось тем, что у папок названия были отнюдь не настолько самодокументированными, как я тут их представляю.
Не настолько самодокументированными, но всё-таки тоже с кириллицей и с пробелами?
Мой компилятор (JK-IDE) их очень сильно недолюбливает, глючит
Приходится изголяться на инглише и без пробелов, что не всегда удобно. Как ни крути, а родной язык он в Африке родной язык

Добавлено через 6 минут
Виноват, что ошибочно назвал редактор компилятором.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
09.12.2022, 16:20
Цитата Сообщение от Power_Basic Посмотреть сообщение
Спасибо, но, пожалуй, я сейчас уже не буду всем этим заниматься
Откройте хотя бы тот проект.

Добавлено через 35 минут
Цитата Сообщение от Power_Basic Посмотреть сообщение
После распаковки заняло 2,25 Гб дискового пространства.
Это потому что она написана на яваскрипте, а тот работает в движке чромиум, который написан на Си Плас Плас.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
09.12.2022, 21:03  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Откройте хотя бы тот проект.
Ну мне это вот прямо сейчас совсем-совсем не нужно. Ну зачем мне лезть в GUI и в библиотеки , если я собираюсь надолго задержаться в консоли и поработать с простейшими встроенными командами. Информация должна быть востребована, вопросы должны созреть, тогда ответы ложатся на благодатную почву и хорошо усваиваются.

Вот вы мне лучше скажите, в чём может состоять ошибка в следующем консольном коде?

FreeBasic
PureBasic
1
2
3
4
5
6
7
8
  dim str_arr_1 ()       as string
  dim str_File_name_1    as string
  dim lng_File_number   as LONG     
  
  lng_File_number = freefile  
  OPEN str_File_name_1 FOR BINARY AS #lng_File_number
    GET #lng_File_number, , str_arr_1 ()          'error 24: Invalid data types, before '('
  close #lng_File_number
Текстовый файл str_File_name_1 реально существует и представляет из себя список ключевых слов FreeBasic'а по одному слову на каждой строке.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
09.12.2022, 21:49
Цитата Сообщение от Power_Basic Посмотреть сообщение
str_arr_1 ()
Нет конечно.
Если вы решили читать побайтово, а не построчно, вам необходимо подготовить буфер и передать его в GET. Например, так:
PureBasic
1
2
' Буфер из 9 символов + 1 для нулевого
Dim str_arr_1 As ZSstring *10
Или так:
PureBasic
1
2
' Буфер размером в длину файла
Dim str_arr_1 As String = String(LOF(lng_File_number), 0)
И тогда можно будет делать GET:
PureBasic
1
GET #lng_File_number, , str_arr_1
1
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
11.12.2022, 14:13  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Или так:

PureBasic
1
2
' Буфер размером в длину файла
Dim str_arr_1 As String = String(LOF(lng_File_number), 0)
И тогда можно будет делать GET:

PureBasic
1
GET #lng_File_number, , str_arr_1
Ну мы же таким образом вроде бы в строку str_arr_1 содержимое файла считываем, а требуется-то ведь считать в строковой массив str_arr_1 () .
Или это в принципе невозможно?
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
11.12.2022, 15:25
Цитата Сообщение от Power_Basic Посмотреть сообщение
Или это в принципе невозможно?
Текущие ограничения не позволяют вам читать в массив строк.
1
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
11.12.2022, 18:23  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Текущие ограничения не позволяют вам читать в массив строк.
И даже строк в формате ZSTRING?
0
Эксперт по электронике
6998 / 3314 / 341
Регистрация: 28.10.2011
Сообщений: 13,024
Записей в блоге: 7
11.12.2022, 18:42
Думаю дело не в строках а в том что GET не предназначен для чтения в строковой массив. https://www.freebasic.net/wiki/KeyPgGetfileio
То есть GET не разделяет файл на строки с копированием каждой из них в свой элемент массива.
1
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
11.12.2022, 19:35
Цитата Сообщение от Power_Basic Посмотреть сообщение
И даже строк в формате ZSTRING?
Вы конечно можете сделать так:
PureBasic
1
2
3
4
5
6
7
Dim str_arr_1(9) As ZString * 10 = Any
Dim str_File_name_1 As String = "test.txt"
Dim lng_File_number As Long = FreeFile()
 
Open str_File_name_1 For Binary As #lng_File_number
Get #lng_File_number, , str_arr_1()
Close #lng_File_number
Но это вам всё равно не поможет, потому что в массив будет заполняться побайтово (как вы и просили), а не построчно.

Например ваш файл такой:
Code
1
2
3
123
456
789
И первый элемент в массиве str_arr_1 (индекс 0) будет заполнен на всю его длину:
Code
1
123\r\n456\r\n
(Здесь \r и \n это символы перевода строки и возврата каретки)
То есть в str_arr_1(0) будет не строка текста 123, а десять первых байт файла.

Это хорошо видно в отладчике:
1
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
11.12.2022, 19:52  [ТС]
Цитата Сообщение от locm Посмотреть сообщение
Думаю дело не в строках а в том что GET не предназначен для чтения в строковой массив. https://www.freebasic.net/wiki/KeyPgGetfileio
То есть GET не разделяет файл на строки с копированием каждой из них в свой элемент массива.
Ну в принципе, я так и понял, что с "FOR BINARY + GET" у меня ничего не получится, поэтому использовал связку "FOR INPUT + LINE INPUT". В такой редакции все строки из текстового файла считались в массив без проблем.

Но всё-таки с GET хотелось разобраться окончательно, чтобы не оказалось так, что есть возможность, которую я не использую.

Стало быть, числовые данные можно считывать из файла в массив, а строковые нельзя. Наверно, потому что каждое число занимает в памяти строго определённое количество байт в зависимости от типа, а строки (в общем случае) все разной длины.

FreeBasic
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
Sub get_array()
 
    Dim an_array(0 To 10-1) As Long ' array of Longs
 
    ' Read 10 Longs (10 * 4 = 40 bytes) from the file into an_array, using file number "f".
    Get #f, , an_array()
 
    ' print out result
    For i As Integer = 0 To 10-1
        Print an_array(i)
    Next
    Print
Добавлено через 4 минуты
Замабувараев, спасибо за подробное разъяснение.
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
11.12.2022, 21:05
Цитата Сообщение от Power_Basic Посмотреть сообщение
Стало быть, числовые данные можно считывать из файла в массив, а строковые нельзя
В двоичном файле могут встречаться строки фиксированной длины, их можно читать.
0
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
12.12.2022, 15:53  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
В двоичном файле могут встречаться строки фиксированной длины, их можно читать.
Да нет, двоичные файлы это уже совсем другая история. Сейчас у меня на повестке дня текстовые файлы приблизительно вот такого вида:

Кликните здесь для просмотра всего текста
OBJECT
OCT
OFFSETOF
ON ERROR
ON...GOSUB
ON...GOTO
ONCE
OPEN
OPEN COM
OPEN CONS
OPEN ERR
OPEN LPT
OPEN PIPE
OPEN SCRN
OPERATOR
OPTION()
OPTION BASE
OPTION BYVAL
OPTION DYNAMIC
OPTION ESCAPE


Короче говоря, я убедился, что без внешних библиотек в этом языке не обойтись, уж очень скуден набор встроенных функций.
В связи с этим, начал просматривать WinFBX (Windows Framework for FreeBASIC) и обнаружил, что там совершенно отсутствуют функции по манипуляциям с простыми массивами, но зато в изобилии присутствуют функции по работе с SAFEARRAY.
Что такое SAFEARRAY я знаю очень отдалённо, поскольку никогда не имел с ними дело. Знаю только, что это структура, которая описывает массив, что SAFEARRAY идеально подходит для COM-программирования и что они работают медленнее чем обычные массивы.
А вот насколько они медленней и если незначительно, тогда может быть имеет смысл полностью перейти на постоянное использование SAFEARRAY вместо обычных массивов?
0
COM‐пропагандист
 Аватар для Замабувараев
936 / 785 / 149
Регистрация: 18.12.2014
Сообщений: 2,256
Записей в блоге: 4
12.12.2022, 19:34
Цитата Сообщение от Power_Basic Посмотреть сообщение
отсутствуют функции по манипуляциям с простыми массивами
Каких функций нет?
Цитата Сообщение от Power_Basic Посмотреть сообщение
Что такое SAFEARRAY
Автоматизация предоставляет свой формат хранения массивов. Достоинство SAFEARRAY в том, что это универсальная структура и API, позволяющая хранить самоописываемые одномерные и многомерные массивы. «Самоописываемые» означает, что, имея ссылку на SAFEARRAY, можно получить полное описание хранящегося в нём массива: тип данных элемента, количество измерений и их верхние и нижние границы. SAFEARRAY создавались для облегчения передачи массивов между компонентами.
SAFEARRAY — это единственный допустимый тип массива для дуальных интерфейсов и интерфейсов Автоматизации. VB6 при создании Public-интерфейсов всегда использует SAFEARRAY и прекрасно их понимает сам.

Недостаток: не может занимать больше 2 гигабайт.

Вот пример как создать одномерный массив, заполнить случайным значением и распечатать:
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include once "windows.bi"
#include once "win\ole2.bi"
#include once "win\oleauto.bi"
 
Sub PrintArray(ByVal psa As SAFEARRAY Ptr)
    Dim LowerBound As Long = Any
    SafeArrayGetLBound(psa, 1, @LowerBound)
    
    Dim UpperBound As Long = Any
    SafeArrayGetUBound(psa, 1, @UpperBound)
    
    Dim pVector As Long Ptr = Any
    Dim hrAccessData As HRESULT = SafeArrayAccessData(psa, @pVector)
    
    If SUCCEEDED(hrAccessData) Then
        
        For i As Integer = LowerBound To UpperBound
            Print pVector[i], 
        Next
        
        SafeArrayUnaccessData(psa)
    End If
    
End Sub
 
Const VectorLength As ULONG = 32
 
' Одномерный массив типа Long количеством 32
Dim psa As SAFEARRAY Ptr = SafeArrayCreateVector( _
    VT_I4, _
    0, _
    VectorLength _
)
 
If psa Then
    Dim pVector As Long Ptr = Any
    Dim hrAccessData As HRESULT = SafeArrayAccessData(psa, @pVector)
    
    If SUCCEEDED(hrAccessData) Then
        ' Заполнить массив случайными значениями
        For i As Integer = 0 To VectorLength - 1
            pVector[i] = CLng(Rnd() * 100)
        Next
        
        SafeArrayUnaccessData(psa)
        
        PrintArray(psa)
    End If
    
    SafeArrayDestroy(psa)
End If
1
 Аватар для Power_Basic
46 / 25 / 0
Регистрация: 08.03.2016
Сообщений: 443
12.12.2022, 20:15  [ТС]
Цитата Сообщение от Замабувараев Посмотреть сообщение
Цитата Сообщение от Power_Basic Посмотреть сообщение
отсутствуют функции по манипуляциям с простыми массивами
Каких функций нет?
Да практически вообще никаких нет

Давайте сравним набор ВСТРОЕННЫХ средств для работы с массивами с тем же PowerBasic'ом:

FreeBasic
Кликните здесь для просмотра всего текста
List of FreeBASIC keywords sorted by the function they perform.

Arrays

ARRAYLEN
Provides the length of an array given its array-name.

ARRAYSIZE
Provides the size of an array given its array-name.

ERASE
Statement to erase arrays

FBARRAY (array descriptor structure and access)
Pre-defined structure (UDT) and procedure declarations from the fbc-int/array.bi include file, usable to access the array descriptor data
fields.

LBOUND
Returns the lower bound of an array's dimension

REDIM
Defines or resizes a variable-length array

PRESERVE
Used with Redim to preserve contents will resizing an array

UBOUND
Returns the upper bound of an array's dimension


PowerBasic
Кликните здесь для просмотра всего текста
Array Operations

The following functions can be used to manipulate and manage arrays:

#DEBUG ERROR
Control generation of error checking code

#DIM
Specify if variables must be declared before use

ARRAY ASSIGN
Assign a number of values to successive elements of an array

ARRAY DELETE
Delete a single item from a given array

ARRAY INSERT
Insert a single item into a given array

ARRAY SCAN
Scan all or part of an array for a given value

ARRAY SORT
Sort all or part of a given array

ARRAYATTR
Return descriptive attributes of a given array

BIT CALC
Set or reset a bit in an implied bit-array

BIT
Return the value of a particular bit in an implied bit-array

BIT
Manipulate individual bits of an implied bit-array

DATA
Declare an array of constants to be read by READ$

DATACOUNT
Return the total count of the number of local data items

DIM
Declare and dimension arrays, scalar variables, and pointers

ERASE
Deallocate array memory

FILESCAN
Rapidly scan an open file, before loading into an array with GET

GET
Read a complete array from a binary file

IPowerArray.ARRAYBASE
Returns the address of the first element of the array.

IPowerArray.ARRAYDESC
Returns the address of the SAFEARRAY descriptor.

IPowerArray.ARRAYINFO <Get>
Retrieves the info string, if one is present.

IPowerArray.ARRAYINFO <Set>
Assigns the info string.

IPowerArray.CLONE
An exact duplicate of the SafeArray is created, and stored in the specified PowerArray object.

IPowerArray.COPYFROMVARIANT
An exact copy is made of the specified SafeArray and stored in this PowerArray object.

IPowerArray.COPYTOVARIANT
An exact copy is made of the SafeArray in this object and stored in the specified Variant.

IPowerArray.DIM
Dimensions (creates) a new array.

IPowerArray.ELEMENTPTR
Retrieves the address of the specified data element.

IPowerArray.ELEMENTSIZE
Retrieves the storage size (in bytes) of each data element of the array.

IPowerArray.ERASE
Destroys the contained array and empties the object.

IpowerArray.LBOUND
Retrieves the lower bound number for the dimension specified.

IPowerArray.LOCK
Increments the lock count of the SAFEARRAY.

IPowerArray.MOVEFROMVARIANT
Transfers ownership of the specified SafeArray to the PowerArray object.

IPowerArray.MOVETOVARIANT
Transfers ownership of the SafeArray contained in this PowerArray object to a variant parameter.

IPowerArray.REDIM
Allows the SafeArray to be erased and re-dimensioned to a new size.

IPowerArray.REDIMPRESERVE
Allows the least significant (rightmost) bound to be changed to a new size. The remaining data items in the array are preserved.

IPowerArray.RESET
All elements in the SafeArray are set back to their initial, default value.

IPowerArray.SUBSCRIPTS
Retrieves the number of dimensions (subscripts) for this array.

IPowerArray.UBOUND
Retrieves the upper bound number for the dimension specified.

IPowerArray.UNLOCK
Decrements the lock count of the SAFEARRAY.

IPowerArray.VALUEGET
Retrieves the value of the specified array element.

IPowerArray.VALUESET
Assigns the specified value to the specified array element.

IPowerArray.VALUETYPE
Retrieves the %VT code which describes the data contained in this array.

JOIN$
Return a string consisting of all of the strings in a string array

LBOUND
Return the lowest subscript of an array's specific dimension

LET
Assign a Variant to an array or an array to a Variant

LINE INPUT#
Read line(s) from a sequential file into a string variable or array

MAT
Matrix calculations on numeric arrays

PARSE
Parse a string and extract all delimited fields into an array

PRINT#
Write a complete array to a sequential file

PUT
Write a complete array to a binary file

READ$
Retrieve string data from a local DATA list

REDIM
Declare dynamic arrays, allocate, reallocate, deallocate memory

RESET
Set an array subscript or an entire array to zero or null/empty

UBOUND
Return the highest subscript of an array's specific dimension
Цитата Сообщение от Замабувараев Посмотреть сообщение
Недостаток: не может занимать больше 2 гигабайт.
Ну и ещё, наверняка, сильно в скорости работы проигрывает обычным массивам, да?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.12.2022, 20:15

Лабораторная работа на изучение основ работы с debug.exe
Ход работы 1. Запишите в отчет тему и цель. 2. В командной строке наберите debug. У вас должно появиться на экране окно отладчика с...

Лабораторная работа(Изучение основ.Одномерный и двумерный массивы.Процессы)
Ребята, помогите с задачами, дали написать задачи на VBA (ни разу с ним не имел дела), первые 3 задачи делал на python'e может быть Вы...

Проблема с Imagelist в PowerBasic 10
Я хочу в ресурс вставить одно растровое изображение. Затем с помощью графических команд вырезать кусочки в память и добавлять их в...

FreeBASIC
Заметил, что уже имеющиеся на форуме темы в разделах: - QBasic - Visual Basic - VBA - Pure Basic посещаются довольно часто –...

Уйти с freebasic
написал кое как программу с openCL на freebasic там моделируется взfвимодействие частиц через потенциал парного взаимодейстивия ...


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

Или воспользуйтесь поиском по форуму:
180
Ответ Создать тему
Новые блоги и статьи
Оказывается, Unreal Engine позволяет качество на порядки выше, чем было в Lineedge
Etyuhibosecyu 05.07.2026
Жаль, конечно, что я не узнал об этом, пока Lineedge существовала, а то бы Noname2331 написал, что волки превращаются в пиксельную кашу, а я бы его попросил скачать какую-нибудь бриллиантовую или Pro. . .
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
интеграция AnyLogic с самописным REST API и переход на Odoo
anaschu 03.07.2026
Успешная интеграция AnyLogic с самописным REST API и переход на промышленную Odoo WMS Сегодня проделал огромный путь от простой симуляции физических процессов до построения полноценной. . .
Поиск всех путей на ориентированном графе. Linux
dcc0 02.07.2026
Переработка старого кода из моей статьи. Через несколько переработок от PHP кода к C89 (надеюсь, 89). Но довольно запутанно получилось. Код для Linux. Но если убрать time и то, что с ним. . .
Сам себя обучал rest api
anaschu 02.07.2026
Педагогический лайфхак: Почему чистый REST API для ученика намного круче, чем готовые библиотеки Когда мы отказались от капризного JAR-файла AnyLogic и переписали код на стандартный HttpClient,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru