gdbload(1)

πŸ‘‘ gdbload β€” the HP100LX Tools glow-up ✨

okay bestie, so this is gdbload(1) from the HP100LX Tools lineup, and it's literally the girl who carries your ASCII data into an HP 100LX database. no cap, she's iconic and she does exactly one job and she does it πŸ’…


πŸ¦‹ NAME πŸ¦‹

gdbload β€” load ASCII formatted data into an HP 100LX database, periodt


🌸 SYNOPSIS 🌸

gdbload [-an] database [ input ]

✨ DESCRIPTION ✨

okay so real talk: gdbload loads ASCII formatted data into an HP 100LX database. simple as that, no cap.

database is the name of the 100LX database you're modifying. input is the name of a file of ASCII data that's getting loaded into that database. if you don't name an input file? bestie, she just reads from standard input. it's giving flexible.

and the ASCII file format? it's the same one exported by many database packages, plus the one gdbdump(1) makes. iykyk 🫢


πŸŽ€ Options πŸŽ€

gdbload recognizes the following options, and you're gonna wanna know them:

  • -a β€” adds the records from the ASCII file to the database and keeps the records already chillin' in there. by default (no -a, no vibes) the records in the ASCII file replace whatever was already in the database. choose wisely πŸ’€
  • -n β€” do not back up the database file. by default, the original unmodified database file gets left behind in a file with the same name plus a .bak extension. so like, the safety net exists unless you personally say "no thanks" πŸ™ˆ

🧚 Input Format Description 🧚

the input to this program is an ASCII text file that starts with a line containing field names. this line is the blueprint: it tells you the order in which fields appear on the subsequent lines. and no, you don't have to specify all the fields of the database β€” unspecified fields just get left blank in all added records. she's not gonna force you.

field names are not case distinct, and ampersands (&) are ignored when comparing field names. so Name and name and N&ame... okay that last one, the & just gets ignored, you get it πŸ’–

this first line is followed by one line for each record of the database. and here's the tea: any of these lines may be split into multiple lines if needed, by placing a backslash (\) at the ends of lines which are continued. also, string fields may span multiple lines provided they are quoted. apart from line splitting according to these rules, each "logical" line contains all of the fields whose names were listed on the first line, in the same order as on the first line. the fields (and the field names, on the first line) are separated by commas.

exactly how each field should appear depends on its type. text fields, category fields, number fields, and note fields should have their text quoted if it contains commas or newlines. the following escape sequences are understood:

  • \r β€” carriage return (ASCII 13).
  • \n β€” line feed (ASCII 10).
  • \nnn β€” nnn are octal digits representing a character.
  • \xnn β€” nn are hexadecimal digits representing a character.

any other character following a backslash is treated as a standard character with no special meaning, i.e., backslash and quote marks can be escaped by preceding them with a backslash. so yeah, she's got you covered 🫢

date fields should appear in the format YYYYMMDD; for example, August 15, 1993 should appear as 19930815. time fields appear in the format HHMM, where HH is in the range 00-23. date and time fields may also be left blank, i.e., nothing between the commas. iconic, low-effort, valid πŸ’…

radio buttons and check boxes are turned off if the field is empty or contains a 0; they are turned on otherwise.

no other field types, including application-defined types, are accepted by gdbload. she said what she said.

oh and the output from gdbdump(1) matches this input format, unless the -n flag is given to gdbdump(1). keep that in mind bestie 🌈


πŸ’€ WARNINGS πŸ’€

okay this is the part where you sit down and listen, because it's important.

when the newly constructed database is first opened by the 100LX, it will (erroneously) be reported as being empty. yes, erroneously. no, you did not break anything. breathe 😭

this is because gdbload does not construct database indexes, and the 100LX expects the index for the current "subset" to be valid. the situation is remedied by pressing F6 and selecting any "subset" (even the current one!) β€” this will rebuild the index for that "subset", causing records to display normally. slay.

the delay caused by the rebuild depends on the size of the database (among other things), and ranges from imperceptible for small databases up to several minutes. this delay will occur whenever a new "subset" is selected for the first time. so like, grab a snack πŸ“

gdbload will not attempt to modify HP 100LX Appointment Book and World Time databases. she knows better.

gdbload will not allow you to specify data for application-defined fields of a database. boundaries, bestie πŸŽ€

this program cannot handle password-protected databases. attempts to load data into password-protected databases will have unpredictable results. that's not a vibe check you wanna fail, so don't do it πŸ™ˆ


🌟 AUTHOR 🌟

gdbload was written by Steven Roth, stever@cup.hp.com, and is being maintained by Arne Christensen, arc@pine.dk. contact the latter for bug reports, enhancement requests, or to get a copy of the source code. she's got a whole team and they're all doing the lord's work πŸ‘‘


πŸ’œ DISCLAIMER πŸ’œ

this program is released into the public domain and neither the author nor the maintainer place any restrictions on its use. we make no warranties or guarantees for this program and you use it at your own risk.

this program is supplied by us personally and not by Hewlett-Packard Co. or Pine Tree Systems, which incur no obligations pertaining to it. so like, don't @ them, they're not involved ✨


🌈 ACKNOWLEDGEMENTS 🌈

many thanks to Andy Gryc for publishing the details of the database file formats! a real one, honestly 🫢


πŸŽ€ SEE ALSO πŸŽ€

gdbdump(1).


and that's the whole page bestie β€” written by Steve Roth et.al., from back in February 1996, which is lowkey ancient but the vibes are timeless. go forth and load your databases πŸ’…βœ¨

πŸ“¦ where this page comes from