2

Memo/RichEdit の類似物があるかどうか知っている人はいますか? 要求: 行に番号を付ける、ストリームから大きなファイル (5 MB 以上) をロードする。

4

6 に答える 6

3

Developer Expressには、Memo の置き換え (TcxMemo) や RTF 編集 (ただし、機能セットについてはわかりません) など、VCL コンポーネントの広範なセットがあります。

于 2011-06-08T20:18:22.333 に答える
3

TMS Softwareには、多くの構文ハイライターを備えた非常に優れた TAdvMemo があります。また、TRichEdit の「置換」もあります。構文の強調表示に加えて、メモは行番号をサポートしています。大きなファイルについてはわかりませんが、5MB は、c/ の制限に近いとは思えません。

TRichViewは、大きな機能セットを備えたもう 1 つの強く推奨される TRichEdit の代替品です。

于 2011-06-08T20:33:28.287 に答える
1

当社のSynMemoEx コンポーネントは、軽量で高速になるように設計されています。ワード ラップを含め、50 MB のテキスト コンテンツを問題なく読み込んで処理します。

ただし、これは 2007 年までの Delphi 6 のみを対象としています (まだユニコードではありません)。しかし、それは無料でオープンソースです。

SynProject ツールでこのコンポーネントを使用して、ファイルのバージョン表示とドキュメントの編集の両方を行います。そして、.pas .c .cs .h .xml .html .dfm ファイル(およびその他) を強調表示しました。

行番号付け、およびその他の優れた機能があります。ここからいくつかのスクリーンショットを参照してください。

于 2011-06-09T06:33:45.690 に答える
0

TRichViewは、ハイパーテキスト ドキュメントの表示、編集、および印刷用に特別に設計された一般的なコンポーネントです。WYSIWYG 編集を提供する TRichView アドオンもあります。Unicode、RTF インポートとエクスポート、HTML エクスポート、データ対応バージョンなどがあります。

家系図プログラムのメイン コンポーネントとして使用し、非常に大きなファイル (100 MB 以上など) をロードするために使用しました。ストリームとの間で直接読み書きできます。

于 2011-06-09T02:43:58.670 に答える
0

キラー コンポーネント: Synedit - http://sourceforge.net/apps/mediawiki/synedit/index.php?title=SynEdit_Home_Page

見てみな :)

于 2011-06-10T00:28:55.357 に答える
0

TMemo のように見えるコンテンツをリンクできるコンポーネントはありますか?

必要(できる必要があると考えてください):

  • それらのうちの2つをTSplitterで挟みます
  • コンテンツを 1 回だけロードし、両方に表示します (2 つの部分を同時に表示できるようにするため)。すべてのコンテンツを RAM にコピーする必要がある TMemo とは異なります。
  • 100MiB TXT プレーン テキスト ファイルを 1 秒未満でロードする時間 (読み取りメディアからの I/O 時間を除く)。つまり、RAM にデータがあり、両方に 1 秒未満で表示したい場合などです。
  • アプリケーションは実行可能である必要があり (したがって、分離された dll を必要とするコンポーネントはありません。実行時に dll を inyect して実行時に抽出する方法を知っています)、フォレンジックな方法で読み取り専用メディアから実行する必要があります (どこにも書き込みません)。

募集:

  • 32Bits システムでは 3GiB に限定されません (醜い RAM デマンド TMemo のようにファイル全体が一度にロードされるのではなく、一部のみが表示されます)
  • Unicode および UTF-8/UTF-16 (BOM ヘッダーあり/なし) など
  • テキストを表示するフォントを選択します。すべてのフォントに対して等幅または通常のブール値を選択できればより良いでしょう
  • 行の長さに制限はありません (TMemo は 1 行あたり 4KiB-1 に制限されています)、100 万文字を超える行がある場合は、適切なスクロール バー スクロールなどで 1 行で表示します。

必要ありません:

  • シンタックス、色など...プレーンテキストのみ
  • WordWrap (各行は行です)

わかりました、私は何を装っていますか?簡単な答え: プレーン テキスト ファイルの同時リンク ビュー。

もう少し説明しました:

  • ユーザーが「セパレーター」を追加できる GUI があるとします。
  • 各セパレーターは、ビュー (ファイルではなく) を 2 つの部分に分割します...したがって、N 個のセパレーターがある場合、ファイルの N+1 個の部分を同時に表示できます
  • 各ビューには独自の垂直スクロール バーがありますが、水平スクロール バーはすべてのビューに 1 つしかありません (スクロールすると、すべてのビューが水平方向に同期されます)。
  • そのため、ユーザーは 1 つのビューで最初の行を表示しながら、毎回上下にスクロールする必要なく、他の部分を同時に見ることができます。

なんで?簡単な答え: ファイルが 100 万行以上のログであると想像してください... 再び履歴ログのようなものだと想像してください... ユーザーは、X 日、Y 日、および # 日という数行を見たいと考えています。などを同時に(比較するため、または何らかの理由で)。

TMemo でそれを行う場合は、それらすべてにすべてのデータをコピーする必要があります...また、32 ビット アプリは、32 ビット プロセッサでは 2GiB の RAM に制限され、64 ビット プロセッサでは 3GiB の RAM に制限されます (特別な指令)。

アプリは、異なるバージョンをコンパイルする必要なく、32 ビット プロセッサと 64 ビット プロセッサの両方で実行する必要があることを忘れないでください。また、RunAble である必要があり、実行時に (どこにでも) 書き込む必要はありません (フォレンジック スタイル)。

私はそれを作成する可能な方法を考えました... TStringListに基づいていますが、やはり私は非常に限られています...そしてそれはゼロからの作業です。

大きなファイルをロードせずに表示できるアプリをいくつか見たので、そこにコンポーネントがあるのか​​もしれませんが、それらはすべてゼロから独自の実装を持っていますか? または、私が知らないコンポーネントを使用していますか?それらのほとんどは、大きなバイナリ ファイルを 16 進数で編集するためのものであり、多くの GiB のファイルを編集できるものもあれば、保存するまで非常に高速に挿入および削除できるものもいくつかあります (保留中の挿入/削除操作の実行中にファイル全体をコピーするための I/O には、1 時間以上の非常に長い時間がかかる場合がありますが、画面上での挿入/削除の実行は非常に高速で、10 分の 1 秒未満です)。

次のようなコンポーネントが見つかった場合は、やりたいことをすべて実行できます。

  • TMemoに似てる
  • コードにより、選択したテキスト選択に触れることなく、垂直および水平スクロールをシミュレートできます (小さな TPanel コンテナーでスクロールバーを非表示にできるため、コントロールでスクロールバーを非表示にする必要はありません)
  • 非常に重要: ファイル全体をロードしないでください (表示されている部分のみを読み取ってください)。
  • LoadFromFile を持っています (ただし、実際にはファイル全体をロードするのではなく、ファイル参照を内部的に保存するだけです)
  • 必要ではないが望ましい: ユーザーは TMemo のように編集できる
  • 必要ではないが望ましい: ユーザーの変更を保存するための SaveToFile を用意する

誰かいる?

追加: 無料 (あらゆる用途) であり、オープンソースは必須です。

于 2017-04-25T07:23:34.580 に答える