CloudFlare suffered a massive security issue affecting all of its customers, including Rosetta Code. All passwords not changed since February 19th 2017 have been expired, and session cookie longevity will be reduced until late March.--Michael Mol (talk) 05:15, 25 February 2017 (UTC)

Category:KeyList Databasing

From Rosetta Code
KeyList Databasing
This programming language may be used to instruct a computer to perform a task.
See Also:

Listed below are all of the tasks on Rosetta Code which have been solved using KeyList Databasing.
Your Help Needed
If you know KeyList Databasing, please write code for some of the tasks not implemented in KeyList Databasing.

KeyList Databasing is the language used by the BrailleNote (a computer for the blind) to create databases. The BrailleNote is a multipurpose mobile computer (it is commonly classified as a notetaker) with audio and refreshable Braille output. In the BrailleNote, there are databases installed in it, with .klt file extensions. When a .klt database program (written in the KeyList Databasing language) is selected with the "select KeyList file" option in the "KeyList" settings menu in the KeyList menu. (KeyList is an address-list and database program for the BrailleNote). For more info on BrailleNotes, see the company's website,


The following KeyList Databasing program is a perfect example of how the language works. What the commands mean is described below the code. A program like this would be created on a BrailleNote using a klt file-extension, for example, "phonebook.klt". It doesn't work if you just add a .klt file extension, (unlike most files such as .htm). When you are creating the document (in KeySoft 6.2), you would tab over to "create a KeyList Definition File" and type in Phonebook. In the KeyWord word processor in KeySoft, you would type (as code):

database Phone Book
10001, name, autocap, "Last Name"
10002, name, autocap, "First Name"
10003, name, autocap, "Middle Name"
10004, phone, autonum, "Home Phone Number"
10005, phone, autonum, "Mobile Phone Number"
10006, phone, autonum, "Work Phone Number"
10007, address, "Street Address"
10008, autocap, "City"
10009, allcaps, "State, Province or Territory"
10010, autocap, "Country"
10011, email, G0, "E-mail address"

We will review this code one line at a time:

  1. Database programs in KeyList Databasing begin with the word "database" followed by the internal database name. Database records created with a KeyList program get exported into .cdb databases when the .klt program runs in KeyList. The user can re-export it into a .csv file if they want to, which can be re-imported into the .klt program's application system, and into the .cdb. If your file is called "phonebook.klt", the .cdb will be called (according to the source code) "phone book.cdb" because the command said "database Phone Book", two words. A database name has to begin with a capital letter.
  2. The next line, a usually two-digit number, uniquely identifies it from the other database programs in the machine. For example, "24" is not recommended for KeySoft 6.2 on the BrailleNote mPower, because the built in "address list" application (obviously written in KeyList Databasing) is database #24.

This is where we start numbering lines.

  1. Line 1, which is "10001", will display the word "Last Name" (with a box to fill in the field) to the user. name, autocap, means that it's telling the computer that it is a name, and that the first letter is automatically capitalized, for name convenience. Same with "First Name" and "Middle Name", each with a unique line number.
  2. The next three lines, which ask the user for a home, mobile and work phone number respectively, say "phone, autonum". Most BrailleNotes have the user type in Braille. In Braille, 1 through 9 are just the dot combinations for A through I, with a number sign combination before it. The autonum command tells the BrailleNote that when a letter is typed in, it automatically becomes a number (A is 1, J is 0, I is 9, and everything in between). The phone part of phone, autonum, just tells the computer that it's a phone number.
  3. The next line has the "address" command in it. This just allows use of normal Braille text, but should only be used for addresses.
  4. City and Country both use autocap, but State uses allcaps. This implies that they want an abbreviation (CA for California, or MI for Michigan, etc.). Allcaps is a kind of field that pretty much keeps the caps-lock on no matter what you do.
  5. Email address field uses the G0 command, which is used by the BrailleNote to tell the user that ASCII computer Braille, not plain Braille (like in the other fields), is used. The email, g0 syntax tells the BrailleNote to prompt the user if it is an invalid email-address. If you type something in an email, G0, field without an at @ sign, it will ask the user if it is okay that it doesn't have an at sign. Regular G0, as in:
10001, G0, "Product Key Code"

just allows the user to type computer-Braille commands. There is also:

10002, password, G0, "Email Password"

As you may have guessed, password, G0, replaces the typed letters with asterisks (for security). The password is stored in the .cdb (or .csv) file unsecured, but when the .klt is running, (or the .csv gets installed back into the .klt), it's secured.

Miscellaneous commands[edit]

There are other commands in KeyList Databasing you just might want to know about: The boolean command returns a yes or no value, similar to other, more widely-known programming schemes where boolean objects return "true or false" or "1 or 0". Here is an example of a KeyList Databasing boolean object:

11000, boolean, "Are you an experienced programmer"

This command asks the BrailleNote user the question (in quotes). The user has to hit Y or N (yes or no). The spell command tells the BrailleNote that the speech output system on the BrailleNote should spell it letter-by-letter. For example:

18000, spell, "Zip Code"

If the zip-code were a G0 or autonum command, it would say 49505 as words, like "fourty-nine thousand five hundred five". The spell command tells the speech synthesizer to say "four nine five zero five" (or O five, in some synthesizers). It also spells out what you type into the database field, instead of just waiting until you're done to say it. The device command is not very common, but it is used in databases that store connection configuration information. For example:

12000, device, "What kind of Internet connection"

This unusual command presents the user with a pre-programmed pull-down menu of Internet connection types, such as "internal modem" (dial-up), "ethernet network connection" (for LAN), "wireless ethernet network connection", (for LAN routed through WiFi) and many others. The only time you will ever see this command is if you read the source code for the database application "Connection Configurations", the second-most popular pre-programmed KeyList database, "Address List" being more commonly used, even though both are on all KeySoft 6.2 systems. Therefor, it is an unnecessary command, unless you are working with the database code that is linked to your BrailleNote's connection configuration file. Another connection configuration-type command is ssid:

13001, ssid, "Wireless SSID"

This is used by configuration applications so that they know the SSID (name) of a WiFi network. The file command is used for full-length documents.

15001, file, "Biography"

This command is unusual (but more common than commands like device), in the sense that it doesn't present the user with a box. The word "biography" in this case, gets clicked (technically, Enter is hit) and a word-processing document opens. You have a size limit for these documents, but their contents are saved in the database. Fields are usually automatically optional in a KeyList database. When you close the database program in KeyList (by hitting Exit), KeyList will ask the user if he/she wants to add the record to the database. At this point, you either hit Y, N or Exit. N deletes what you did, Y saves it in the .cdb database that the program created, and Exit returns you to the database fields.


This category has the following 3 subcategories, out of 3 total.