問題タブ [tfilestream]
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.
delphi - 文字列からバッファへの余分なスペース void 型変換は Filestream.WriteBuffer メソッドで暗黙的に行われます
しばらくここに投稿する必要はありませんでしたが、ファイルストリームの実装に問題があります。文字列をファイル ストリームに書き込むと、結果のテキスト ファイルの各文字間に余分なスペースが挿入される
したがって、このメソッドを実行すると:
(これは、ヘッダーのみを書き込む、簡素化されたテスト メソッドです)。「OutPutFile」読み取りの結果のcsvファイル
'measuredmoduletemperature などは、ワードパッドで表示した場合は表示されますが、Excel やメモ帳などでは表示されません。Unicode コンテキストでは間違っている SizeOf(Char) ステートメントを推測していますが、何が正しいのかわかりませんここに挿入します。「ExportLogfile」は正常に機能しているようですが、「OutPutFile」は機能していません
私が他の場所で読んだことから、問題はワードパッドではなくユニコードで書かれていることです。 Unicode-to-files-and-console-vs-notepad-wordpad-word-etc?forum=vcgeneral
何か提案はありますか?どうもありがとう、ブライアン
file - Delphi: 空のテキスト ファイルを保存する TFileStream と TStringList
私は大学生 (英国) で、A2 コンピューティング プロジェクトに Delphi を使用しています。私は本当にあまり進んでいませんので、ご容赦ください!わかりました。TStringList を使用して、TMemoBox の内容を暗号化した後、テキスト ファイルに保存しています。ただし、暗号化を台無しにしたメッセージの後に TStringList が改行を表示しているため、これは不可能でした。TStringListとTFIleStreamの両方を使用してこれを削除するこの記事に従いましたが、完全なテキストファイルを提供する代わりに、結果は空です。データをまったく保存しないのではなく、データを保存するのを手伝っていただけませんか? どうもありがとう。これが私の手順の一部です。
delphi - TFileStream.Read がファイルの最後の部分を読み取らない
ループ内で TFileStream.Read を使用してテキスト ファイルを読み取っていますが、最後の部分がバッファに読み取られていないことがわかりました。ただし、読み取られる合計バイト数はファイル サイズと同じです。
これは私のコードです:
最後に、TMemo にはファイルの最後のチャンクは含まれませんが、最後から 2 番目のチャンクが含まれます。私のコードに何か問題がありますか?
前もって感謝します!
delphi - Delphi - tfilestream: 時刻と日付をファイルに書き込む
テキストの一部と発生した時刻と日付を含む各イベントの行を保存しようとしています。
問題は:
- 時刻は中国語フォントで表示されます
- 同じ行を何度も置き換えます
コードは次のとおりです。
ありがとうございました。
sockets - TServersocket から TidTcpClient にデータを送信する必要がある
モバイル アプリとデスクトップ アプリケーションの開発に Delphi XE8 を使用しています。モバイル アプリケーションでは TIDtcpClient コンポーネントを使用し、デスクトップ アプリケーション アプリケーションでは TServerSocket を使用しています。
サーバー デスクトップ アプリケーションには、約 1500 のレコードを含む TList が含まれています。Client Mobile アプリケーションでこれらの値を取得するために、次の方法を使用しています。
- まず、ダウンロード リクエストがクライアント モバイル アプリからサーバー アプリケーションに送信されます。
- 次に、10 件のレコードを取得し、クライアント モバイル アプリケーションに送り返します。この後、Client List の値を更新し、再びサーバー アプリにリクエストを送り返します。
- レコード数に達するまで、このプロセスが続行されます。
問題は、この方法に従っている場合、ほぼ 2 分かかり、すべてのデータを適切に取得していることです。そこで、ファイル ストリーム方式を使用することにしました。以下にサンプルコードを記載しました。
サーバー側アプリ:
クライアント側のモバイル アプリ:
上記の方法を使用していると、例外が発生し、データを取得できません。
サーバーからクライアントにデータをより速く取得するための解決策を教えてください。
delphi - Delphi 7: TFileStream からバイトのブロックを読み取り、TMemorySTream にコピーする
長さが数 GB になる MJPEG ファイルを作成する Delphi プログラムを作成しました。JPG は、DSPack を使用して DirectX カメラから取得されます。その部分は正常に機能し、次の形式で JPG 画像のファイルを作成します。
FF D8 ....(画像データ)... FF D9 FF D8 ....(画像データ)... FF D9 FF D8 etc
FF D8 は JPG の開始を示し、FF D9 は終了を示します。各 JPG のサイズは約 21KB です。
今、私は一致する MJPEG プレーヤーを作成しようとしています。
フォームの FormCreate プロシージャで、FileStream を作成し、正常に動作する最初の JPG を表示します。
FileStream を開いたままにしておくと、できればその Position ポインターが保持されます。フォームにボタンがあり、一度に 1 つの JPG をジョグすることを意図していますが、最初の「ジョグ」は 1 つの JPG を進めますが、その後のジョグはランダムな回数だけ進みます。手順は次のとおりです。
サードパーティの MJPEG プレーヤーで確認したところ、フレームごとにジョグできるので、MJPEG ファイルは問題ないことがわかりました。私の手順がフレームごとに均一に進んでいない理由についての提案をいただければ幸いです。
ありがとう、ジョン。
multithreading - 順次マルチスレッド
次のコードのマルチスレッド プロシージャをビルドしたいのですが、正しくビルドできません。Semaphore を使用してコードを順次完成させようとしましたが、 elsemyStream2.CopyFrom(myStream1, StrToInt64('$' + SL1[(i - 1)]));
部分の下にある部分しか実行しませんでした。問題は、これらのストリームを出力ファイルストリーム (mystream2) に無計画に復元すると、ファイルが破損することです。
誰でも私を助けてください。