問題タブ [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); のためです。正常に動作していません。私が欲しいのは、ダイス== 1の場合、ファイルポインタを前の行、つまり現在の行より1行上に設定することです。しかし、負の値はファイルポインターをファイルの終わりに設定しているため、実際のファイルの終わりの前にwhileループを終了していると思います。
望ましい出力は次のとおりです。
サイコロが 2 の場合、テキストは前のものと同じであることに注意してください。Dice=1 が最初に出現した時点で停止しています。
基本的に私の質問は、ファイルポインタを前の行に移動/再配置する方法ですか?
dice=rand(1,2) は単なる例であることに注意してください。実際のコードでは、$text は文字列であり、文字列に特定のテキストが含まれていない場合に if condition が true になります。
編集: 解決済み。両方のサンプル (@hakre と私のもの) が希望どおりに機能しています。
c - read() を呼び出すと 0 が返されますが、バッファが変更されました。同じオフセットを読み取るために fread() を呼び出しても発生しませんでした。
次のように read() を呼び出してファイルを読み取った場合:
read() は 0 を返しますが、"buf" のメモリは変更されています (もう 0 ではありません)。そして、次のように fread() で同じオフセットと同じファイルを読み取ろうとした場合:
fread() も 0 を返しますが、buf は以前と同じです。
read() が失敗した場合、「buf」のメモリ空間を変更するのはなぜですか? それとも私はいくつかの間違いを犯しましたか?
手伝ってくれてありがとう : )
編集: 上記のコードを実行するたびに、「buf」は read() によって同じように変更されました-> 0 から同じ値に。したがって、変更された「buf」はランダムな値ではない可能性がありますか?
編集2:オフセットパラメータは有効です(twalbergに感謝します)。別の有効なオフセットを読み取ると、read()とfread()の両方が成功し、「buf」の結果は同じになります。read() が失敗したときに何が問題なのかを見つける方法はありますか? read() が 0 を返した場合、errno は「エラーなし」です。
c - cの特定の行に上書きする
プログラムで生成する約2000行のテキストのファイルがあり、すべての行に従業員の情報があり、次のように出力されます
1 1 ISAAC FONSECA 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 0.00 1
しかし、従業員情報を編集するたびにファイルを更新する必要があり、行を検索して書き直そうとしています。
同じ問題を抱えている人の次の質問を見たことがありますが、ファイルに書き込もうとすると、常にファイルの最後に書き込まれます
これが私のコードです:
c - fseekと巻き戻し?
ファイルの先頭に戻るには 2 つの方法があることに気付きました
と
これらの方法の間に違いがある場合はどうなりますか?
c - fseek を使用したファイルの読み取りと書き込み、読み取り時に間違ったデータ
私が本質的にやろうとしているのは、2D 配列を作成することですが、それはメイン メモリではなくファイルにあります。
このファイルをジャンプするために、fseek を使用してから fread を使用して、使用している構造に必要なものを返します。問題はloadTile()
、構造内のファイルから読み取ると、gameTile8File gtf
ジャンク データのように見えるものがいっぱいになることです。
書き込みと読み取りの間で、ファイルが閉じられたりフラッシュされたりすることは決してないことに注意してください。それが違いを生むとは思わないでください。ファイルはバイナリで、常に options で開かれます"r+b"
。
の戻り値を確認していますがfseek()
、全員が問題ないfread()
とfwrite()
言っています。
perl - perlファイルの読み取り、切り捨て
設定ファイルを変更しようとしています。
@buffer
正規表現の一致に応じて、最初にそれをに読み込みます。変更されたバッファはディスクに書き戻され、ファイルが小さくなった場合は切り捨てが行われます。
残念ながら、これは機能せず、すでにでクラッシュしfseek
ますが、私が言える限り、fseekの使用法はperldocに準拠しています。
c - ftello/fseeko 対 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 というタイトルの 2 番目のセクションは、SITEMAP.XML WRITER というタイトルの最初のセクションの複製です。この行のすぐ下の上部に新しい項目を書き込むために、コードを 2 番目のセクションに変更する必要がある方法: <atom:link href="http://mydomainname.com/index.rss" rel="self" type="application/rss+xml" />
index.rss ファイル。
私を助けてくれる人には本当に感謝しています。以下にコードを示します。
編集: index.rss ファイルの上部を追加:
次に、このコードを試しましたが、機能しません:
php - fopen を使用してファイルの特定のセクションにデータを書き込み、既存のデータを削除せずにファイルにプッシュする方法は?
タイトルが尋ねるように、既存のデータを消去せずに押し下げながら、fopen を使用してファイルの特定のセクションにデータを書き込むにはどうすればよいですか。SEEK_SET および SEEK_CUR と共に fseek を使用しましたが、これまでのところ、新しいデータをファイルの正しいセクションに書き込むことができますが、既存のデータの最初の数行が削除されます。
xslt - XML XSLT Result-Document fseek
XSLT 変換を使用して、別のファイルのさまざまなチャンクを表す XML ファイルを、表されたファイルへのリンクを含む HTML ファイルに変換したいと考えています。
入力 XML ファイル:
出力は、foo.jpg への有効なリンクを持つ html ファイルである必要があります。つまり、指定されたオフセットで、チャンク内の cdata セクションからのデータを含む "foo.jpg" という別の暗黙的な出力ファイルがあります。