問題タブ [seek]
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.
java - ランダム アクセスによるネットワーク経由でのファイルのストリーミング - Java
そのため、Java クライアント アプリで、ネットワーク上のサーバーから音楽ファイルを再生する必要がありました。私はソケットを考えていました-サーバーに音楽ファイルをストリームとして開き、クライアントにそれに接続させて、それを読み込んでInputStreamとして再生させます。どちらが機能しますか-ソケットストリームがそれをどのようにサポートできるかがわからないため、AFAICSユーザーがファイルをシークできないことを除いて(現在、ローカルファイルに対して可能です)。
より良いアイデアはありますか?または、ソケットを使用してシークする方法はありますか?
JNI? それが役立つかどうかを知るには、私はそれについて十分に知りません。
(完全に不自由な) 最後の手段は、マップされたネットワーク ドライブを使用することです。
.net - シークとロックをサポートする http ベースのファイルシステム
ファイル システムのような Web サーバーを使用する必要があるアプリケーションを構築しています。具体的には、理想的なソリューションは次のようになります。
- HTTP を介して、1 つのファイルを開く (ロックする)、読み取る、書き込む、検索する、および切り詰めることができるサーバー側コンポーネント。複数のファイルを同時にロックできるようにする必要があります。これは、標準的な Web ホストで実行する必要があるため、サーバー側のスクリプト (Web サービス、PHP など) を使用して、IIS または Apache 上で実行する必要があります。
- これに URI を渡すクライアント インターフェイスで、開いてファイルのように動作します。私のクライアント アプリは .NET にあるため、クライアント API は FileSteam サブクラスを実装するのが理想的です。
これが必要な理由は、Web ホストに配置されるかなり大きなファイルがあるためです。ファイルの一部を (シークを使用して) 読み取り、切り捨て、末尾に追加する必要があります。ファイル全体をダウンロードおよびアップロードすると、帯域幅が大量に消費されます。また、複数のファイルを同時にロックする必要があります。
私の質問:
- そのようなものは存在しますか?
- そうでない場合、なぜですか?とても便利なサービスだと思いませんか?
このようなコンポーネントを使用すると、あらゆる Web ホスティング会社をネットワーク ファイル サーバーとして使用できるようになります。便利そうですよね?
ご協力いただきありがとうございます!
エリック
database - 配列/順序付きルックアップデータベースとは何ですか?
次の機能をサポートするデータベースを探しています。
1)データベース内のレコードは、Python辞書やPerlハッシュのようなものです。たとえば、「購入」レコードは次のようになります。
2)レコードは可変長の配列に格納されます。データベースには、これらのアレイが多数含まれています。たとえば、購入テーブルは次のようになります。
3)このデータベースで2種類のクエリを実行できるようにしたい:
3a)さまざまな基準に一致するレコードの数を数えます。たとえば、50を超える値で何回購入されましたか?私はこれをサポートするデータベースをたくさん知っています。
3b)レコードが特定の順序で表示される回数をカウントします。たとえば、50を超える購入が行われた後、「Springfield」で購入されたアレイはいくつありますか。これを行うためにどのような種類のデータベースを使用するかわかりません。
編集:Steve Haighへの応答:速度が重要であり、このデータベースはギガバイトのデータをサポートする必要があることを述べておかなければなりません。たとえば、1,000,000,000の購入アレイがあり、「Springfield」で購入した後、「Hometown」で購入したアレイの数を数えたいと思います(順序が重要であることに注意してください)。私は間違っているかもしれませんが、リレーショナルDBはこの目的には遅すぎると思います。
delphi - Delphi は次の行を読み込んで置換します
多くのエントリを持つテキスト ファイルをインポートするプログラムがあります。
... 等々
「Data:」の後に終了時刻を設定したいわけではありません。これは次の starttime -1 です。
... 等々
c# - .NET の CryptoStream に代わるシーク可能な代替手段はありますか?
.NET の CryptoStream に代わるシーク可能な方法を知っている人はいますか?
代替が「読み取り」モードでのみシークをサポートする場合、または AES256 などに制限されている場合は問題ありません。
php - PHP: SeekableIterator::seek()
SeekableIterator インターフェイスを完成させるために seek() を実装したい場合、シークされた位置が無効な場合、内部的に古い位置に戻す必要がありますか? このような:
c++ - CFile Seek に関する質問
MFC CFile Seek 関数を使用しています。ファイルの長さを超えるシークについて問題があります。
MSDN: 備考
Seek 関数は、ポインタを絶対的または相対的に指定した量だけ移動することにより、ファイルの内容へのランダム アクセスを許可します。シーク中に実際に読み取られるデータはありません。要求された位置がファイルのサイズよりも大きい場合、ファイルの長さはその位置まで拡張され、例外はスローされません。
MSDN によると、ファイルの長さは拡張されます。ただし、 の後cfile.Close()
、ファイルは同じままです。なぜですか?どうもありがとうございました!
python - PythonでUTF-8でエンコードされたドキュメントを検索して処理を指示できますか?
500MBを超える大きなログファイルを生成するアプリケーションがあります。
私はPythonでいくつかのユーティリティを作成しました。これにより、ログファイルをすばやく参照して、目的のデータを見つけることができます。しかし、ファイルが大きすぎてすべてをメモリにロードできないデータセットを取得するようになりました。
したがって、ドキュメントを1回スキャンし、インデックスを作成してから、一度に確認するドキュメントのセクションのみをメモリにロードします。
これは、「ファイル」を開いて一度に1行ずつ読み取り、from file.tell()でオフセットを保存するときに機能します。その後、file.seek(offset、0)を使用して、ファイルのそのセクションに戻ることができます。
ただし、私の問題は、ログファイルにUTF-8が含まれている可能性があるため、コーデックモジュール(codecs.open(<filename>, 'r', 'utf-8')
)で開く必要があることです。結果のオブジェクトを使用して、seekとtellを呼び出すことができますが、それらは一致しません。
コーデックは何らかのバッファリングを行う必要があると思いますか、それとも、tellからのバイトではなく文字数を返すのでしょうか?
これを回避する方法はありますか?
python - ファイル内で指定された位置で文字列を置き換える
'ab+'モードでファイルを開いています。
私がする必要があるのは、ファイル内のいくつかのバイトを次のような別の文字列のバイトに置き換えることです。
ファイル:
ストリング:
したがって、たとえば、位置(4、0)を探し、ファイルの「issom」の代わりに01234を書き込みたいと思います。最終的な外観は次のようになります。
this01234ethingasperfectlygood
。
ネット上にはいくつかの解決策がありますが、それらはすべて(少なくとも私が見つけたもの)は「最初にファイル内の文字列を見つけてから別の文字列に置き換える」ことに基づいています。私のケースはシークに基づいているので、解決策について混乱しています。
linux - ファイルのシーク位置に関する質問
前回の質問は生データの読み書きについてですが、新たな問題が発生しました。
lseek()
問題は、 orのような関数のパラメータfseek()
がすべて 4 バイトであることです。4G でスパンを移動したい場合、それは不可能です。私はWin32で関数があることを知っていますSetPointer(...,Hign, Low,....)
。このポインターは64バイトのポインターを生成できます。これは私が望むものです。
しかし、Linux または Unix でアプリを作成したい場合 (ファイルを作成するか、未加工のドライブ セクターに直接書き込みます)、どうすれば 4G 経由でポインターに移動できますか?
ありがとう、あなたの返事を待っています...