問題タブ [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.
delphi - TDictionary 重複エントリ (Delphi)
次の値を追加しようとしています
これが重複していることはわかっていますが、2 番目のオレンジ色を見ると、最後にスペースがあることがわかります。Delphiは値をトリムすると思いますが、そうすべきではありません。
誰もこの問題の解決策を知っていますか?
ありがとう、
delphi - コンマ区切りの文字列ペアのリストから TDictionay を埋めるにはどうすればよいですか?
文字列のリストを含むテキスト ファイル (たとえば、自動置換に使用できるキーと値で区切られたカンマなど) を作成し、各キーと値のペアをTDictionary<string, string>
. ディクショナリにデータを入力するにはどうすればよいですか?
delphi - TDictionary をファイルに保存
たくさんのファイル (約 160 000) があり、ファイル (フルテキスト) 内の個々の単語の位置に関する情報が必要です。だから私はこのように辞書を使用しました:
これで、WORD1 が FILE1、FILE3、および FILE100 にあり、各ファイルの位置が <1,3,5>、<2,8,35> などであることがわかりました。入力できます。使用できます。非常に高速です。しかし、辞書をファイルに効果的に保存する方法がわかりません。
編集:効果的に-私はファイルのサイズが速くて小さいことを意味します
delphi - リンカーによって削除された TDictionary の GetItem
TDictionary
のを使用してい<string, string>
ます。しかし、何らかの理由で、リンカは私がそこから項目を取得したくないと判断しました。
次のコードがあります。
FFieldNames
ですTDictionary<string, string>
。2 行目 ( if FFieldNames[Field] = '' then
) で、「ファイルが見つかりません」という例外がスローされます。FFieldNames[Field]
ウォッチに追加すると、呼び出される関数 {System.Generics.Collections}TDictionary.GetItem が linker によって削除されたことがわかります。
デバッグ中にリンカーが機能を削除しないようにする方法について、同様の問題について誰かがここで尋ねました。このことから、コンパイラ/リンカーは私がそれを使用していないと想定していることを収集しました。誰かが、会話中に、もっと使ってみるべきだと提案しました。
そこで、次のコードを作成しました。
S
、Name
およびV
は文字列です。FFieldNames
これは、データが入力され ているコードからのものです。V
の唯一の目的は、挿入されたばかりのものを取得することS
です。他には何もしません。
奇妙なことに、デバッガーは同じこと (つまりGetItem
、削除された) を教えてくれますV
が、期待値に設定されます。しかし、それは私の機能ではありませんTSheet.GetFieldName
。:|
私は何が欠けていますか?
delphi - 配列にソートした後に TDictionary を破棄する正しい方法
私はTDictionaryのようなものを持っています
データを入力したら、結果を並べ替える必要があります。こんな感じでやってます
それはすべて期待どおりに機能しています。私の質問は、リークなしで TDictionary と TArray を破棄するにはどうすればよいですか? 現在、私はちょうどやっています
delphi - Delphi のクラス フィールド(静的フィールド)
クラス TPerson があります。FSecondName は各オブジェクトに固有であることが知られています。
クラス フィールド (C# の静的フィールドなど) を追加するにはどうすればよいですか。
ありがとう!
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 -> 「アイテムが見つかりません」というエラーが表示されますか?
誰かがこれを説明できますか?
前もって感謝します。
////////////////////////////////////////// ///サンプルコード
class - Delphi - TDictionary でのメモリ割り当てについて混乱しています
Delphi XE6 には、TWordRec のインスタンスを保持する WordDict という TDictionary があります。定義は次のとおりです。
辞書を作成してロードすると....
メモリ リークが発生しています。AQTime を使用すると、TWordRec が出現するたびにメモリが「リーク」していることがわかります。WordDict エントリを TWordRec として作成している場合、ロード後にそれらを破棄するにはどうすればよいですか? これはディクショナリ内の実際のオブジェクトへの単なるポインタではないので、それらを破棄しますか?
ロード後すぐに TWord を破棄しますか? アプリが終了したときにのみ、辞書からすべてのエントリを削除しますか? TWordRecでメモリリークが発生する理由が明らかにわからないため、解決方法がわかりません...
ありがとう!
delphi - Delphi TDictionary 反復
いくつかのキーと値のペアを保存する関数があり、それらを反復すると、次のエラーが 2 回発生します: [dcc32 エラー] App.pas(137): E2149 クラスにはデフォルト プロパティがありません。ここに私のコードの一部があります:
辞書の各項目から情報を収集する必要があります。どうすれば修正できますか?