问题标签 [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 投票
2 回答
3975 浏览

php - 如何将文件指针移动到php中的上一行?

有问题的文本文件名为 fp.txt,每行包含 01、02、03、04、05、...10。

代码:

所以,因为 fseek($fp, -1024, SEEK_CUR); 无法正常工作。我想要的是如果 Dice == 1,将文件指针设置为上一行,即比当前行高一行。但我认为负值是将文件指针设置为文件结尾,从而在文件实际结尾之前结束 while 循环。

期望的输出是:

请注意,只要 dice 为 2,则文本与前一个相同。现在它只是在第一次出现 Dice=1 时停止

所以基本上我的问题是如何将文件指针移动/重新定位到上一行?

请注意 dice=rand(1,2) 只是示例。在实际代码中,$text 是一个字符串,当字符串不包含特定文本时 if 条件为真。

编辑:已解决,两个样本(@hakre 和我的)都按需要工作。

0 投票
2 回答
1258 浏览

c - 调用 read() 返回 0 但缓冲区发生了变化,调用 fread() 读取相同的偏移量时没有发生

如果我通过像这样调用 read() 来读取文件:

read() 返回 0,但“buf”的内存已更改(不再为 0)。如果我尝试使用 fread() 读取相同的偏移量和相同的文件,如下所示:

fread() 也返回 0,但 buf 和以前一样。

如果 read() 失败,为什么它会改变“buf”的内存空间?还是我犯了一些错误?

感谢帮助 : )

编辑:每次我运行上面的代码时, read() 以相同的方式更改“buf” -> 从 0 到相同的值。所以改变的“buf”可能不是随机值

编辑2:偏移参数是有效的(感谢twalberg),如果我读取另一个有效的偏移量,read()和fread()都会成功,“buf”的结果是一样的。当 read() 失败时,有什么方法可以找出问题所在?当 read() 返回 0 时,errno 为“无错误”。

0 投票
3 回答
6701 浏览

c - 覆盖到c中的特定行

我在我的程序中生成了一个大约 2000 行文本的文件,每一行都有一个员工的信息,它的输出是这样的

1 1 ISAAC FONECA 58 C 1600 1310.40 6 1 0.22 2164.80 1
2 1 Manuel Gutierrez 22 D 1700 1523.37 4 1 0.13 897.26 1
3 1 Daniel Bernal 34 C 1600 1195.84 2 1 0.26 836.16 1
4 1 Miguel Gonzalez 43 E 1800 1195.84 0 1 0.15 0.00 1

但是每当我编辑员工信息时,我都必须更新文件,我正在做的是我搜索该行并尝试重写它

我已经看到有同样问题的人的以下问题,但是当我尝试写入文件时,它总是写入文件末尾

覆盖文本文件上的特定行?

这是我的代码:

0 投票
2 回答
12056 浏览

c - fseek vs倒带?

我注意到有两种方法可以返回文件的开头

如果这些方法之间有什么区别?

0 投票
1 回答
750 浏览

c - 使用 fseek 读写文件,读取错误数据

我实际上想做的是创建一个二维数组,但它是在文件中而不是在主内存中。

为了跳过这个文件,我使用 fseek 然后 fread 将我需要的内容返回到我正在使用的结构中,问题是当我从结构中的文件中读取时,loadTile()结构gameTile8File gtf中充满了看似垃圾数据的内容。

请注意,在写入和读取之间,文件永远不会关闭或刷新,不要认为这应该有所作为。该文件是二进制文件,并且总是使用 options 打开"r+b"

我正在检查 上的返回值fseek()fread()并且fwrite()所有人都说没有问题。

0 投票
3 回答
3329 浏览

perl - perl 文件读取、截断

我正在尝试修改配置文件。

我首先将它读入@buffer,这取决于正则表达式匹配。修改后的缓冲区被写回到磁盘上,以防文件变小,截断完成。

不幸的是,这不起作用,它已经崩溃了fseek,但据我所知,我对 fseek 的使用符合 perl doc。

0 投票
1 回答
3428 浏览

c - ftello/fseeko vs fgetpos/fsetpos

ftello/fseekofgetpos/和有什么不一样fsetpos?两者似乎都是使用不透明偏移类型的文件指针获取/设置函数,有时允许 64 位偏移。

它们是否在不同的平台或不同的标准上得到支持?它使用的偏移类型是否更灵活?

而且,顺便说一句,我知道fgetpos/fsetpos 和 ftell/fseek 之间有什么区别,但这不是重复的。该问题询问有关 ftell/fseek 的问题,而答案不适用于 ftello/fseeko。

0 投票
1 回答
259 浏览

php - 如何将新的 RSS 项目行写到顶部

我将一些代码拼凑在一起,它可能可以写得更好——但它确实有效,而且我学会了不要对函数式代码挑剔。无论如何,我这里有一些代码会自动更新 sitemap.xml 文件和“问题——我在这里发布问题的原因”一个 RSS 提要文件。

写入 sitemap.xml 文件效果很好!我很满意。这很容易,因为它在文件底部写入新数据并通过写入</urlset>.

但是,对于 rss 提要文件,我需要将新项目放在顶部。我似乎无法弄清楚如何做到这一点。所以,这里附上我的代码的当前副本。基本上,标题为 RSS FEED WRITER 的第二部分是标题为 SITEMAP.XML WRITER 的第一部分的副本。我需要如何将代码更改为第二部分,以便将新项目直接写入此行下方的顶部:<atom:link href="http://mydomainname.com/index.rss" rel="self" type="application/rss+xml" />在 index.rss 文件上。

非常感谢任何愿意帮助我的人。下面是代码:

编辑:添加 index.rss 文件的顶部:

然后我尝试了这段代码,但它不起作用:

0 投票
2 回答
364 浏览

php - 如何使用 fopen 将数据写入文件的特定部分并将现有数据推送到文件中而不删除它?

正如标题所问,我如何使用 fopen 将数据写入文件的特定部分,同时将现有数据向下推而不擦除它。我已经将 fseek 与 SEEK_SET 和 SEEK_CUR 一起使用,到目前为止,我能够将新数据写入文件的正确部分,但是,现有数据的前几行被删除。

0 投票
1 回答
357 浏览

xslt - XML XSLT 结果文档 fseek

使用 XSLT 转换,我想将一个 XML 文件转换为一个 HTML 文件,该文件又代表另一个文件的各个块,并带有指向所代表文件的链接。

输入 XML 文件:

输出应该是一个 html 文件,该文件具有指向 foo.jpg 的有效链接,即,还有另一个名为“foo.jpg”的隐式输出文件,其中包含来自块中 cdata 部分的数据,位于它们指定的偏移量处。

相关问题