問題タブ [tdictionary]

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.

0 投票する
1 に答える
3489 参照

delphi - TDictionary 重複エントリ (Delphi)

次の値を追加しようとしています

これが重複していることはわかっていますが、2 番目のオレンジ色を見ると、最後にスペースがあることがわかります。Delphiは値をトリムすると思いますが、そうすべきではありません。

誰もこの問題の解決策を知っていますか?

ありがとう、

0 投票する
2 に答える
1538 参照

delphi - コンマ区切りの文字列ペアのリストから TDictionay を埋めるにはどうすればよいですか?

文字列のリストを含むテキスト ファイル (たとえば、自動置換に使用できるキーと値で区切られたカンマなど) を作成し、各キーと値のペアをTDictionary<string, string>. ディクショナリにデータを入力するにはどうすればよいですか?

0 投票する
1 に答える
3373 参照

delphi - TDictionary をファイルに保存

たくさんのファイル (約 160 000) があり、ファイル (フルテキスト) 内の個々の単語の位置に関する情報が必要です。だから私はこのように辞書を使用しました:

これで、WORD1 が FILE1、FILE3、および FILE100 にあり、各ファイルの位置が <1,3,5>、<2,8,35> などであることがわかりました。入力できます。使用できます。非常に高速です。しかし、辞書をファイルに効果的に保存する方法がわかりません。

編集:効果的に-私はファイルのサイズが速くて小さいことを意味します

0 投票する
1 に答える
885 参照

delphi - リンカーによって削除された TDictionary の GetItem

TDictionaryのを使用してい<string, string>ます。しかし、何らかの理由で、リンカは私がそこから項目を取得したくないと判断しました。

次のコードがあります。

FFieldNamesですTDictionary<string, string>。2 行目 ( if FFieldNames[Field] = '' then) で、「ファイルが見つかりません」という例外がスローされます。FFieldNames[Field]ウォッチに追加すると、呼び出される関数 {System.Generics.Collections}TDictionary.GetItem が linker によって削除されたことがわかります

デバッグ中にリンカーが機能を削除しないようにする方法について、同様の問題について誰かがここで尋ねました。このことから、コンパイラ/リンカーは私がそれを使用していないと想定していることを収集しました。誰かが、会話中に、もっと使ってみるべきだと提案しました。

そこで、次のコードを作成しました。

SNameおよびVは文字列です。FFieldNamesこれは、データが入力され ているコードからのものです。Vの唯一の目的は、挿入されたばかりのものを取得することSです。他には何もしません。

奇妙なことに、デバッガーは同じこと (つまりGetItem、削除された) を教えてくれますVが、期待値に設定されます。しかし、それは私の機能ではありませんTSheet.GetFieldName。:|

私は何が欠けていますか?

0 投票する
1 に答える
481 参照

delphi - 配列にソートした後に TDictionary を破棄する正しい方法

私はTDictionaryのようなものを持っています

データを入力したら、結果を並べ替える必要があります。こんな感じでやってます

それはすべて期待どおりに機能しています。私の質問は、リークなしで TDictionary と TArray を破棄するにはどうすればよいですか? 現在、私はちょうどやっています

0 投票する
1 に答える
3967 参照

delphi - Delphi のクラス フィールド(静的フィールド)

クラス TPerson があります。FSecondName は各オブジェクトに固有であることが知られています。

クラス フィールド (C# の静的フィールドなど) を追加するにはどうすればよいですか。

ありがとう!

0 投票する
1 に答える
1105 参照

delphi - TDictionary アイテムへのアクセス

embarcadero サンプルを使用して TDictionary をテストしています ( http://docwiki.embarcadero.com/CodeExamples/XE5/en/Generics_Collections_TDictionary_%28Delphi%29 )

キーと値の作成と追加に問題はありません。ただし、キー値「London」を使用してテーブルにアクセスしようとすると:

(1) Dictionary.Items['London'].Country -> 正しい値 "Dictionary.Items['London'].Country' を与える

(2) Edit1.Text に 'London' と入力し、Dictionary.Items[Edit1.Text].Country -> 「アイテムが見つかりません」というエラーが表示されますか?

誰かがこれを説明できますか?

前もって感謝します。

////////////////////////////////////////// ///サンプルコード

0 投票する
1 に答える
1092 参照

class - Delphi - TDictionary でのメモリ割り当てについて混乱しています

Delphi XE6 には、TWordRec のインスタンスを保持する WordDict という TDictionary があります。定義は次のとおりです。

辞書を作成してロードすると....

メモリ リークが発生しています。AQTime を使用すると、TWordRec が出現するたびにメモリが「リーク」していることがわかります。WordDict エントリを TWordRec として作成している場合、ロード後にそれらを破棄するにはどうすればよいですか? これはディクショナリ内の実際のオブジェクトへの単なるポインタではないので、それらを破棄しますか?

ロード後すぐに TWord を破棄しますか? アプリが終了したときにのみ、辞書からすべてのエントリを削除しますか? TWordRecでメモリリークが発生する理由が明らかにわからないため、解決方法がわかりません...

ありがとう!

0 投票する
1 に答える
31844 参照

delphi - Delphi TDictionary 反復

いくつかのキーと値のペアを保存する関数があり、それらを反復すると、次のエラーが 2 回発生します: [dcc32 エラー] App.pas(137): E2149 クラスにはデフォルト プロパティがありません。ここに私のコードの一部があります:

辞書の各項目から情報を収集する必要があります。どうすれば修正できますか?