add recfiles
This commit is contained in:
parent
7afe6e33cd
commit
5460f23f12
118
data/Recfiles.md
Normal file
118
data/Recfiles.md
Normal file
@ -0,0 +1,118 @@
|
||||
---
|
||||
title: "Recfiles"
|
||||
tags: [ "data", "database" ]
|
||||
---
|
||||
|
||||
## Create
|
||||
|
||||
Make a database for your boardgames, specifying only one field and value:
|
||||
|
||||
```bash
|
||||
database=games.rec
|
||||
n=Name
|
||||
v=Vojvodina
|
||||
touch $database
|
||||
recins -f $n -v v $database
|
||||
recsel $database
|
||||
|
||||
```
|
||||
|
||||
Insert a few more, with the estimated playtime:
|
||||
|
||||
```bash
|
||||
recins -f Name -v Saboter -f Playtime -v 30 $database
|
||||
recins -f Name -v Chess -f Playtime -v 30 $database
|
||||
```
|
||||
|
||||
View all games, or select one by number:
|
||||
|
||||
```bash
|
||||
recsel $database
|
||||
recsel -n 0 $database
|
||||
```
|
||||
|
||||
Each game should note whether or not you have played it yet, so you can add that field and set the default to `yes`.
|
||||
|
||||
```bash
|
||||
f=played
|
||||
v=yes
|
||||
recset -f $f -a $v $database
|
||||
```
|
||||
|
||||
...but the field is wrong, it should have a capital letter:
|
||||
|
||||
```bash
|
||||
new_field=Played
|
||||
recset -f $f --rename $new_field
|
||||
```
|
||||
|
||||
## Read
|
||||
|
||||
Check how many records the database has:
|
||||
|
||||
```bash
|
||||
recinf $database
|
||||
```
|
||||
|
||||
Look at just the games you've never played:
|
||||
|
||||
```bash
|
||||
recsel --expression="Played = 'no'" $database
|
||||
```
|
||||
|
||||
Print how many, then just print the names:
|
||||
|
||||
```bash
|
||||
recsel -e "Played = 'no'" --count $database
|
||||
recsel -e "Played = 'no'" --print=Name $database
|
||||
```
|
||||
|
||||
## Update
|
||||
|
||||
To change a game's `Played` field from `no` to `yes`, use `recset` to specify the number, and change that field.
|
||||
|
||||
```bash
|
||||
num=0
|
||||
f=Played
|
||||
value=yes
|
||||
recsel --number=$num $database
|
||||
recset --number=$num -f $f --set=$value $database
|
||||
```
|
||||
|
||||
Find all games with a playtime of `30`, and set the field `Max_Players` to `4`.
|
||||
|
||||
```bash
|
||||
recset -e "Playtime = 40" -f Max_Players --set 50 games.rec
|
||||
```
|
||||
|
||||
This doesn't work, because that field does not exist.
|
||||
You can `--set-add` the field, to add it wherever it does not exist.
|
||||
|
||||
```bash
|
||||
recset -e "Playtime = 40" -f Max_Players --set-add 50 games.rec
|
||||
```
|
||||
|
||||
## Delete
|
||||
|
||||
Remove `Played` record from first game:
|
||||
|
||||
```bash
|
||||
num=0
|
||||
recset --number=$num -f Played --delete $database
|
||||
```
|
||||
|
||||
You can comment the line instead of deleting it:
|
||||
|
||||
```bash
|
||||
num=1
|
||||
recset --number=$num -f Played --delete $database
|
||||
recsel $database
|
||||
cat $database
|
||||
```
|
||||
|
||||
Delete an entire record:
|
||||
|
||||
```bash
|
||||
num=2
|
||||
recdel --number=$num $database
|
||||
```
|
Loading…
Reference in New Issue
Block a user