如何使用文本文件作为本地数据库

How to use text file as local database

本文关键字:数据库 何使用 文本 文件      更新时间:2023-10-16

我有一个data_base.txt文件,其下一个结构是:

1|client_name|id_client|account_client|balance|status
2|client_name|id_client|account_client|balance|status

示例:

1|John Doe|08913835P|053-323-192|120.00|active

现在我想让接下来的四个函数与这个文件一起工作:

此功能将向.txt文件添加一个新客户端

int newClient(string client_name, string id_client)
{
.....
}

此功能将通过检查id_client来检查客户端是否存在

int checkClient(string id_client)
{
// return true; (if client with that ID exists)
// return false; (if client not exists)
}

此函数将获得一个特定值:

int getData(string field, string id_client)
{
// Example: if string field == 'balance' and id_client == '08913835P' then return '120.00'
// This example is done using above example data structure.
}

此功能将修改数据

int modifyData(string field, string data)
{
// This should work like the previous function but this function will edit specific values.
}

仅此而已,我已经在谷歌上搜索了几个小时,但我还不知道该怎么做。

如果做得不好,这是有问题的,而且效率非常低。

简单的答案是,如果每一行的长度都可以改变,那么你需要完全重写整个文件来更新数据。例如,如果您的程序将整个文件加载到内存中,然后在修改后将其保存,这将起作用。

要更新磁盘上的文件,必须强制执行某种类型的规则,例如每行的长度必须相同。这意味着为所有字段设置一个最大长度,并用空格或其他字符填充这些字段。

使用后一种技术,应该可以构造一行新的数据(带填充),知道该行在文件中的位置(行号-每行长度的1倍),跳到该位置,然后写入该行。

获取数据会更简单但相似。只需确定线条的偏移量并读取即可(您将知道线条的长度)。在呈现给用户之前,剥去任何填充物。

修改一行类似于获取数据和写入数据的组合。你只需要更新两者之间的数据。