This was a challenge to write a database program with Small Basic. I started to write this program in June last year in a Challenge of the Month. But suspended because of Combo Box coding. Code of Combo Box has been completed last month. Then I restarted to write my database program and reported about the program to a thread in Small Basic forum. Ed Price made this thread sticky. Thanks Ed.
This project is still beta but I will introduce it as current status.
This project has three components. One for deciding folders to search. One for collecting information from Small Basic source programs and create a CSV database. And the last one is to select data from the CSV database. Following list shows the latest versions of the components.
- Program Folder Manager 0.41 - CRK000-2
- Program Scanner 0.3b - PMG585-1
- Program Database 0.5b - HMK932-1
Program Folder Manager
This program creates a file ProgramScanner.settings. This setting file contains an array of folders to be scanned by Program Scanner. An array roots is given to this program (lines 13 - 15 below). And this program gets all sub folders.
1.' Program Folder Manager 0.41
2.' Copyright © 2014-2015 Nonki Takahashi. The MIT License.
3.' Repository https://programdbsb.codeplex.com
4.'
5.' History:
6.' 0.41 2015-12-16 #2 Changed for Windows 10. (CRK000-2)
7.' 0.3 2014-06-13 Supported sub folders. (CRK000-1)
8.' 0.2 2014-06-06 Added other folders. (CRK000-0)
9.' 0.1 2014-06-04 Created. (CRK000)
10.'
11.Settings_GetName
(
)
12.Settings_GetFolder
(
)
13.roots
[
1
]
=
"C:\Users\Nonki\OneDrive\Documents\MySmallBasic\"
14.roots
[
2
]
=
"C:\Users\Nonki\OneDrive\Documents\SmallBasic\"
15.roots
[
3
]
=
"C:\Users\Nonki\OneDrive\Documents\SmallBasic\Shapes\Art\"
16.Settings_GetSubFolders
(
)
Following list shows the result of this program - the content of ProgramScanner.settings (array of folders). 105 folders were found.
Basic\\ParserGenerator;78=C:\\Users\\Nonki\\OneDrive\\Documents\\SmallBasic\\Pia no;79=C:\\Users\\Nonki\\OneDrive\\Documents\\SmallBasic\\Player;80=C:\\Users\\No nki\\OneDrive\\Documents\\SmallBasic\\Polygons;81=C:\\Users\\Nonki\\OneDrive\\Do cuments\\SmallBasic\\Polyline;82=C:\\Users\\Nonki\\OneDrive\\Documents\\SmallBas ic\\ProgramDB;83=C:\\Users\\Nonki\\OneDrive\\Documents\\SmallBasic\\Puyopuyo;84= C:\\Users\\Nonki\\OneDrive\\Documents\\SmallBasic\\Roulette;85=C:\\Users\\Nonki\ \OneDrive\\Documents\\SmallBasic\\Ruler;86=C:\\Users\\Nonki\\OneDrive\\Documents \\SmallBasic\\Shapes;87=C:\\Users\\Nonki\\OneDrive\\Documents\\SmallBasic\\Shape s1x;88=C:\\Users\\Nonki\\OneDrive\\Documents\\SmallBasic\\Simon;89=C:\\Users\\No nki\\OneDrive\\Documents\\SmallBasic\\SmallQuest;90=C:\\Users\\Nonki\\OneDrive\\ Documents\\SmallBasic\\SmallQuest - Copy;91=C:\\Users\\Nonki\\OneDrive\\Docume nts\\SmallBasic\\SmallSVGEditor;92=C:\\Users\\Nonki\\OneDrive\\Documents\\SmallB asic\\SmallWikiPad;93=C:\\Users\\Nonki\\OneDrive\\Documents\\SmallBasic\\Spirogr aph;94=C:\\Users\\Nonki\\OneDrive\\Documents\\SmallBasic\\SVGViewer;95=C:\\Users \\Nonki\\OneDrive\\Documents\\SmallBasic\\Tangram;96=C:\\Users\\Nonki\\OneDrive\ \Documents\\SmallBasic\\TextBrowser;97=C:\\Users\\Nonki\\OneDrive\\Documents\\Sm allBasic\\TextTools;98=C:\\Users\\Nonki\\OneDrive\\Documents\\SmallBasic\\Tic-ta c-toe;99=C:\\Users\\Nonki\\OneDrive\\Documents\\SmallBasic\\TRON;100=C:\\Users\\ Nonki\\OneDrive\\Documents\\SmallBasic\\Turtle;101=C:\\Users\\Nonki\\OneDrive\\D ocuments\\SmallBasic\\Typewriter;102=C:\\Users\\Nonki\\OneDrive\\Documents\\Smal lBasic\\Wood;103=C:\\Users\\Nonki\\OneDrive\\Documents\\SmallBasic\\WordList;104 =C:\\Users\\Nonki\\OneDrive\\Documents\\SmallBasic\\Zigsaw;105=C:\\Users\\Nonki\ \OneDrive\\Documents\\SmallBasic\\Shapes\\Art\\; Press any key to continue...
Program Scanner
This program reads ProgramScanner.settings, gets folders from it, scans program source files, get information from them, and then writes them to ProgramDB.csv. Program Scanner gathers following properties from each Small Basic source code.
- Program ID
- Source Filename
- Screen Shot (Filename)
- Description
- Last Update
- Version
- Author
- (Number of ) Lines
- Subroutines
- Challenge
This program has room for improvement. For example, following list shows that a program ID written in a history can be gotten like HMX882 but failed with FGC959 written after "Program ID".
' 2012/09/08 20:42:17 Generated by Shapes Editor 0.3
'
' initialize shapes ,C:\Users\Nonki\OneDrive\Documents\SmallBasic\Shapes\Art\WaterMelon.smallbasic,, Water melon,,,,120,Shapes_Init Shapes_Add,' Windmill
' Copyright c 2015 Nonki Takahashi. The MIT License.
' 2015-02-05 2:13:11 Shapes generated by Shapes 2.1b.
' Program ID FGC959
' ,C:\Users\Nonki\OneDrive\Documents\SmallBasic\Shapes\Art\windmill.smallbasic,,Wi ndmill,,,Nonki Takahashi,336,Shapes_Init Math_CartesianToPolar SB_RotateWorkarou nd SB_Workaround Shapes_Add Shapes_CalcRotatePos Shapes_CalcWidthAndHeight Shape s_Move Shapes_Remove Shapes_Rotate,' Chirstmas Tree 0.1
' Copyright (c) 2012 Nonki Takahashi. All rights reserved.
'
' History:
' 0.1 2012/12/11 Created. (HMX882) HMX882,C:\Users\Nonki\OneDrive\Documents\SmallBasic\Shapes\Art\XmasTree01.smallb asic,,Chirstmas Tree,2012-12-11,0.1,Nonki Takahashi,368,AddFlashLights BlinkFlas hLights Tree_Init Robot_Init Shapes_Add Shapes_CalcWidthAndHeight Shapes_CalcRot atePos Shapes_Move Shapes_Remove Shapes_Rotate Math_CartesianToPolar, Press any key to continue...
Program Database
This program has GUI (Graphical User Interface) and select programs with given properties. Actually, I found a text compare subroutine like following parameters and modified it for this program.
Operators used in this program are from WHERE clause in SQL (Structured Query Language).
- =
- >
- <
- >=
- <=
- <>
- AND
- OR
- LIKE
But in the current version, LIKE works just as partial match.
I will continue to develop for this project. So please watch following discussion or repository. Thanks.
See Also
- Challenge of the Month - June 2014 (MSDN Forums) - beginning of this program
- Your Program Database (MSDN Forums) - for discussion and report of this project
- Program DB in Small Basic (CodePlex) - repository: code history
- Small Basic: Sample Output of Program Database: Excel Workbook (TechNet Gallery) - sample output
- Small Basic Featured Program - Database Sample (blog) - by litdev
- Small Basic - Database Extension (blog) - by litdev