Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用于MS-DOS的C语言数据库?_C_Dos - Fatal编程技术网

用于MS-DOS的C语言数据库?

用于MS-DOS的C语言数据库?,c,dos,C,Dos,要求: 我有一个CSV文件,最多可以包含2000条或更少的记录。 这里每条记录意味着一行。 每行由设备id、消费者名称和地址以及设备制造商组成。 每当列表中的任何消费者得到服务时,我都需要更新服务的时间戳 这些要求将在MS-DOS的ANSI C语言中实现,用于开发的IDE是Borland C 3.1 更新: 我不能更改平台或ide,因为这些要求被添加到与Borland c 3.1 ide有依赖关系的现有代码中 我不应该使用任何商业产品 两个或三个搜索键 4.我的终端设备的CPU规格为 处理器:英

要求: 我有一个CSV文件,最多可以包含2000条或更少的记录。 这里每条记录意味着一行。 每行由设备id、消费者名称和地址以及设备制造商组成。 每当列表中的任何消费者得到服务时,我都需要更新服务的时间戳

这些要求将在MS-DOS的ANSI C语言中实现,用于开发的IDE是Borland C 3.1

更新:

  • 我不能更改平台或ide,因为这些要求被添加到与Borland c 3.1 ide有依赖关系的现有代码中

  • 我不应该使用任何商业产品

  • 两个或三个搜索键

  • 4.我的终端设备的CPU规格为

    处理器:英特尔80C386 EX

    操作系统:/BIOS MS-DOS 6.22/BIOS


    内存:3.5 MB SRAM(高达16.5 MB)

    快速搜索似乎表明SQLite将作为MS-DOS上的库工作

    您不需要数据库库来处理带有四个字段的2000条记录。即使在拥有640K内存的8088 PC上,这些数据也可以通过C程序在内存中处理。因此,您应该能够轻松地将此数据加载到任何像样的DOS文本编辑器(如Qedit)中

    只需为记录分配一些
    struct
    s即可。一个包含大约2000个指向这些记录的指针的数组可以通过
    sqort
    创建一个排序索引,该索引可以
    bsearch
    -ed。您可以使用几个这样的数组在不同的字段上创建排序索引

    或者实现一些简单的散列

    但即使是通过不到2000条记录进行线性搜索也可能没问题

    你知道吗,一些8位微型计算机上的基本解释器使用链表线性搜索通过程序代码行来实现GOTO?向前转到(到大于当前行号的行号)将从当前行扫描;向后转到将从程序开始开始搜索。然而,数千行的程序运行良好


    选择“大”或“大”内存模型;数据不能全部放入64 kB的数据段。

    GoogledBase。我相信它是为C而存在的。只是澄清一下-您需要将现有的
    csv
    文件(
    comma-separated variable
    )转换为数据库,并使用C创建一个应用程序,特别是使用Borland。这些规格是否灵活?i、 e.你能接受一个最新的编译器(即至少符合C99、C11)吗?如果你在20年前问过这个问题,答案会很多。有Btrieve、Paradox、dBase、FoxBase和许多其他软件。现在,您可能可以找到其中一个,但我怀疑您是否能够获得新的许可证或支持。您需要多少不同的搜索键?我建议您使用类似
    “B树C库MS-DOS”
    “哈希表C库MS-DOS”
    的搜索词。据我所知,那个时代所有实际的数据库库都是商业性的。另外,对于您的应用程序,GPL软件可以吗?或者您是否需要对您发现的任何内容提供商业友好的许可证?(如果我认为你真的可以找到有人仍在向旧软件出售许可证,我建议你为Btrieve或其他东西购买许可证。)这将是一个32位版本,需要386或更高版本。OP指定了8086的要求。他说的你是对的。我假设他只是指x86处理器,但在本例中,这可能是无效的假设。聪明的人可能会将SQLite的有限功能版本移植到8086。但是,对于所描述的简单问题来说,这将比它的价值更麻烦。一个聪明的人会编写出一个只使用C库的ANSIC程序并完成它。小于2000条记录不需要SQ任何东西。