问题标签 [fseek]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
778 浏览

winapi - 快速访问大文件 - fseek ftell fsetpos fgetpos

我面临着提供对千兆字节文件中选定数据的某种快速访问。一旦我找到了起点,随后的访问将是连续的。这些文件在每条记录的前面都包含一个日期,并且该日期在整个文件中都会增加。我不想从头开始阅读文件而忽略前面的内容。我只对 WINDOWS 应用程序感兴趣。我想以文本模式打开文件。

我突然想到,我可以使用 64 位 fseek/ftell 或 fsetpos/fgetpos 函数进行某种二进制搜索。我意识到我可能会寻找换行符分隔记录的中间,但有人会认为您可以通过 fgets 调用简单地跳过任何部分记录。

fseek 提供了原始 SEEK_END 机制,因此似乎可以与 ftell 一起使用来确定文件大小。我没有看到与 fsetpos/fgetpos 类似的设施。如果您使用 fsetpos/fgetpos,将如何获得文件大小?

_fseeki64/_ftelli64 使用 int64 和 fsetpos/fgetpos 使用的 fpos_t 也是 int64 所以我应该能够对指针进行算术运算。

还是我在这里走错了路?我应该考虑其他方法吗?

0 投票
2 回答
5205 浏览

php - 使用 fseek 在最后一行之前插入字符串

我正在尝试为 blueimp.net 的 AjaxChat 编写一个非常基本的注册模块。我有一个写入用户配置文件的脚本。

但我需要它$addUser在最后一行之前插入,即?>

我将如何使用 fseek 完成此任务?

0 投票
3 回答
17820 浏览

c - Go to a certain point of a binary file in C (using fseek) and then reading from that location (using fread)

I am wondering if this is the best way to go about solving my problem.

I know the values for particular offsets of a binary file where the information I want is held...What I want to do is jump to the offsets and then read a certain amount of bytes, starting from that location.

After using google, I have come to the conclusion that my best bet is to use fseek() to move to the position of the offset, and then to use fread() to read an amount of bytes from that position.

Am I correct in thinking this? And if so, how is best to go about doing so? i.e. how to incorporate the two together.

If I am not correct, what would you suggest I do instead?

Many thanks in advance for your help.

Matt

Edit:

I followed a tutorial on fread() and adjusted it to the following:

So I used the file 'comm_array2.img' and read the first 10 characters from the file.

But from what I understand of it, this goes from start-of-file, I want to go from some-place-in-file (offset)

Is this making more sense?

Edit Number 2:

It appears that I was being a bit dim, and all that is needed (it would seem from my attempt) is to put the fseek() before the fread() that I have in the code above, and it seeks to that location and then reads from there.

0 投票
2 回答
596 浏览

c++ - 快速查找文件中的位置

我有一个包含大量数字的文件,每个数字用空格分隔。

如:124 1212 5 654 74231 ...

如何快速找到此文件中的第 N 个数字?

我认为fseek()可能不起作用,因为它是按字节衡量的,我可以通过以下方式获得第 N 个数字:

但我想可能有一些更有效的方法?

0 投票
4 回答
2537 浏览

c - 使用 fseek 和 fread

我正在从事一个从 bin 文件中读取数据并处理数据的项目。bin 文件很大,大约 150MB。我正在尝试使用 fseek 来跳过不需要的数据处理。

我想知道fseek的处理时间是否和fread一样。

谢谢!

0 投票
5 回答
4988 浏览

c - malloc 基于现有文件的文件缓冲区大小

在我的项目中,我需要将共享文件复制到一个名为 share 的目录中。我的想法是使用 fgets 和 fputs 复制此文件的包含:

但是,文件缓冲区不能被分配,这个文件缓冲区的大小总是4。发生了什么?

更新:似乎有一些误解。sizeof() 如果只是为了检查文件缓冲区中是否存储了任何东西。我确实尝试了 strlen(fileBuff),它总是给我 1。

0 投票
2 回答
2617 浏览

c - 如何使用C程序获取当前位置的字符?

我正在尝试编写一个 C 程序来获取文件中偏移一些字节的字符,让我们说三个如下

我希望打印该特定字节所代表的字符。例如,如果我的文件包含类似下面的内容,我需要每隔三个字符打印一次。

问题是使用while循环后我无法打印所需的结果。打印的第一个字符是第四个字符而不是第三个字符。

你能帮我理解这有什么错误吗?谢谢!

0 投票
1 回答
634 浏览

php - 为什么 PHP 文件处理程序不能正常工作?

我在“test.txt”文件中有这个内容:卢卡斯
我想在文件中寻找指针并覆盖前面的信息。假设我这样做:

这应该产生:oneas但执行的结果:lucasone

我对代码逻辑很着迷,甚至不起作用?

如何正确地做我想做的事?

0 投票
1 回答
11118 浏览

c++ - 当文件以“a”(附加)模式打开时,fseek 不起作用

成功返回:“someteis a”

不工作。返回“sometextis a”

任何想法为什么?解决方案是什么,以便第二个代码输出与第一个完全相同?

0 投票
4 回答
3100 浏览

php - PHP:从文件中的某个点读取

类似于:如何在 PHP 中只读取文本文件的最后 5 行?

我有一个很大的日志文件,我希望能够从文件中的位置 X 显示 100 行。我需要使用fseek而不是file()因为日志文件太大。

我有一个类似的功能,但它只会从文件末尾读取。如何修改它以便也可以指定起始位置?我还需要从文件末尾开始。

我要做的是创建一个基于 Web 的日志查看器,它将从文件末尾开始并显示 100 行,当按下“下一步”按钮时,将显示其前面的下 100 行。