Описание тега tdictionary

1 ответ

Почему десериализованный TDictionary не работает правильно?

Я пытаюсь сериализовать / десериализовать стандартный контейнер Delphi, используя стандартный сериализатор Delphi. procedure TForm7.TestButtonClick(Sender: TObject); var dict: TDictionary<Integer, Integer>; jsonValue: TJSONValue; begin //seria…
3 ответа

Как я могу перечислить TDictionary в алфавитном порядке по ключу в Delphi 2009?

Как я могу использовать TEnumerator для прохождения моего TDictionary в отсортированном порядке по ключу? У меня есть что-то вроде этого: var Dic: TDictionary<string, string>; Enum: TPair<string, string>; begin Dic := TDictionary<stri…
27 мар '10 в 05:36
2 ответа

Нарушение прав доступа в TDictionary<Variant, Record>

Я только что написал очень простой класс для тестирования класса TDictionary<> в Delphi XE8. Когда я пытаюсь показать записи, которые я добавил, это вызывает ошибку Access Violation, я не понимаю, почему? Вот мой класс unit Unit3; interface uses Cla…
1 ответ

Обобщения Delphi только для чтения, такие как TDictionary<T> и TList<T>, являются потокобезопасными?

Могу ли я добавить элементы в общий список или словарь только при инициализации модуля, а затем использовать его только для чтения для нескольких потоков? Я прочитал в теме, которая TList&lt;T&gt; является потокобезопасным и в другой теме, которая T…
12 авг '17 в 17:14
1 ответ

Сортировка TDictionary по ключу Integer в порядке возрастания

Как я могу отсортировать TDictionary по ключу Integer в порядке возрастания в Delphi 2009?
06 июл '15 в 22:40
1 ответ

GetItem в TDictionary, очищенный компоновщиком

Я использую TDictionary из &lt;string, string&gt;, Но по какой-то причине компоновщик решает, что я не хочу получать из него элементы. У меня есть следующий код: function TSheet.GetFieldName(Field: string; Default: string): string; begin Result := D…
08 мар '13 в 09:43
1 ответ

Delphi Dictionary Сохранить / Загрузить. TDictionary не сериализуем?

TDictionary: SaveToFile / LoadFromFile Какое элегантное решение! Для начала все работает как положено. Содержимое сохраняется в файл в формате JSON, который выглядит правильно. Но после перезагрузки файла возникает проблема: Type TEnumCategTypes = (…
15 дек '17 в 15:52
1 ответ

Delphi TDictionary, итерация

У меня есть функция, в которой я храню несколько пар ключ-значение, и когда я их повторяю, я получаю эту ошибку дважды: [dcc32 Error] App.pas(137): E2149 Class не имеет свойства по умолчанию. Вот часть моего кода: function BuildString: string; var i…
29 сен '14 в 12:22
1 ответ

Поле класса (статическое поле) в Delphi

Есть класс TPerson. Известно, что FSecondName уникален для каждого объекта. type TPerson = class(TObject) private FAge: Integer; FFirstName: String; FSecondName: String; public property Age: Integer read FAge; property FirstName: String read FFirstN…
09 авг '13 в 11:00
3 ответа

TDictionary - неверный ключ

У меня есть такой код: type TMyDictionary = TDictionary&lt;int, int&gt;; var myDict: TMyDictionary; k, v: integer; // code to fill the dictionary for k in myDict.Keys do begin v := myDict.Items[k]; // other stuff end; Случайно я вижу исключение, ген…
12 мар '09 в 15:42
2 ответа

Как создать пользовательский перечислитель для класса, производного от TDictionary?

Я определил коллекцию, производную от TDictionary, и мне нужно определить пользовательский перечислитель, который применяет дополнительный фильтр. Я застрял, потому что я не могу получить доступ к массиву TDictionary FItems (он является закрытым), п…
18 май '11 в 11:57
3 ответа

Equals и GetHashCode для TDictionary<TVehicle, TPerson>

Если я реализую отношение Car <-> Owner в Delphi с использованием TDictionary, как мне следует реализовать функцию Equals и GetHashCode в IEqualityComparer? (GetHashCode возвращает целое число, которое используется для хеширования в TDictionary.) Дл…
15 мар '11 в 17:24
1 ответ

Двойная запись TDictionary (Delphi)

Я пытаюсь добавить следующие значения в procedure TForm1.FormCreate(Sender: TObject); var md: TDictionary&lt;string, string&gt;; s, v: string; begin md := TDictionary&lt;string, string&gt;.Create; try s := 'orange'; v := 'fruit'; md.Add(s, v); s := …
07 сен '12 в 03:02
1 ответ

Как получить ключ от TDictionary?

У меня есть TDictionary&lt;TKeyClass, TValueClass&gt;, Я хочу сделать что-то вроде for i := 0 to MyDictionary.Count -1 do ShowMessage(MyDictionary.Keys[i].AStringProperty) Я больше не могу получить доступ к ключам, я могу просто использовать их, есл…
21 сен '10 в 15:17
1 ответ

TDictionary сохранить в файл

У меня много файлов (около 160 000), и мне нужно иметь информацию о положении отдельных слов в файлах (полный текст). Поэтому я использовал словарь так: WordDict : TDictionary&lt;string, TDictionary&lt;string, TIntegerDynArray&gt;&gt;; Теперь я знаю…
18 янв '13 в 11:28
1 ответ

Правильный способ избавиться от TDictionary после сортировки его в массив

У меня есть TDictionary вроде target_results : TDictionary&lt;longint,double&gt;; После заполнения мне нужно отсортировать результаты. Я делаю это так type TSearchResult = TPair&lt;longint,double&gt;; var target_results_array : TArray&lt;TSearchResu…
1 ответ

Delphi словарь освобождает

Я реализовал следующий класс: type TUtilProcedure = procedure(var AJsonValue: TJSONObject); TCallback = class private FName: string; FProcedure: TUtilProcedure; FAnnotation: string; public constructor Create(AName: string; AProcedure: TUtilProcedure…
26 авг '15 в 08:22
1 ответ

Delphi - запутался в распределении памяти в TDictionary

В Delphi XE6 у меня есть TDictionary под названием WordDict, который содержит экземпляры TWordRec. Определения: WordDict: TDictionary&lt;string, TWordRec&gt;; ... type TWordRec = class public RemoveAlways: Boolean; // Is this CORP LLC, etc? RemoveRe…
02 сен '14 в 15:10
1 ответ

Delphi TDictionary: значения заменяются автоматически при наличии одинакового ключа

Я использую Delphi XE5. Это резюме моего кода, следующий код работает, но в моем коде должно быть что-то, что разрушает нормальное поведение: unit Class1; type TClass1 = class private FDic:TDictionary&lt;String,String&gt;.Create; public constructor …
18 окт '14 в 13:06
1 ответ

delphi Использование записей в качестве ключа в TDictionary

Можете ли вы использовать запись в качестве значения ключа в TDictionary? Я хочу найти объекты на основе комбинации строки, целого и целого числа. TUserParKey=record App:string; ID:integer; Nr:integer; end; ... var tmpKey:TUserParKey; tmpObject:TObj…
07 янв '15 в 13:04