-
Data Storage Method
I am writing a program to test/increase a user's vocabulary in a foreign language. I eventually want to provide edit functionality (users can add new words) and "plug-in" functionality for additional dictionaries but v1.0 will only have a single static language dictionary.
What is the best method to store and retrieve data? The data stored will be "word pairs."
Example (English <-> Japanese):
one:ichi
two:ni
three:san
Since the user has an option to repeat wrong answers, I have chosen a linked list style to manage the word pairs.
Code:
struct node {
char* english;
char* japanese;
struct node* next;
}
However, I need a method of "storing" the dictionary. Is it most efficient to store it as a text file? I would prefer the list to be encrypted or otherwise stored so that a user can't freely edit the dictionary with a text editor. Should I store the words in the source code somehow? If so, what is the best way to do this?
Long term, I need to be able to store UTF-8 code for foreign language characters such as SHIFT-JIS, for example, for Japanese.
-
A balanced tree, or a hash would be preferable to a linked list.
As for encrypting the input file, the key would need to be stored somewhere. Yes, you'll stop the casual reader, but if someone wants it bad enough, they'll probably get it.