Winapi 在win32中读取文件

Winapi 在win32中读取文件,winapi,low-memory,retro-computing,Winapi,Low Memory,Retro Computing,我正在用win32编写一个老式的mmorpg(它应该在非常旧的机器上运行),我想读取一个可以是ASCII或Unicode(很少)的文件,并计算其中的行数。由于这些机器的内存非常非常低,我无法在RAM中同时保留超过4KB的内存 有什么想法吗? 谢谢一次读一小段文件,比如说是内存预算的十分之一。计算每个块中的行尾数 您面临的唯一真正的问题是,您需要处理从一个块的末尾到下一个块的开头的cr+lf对 顺便说一句,你的意思肯定是4MB而不是4KB?只是想提出一些不同的建议 type foo.txt|fin

我正在用win32编写一个老式的mmorpg(它应该在非常旧的机器上运行),我想读取一个可以是ASCII或Unicode(很少)的文件,并计算其中的行数。由于这些机器的内存非常非常低,我无法在RAM中同时保留超过4KB的内存

有什么想法吗?
谢谢

一次读一小段文件,比如说是内存预算的十分之一。计算每个块中的行尾数

您面临的唯一真正的问题是,您需要处理从一个块的末尾到下一个块的开头的cr+lf对


顺便说一句,你的意思肯定是4MB而不是4KB?

只是想提出一些不同的建议

type foo.txt|find /C /V "~`!@#$%^&*()_+"
或者真的只是下面我想。。。有一段时间了

find /C /V "" foo.txt

甚至可以忽略除返回车厢和换行(取决于行尾约定)之外的所有内容,在文件中达到峰值。这样做实际上速度很快,而且占用空间几乎可以忽略不计。@Mike这正是我的建议。当他说他只能在内存中存储大约4KB时,读取128KB难道不会有问题吗?“我只是想知道。”迈克,我想他是指MB。什么版本的Windows不能处理4KB的内存?我猜这是一台非常旧的计算机,否则我会被难倒。你只需要有足够的存储空间来存储文件中的一行。即使你只需要数数行,也不行。只需使用fgets()函数。继续调用它,直到它返回NULL。检查返回的字符串的
\n
在结尾处,看到行计数器时增加行计数器。这是客户端还是服务器?当然,如果没有相对庞大的资源,你不可能制作一个“大规模多人”游戏。