Simple database: Difference between revisions

Added 11l
(Added Wren)
(Added 11l)
Line 37:
*   [[Take notes on the command line]]
<br><br>
 
=={{header|11l}}==
{{trans|Kotlin}}
 
<lang 11l>T Item
String name, date, category
 
F (name, date, category)
.name = name
.date = date
.category = category
 
F String()
R .name‘, ’(.date)‘, ’(.category)
 
V db_filename = ‘simdb.csv’
 
F load()
[Item] db
L(line) File(:db_filename).read().rtrim("\n").split("\n")
V item = line.split(‘, ’)
db.append(Item(item[0], item[1], item[2]))
R db
 
F store(item)
File(:db_filename, ‘a’).write(String(item)"\n")
 
F printUsage()
print(|‘
Usage:
simdb cmd [categoryName]
add add item, followed by optional category
latest print last added item(s), followed by optional category
all print all
For instance: add "some item name" "some category name’)
 
F addItem(args)
I args.len < 2
printUsage()
R
 
V date = Time().strftime(‘%Y-%m-%d %H:%M:%S’)
V cat = I args.len == 3 {args[2]} E ‘none’
store(Item(args[1], date, cat))
 
F printLatest(a)
V db = load()
I db.empty
print(‘No entries in database.’)
R
 
I a.len == 2
L(item) reversed(db)
I item.category == a[1]
print(item)
L.break
L.was_no_break
print(‘There are no items for category '’a[1]‘'’)
E
print(db.last)
 
F printAll()
V db = load()
I db.empty
print(‘No entries in database.’)
R
 
L(item) db
print(item)
 
:start:
I :argv.len C 2..4
S :argv[1].lowercase()
‘add’
addItem(:argv[1..])
‘latest’
printLatest(:argv[1..])
‘all’
printAll()
E
printUsage()
E
printUsage()</lang>
 
{{out}}
The same as in Kotlin.
 
=={{header|Bracmat}}==
1,481

edits