问题标签 [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.
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 和我的)都按需要工作。
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 为“无错误”。
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
但是每当我编辑员工信息时,我都必须更新文件,我正在做的是我搜索该行并尝试重写它
我已经看到有同样问题的人的以下问题,但是当我尝试写入文件时,它总是写入文件末尾
这是我的代码:
c - fseek vs倒带?
我注意到有两种方法可以返回文件的开头
和
如果这些方法之间有什么区别?
c - 使用 fseek 读写文件,读取错误数据
我实际上想做的是创建一个二维数组,但它是在文件中而不是在主内存中。
为了跳过这个文件,我使用 fseek 然后 fread 将我需要的内容返回到我正在使用的结构中,问题是当我从结构中的文件中读取时,loadTile()
结构gameTile8File gtf
中充满了看似垃圾数据的内容。
请注意,在写入和读取之间,文件永远不会关闭或刷新,不要认为这应该有所作为。该文件是二进制文件,并且总是使用 options 打开"r+b"
。
我正在检查 上的返回值fseek()
,fread()
并且fwrite()
所有人都说没有问题。
perl - perl 文件读取、截断
我正在尝试修改配置文件。
我首先将它读入@buffer
,这取决于正则表达式匹配。修改后的缓冲区被写回到磁盘上,以防文件变小,截断完成。
不幸的是,这不起作用,它已经崩溃了fseek
,但据我所知,我对 fseek 的使用符合 perl doc。
c - ftello/fseeko vs fgetpos/fsetpos
ftello
/fseeko
和fgetpos
/和有什么不一样fsetpos
?两者似乎都是使用不透明偏移类型的文件指针获取/设置函数,有时允许 64 位偏移。
它们是否在不同的平台或不同的标准上得到支持?它使用的偏移类型是否更灵活?
而且,顺便说一句,我知道fgetpos/fsetpos 和 ftell/fseek 之间有什么区别,但这不是重复的。该问题询问有关 ftell/fseek 的问题,而答案不适用于 ftello/fseeko。
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 文件的顶部:
然后我尝试了这段代码,但它不起作用:
php - 如何使用 fopen 将数据写入文件的特定部分并将现有数据推送到文件中而不删除它?
正如标题所问,我如何使用 fopen 将数据写入文件的特定部分,同时将现有数据向下推而不擦除它。我已经将 fseek 与 SEEK_SET 和 SEEK_CUR 一起使用,到目前为止,我能够将新数据写入文件的正确部分,但是,现有数据的前几行被删除。
xslt - XML XSLT 结果文档 fseek
使用 XSLT 转换,我想将一个 XML 文件转换为一个 HTML 文件,该文件又代表另一个文件的各个块,并带有指向所代表文件的链接。
输入 XML 文件:
输出应该是一个 html 文件,该文件具有指向 foo.jpg 的有效链接,即,还有另一个名为“foo.jpg”的隐式输出文件,其中包含来自块中 cdata 部分的数据,位于它们指定的偏移量处。