Size: a a a

2020 May 31

GB

George Bakhtadze in Delphi & Lazarus
Рус
Уже написал, но в голове, на человеческом языке. А за паскалевым вот сюда пришёл
ну так работает tdictionary?
источник

Р

Рус in Delphi & Lazarus
George Bakhtadze
ну так работает tdictionary?
type
 TOHLC = record
           T: Integer;
           O: Extended;
           H: Extended;
           L: Extended;
           C: Extended;
         end;
var
 aOHLC: array of TOHLC;
 Eklmn: TDictionary<String, aOHLC>;

Увы...
источник

GB

George Bakhtadze in Delphi & Lazarus
Рус
type
 TOHLC = record
           T: Integer;
           O: Extended;
           H: Extended;
           L: Extended;
           C: Extended;
         end;
var
 aOHLC: array of TOHLC;
 Eklmn: TDictionary<String, aOHLC>;

Увы...
ошибка вылезает?
источник

Р

Рус in Delphi & Lazarus
George Bakhtadze
ошибка вылезает?
Ну конечно. Это ж я просто написал чего хочу
источник

GB

George Bakhtadze in Delphi & Lazarus
Рус
type
 TOHLC = record
           T: Integer;
           O: Extended;
           H: Extended;
           L: Extended;
           C: Extended;
         end;
var
 aOHLC: array of TOHLC;
 Eklmn: TDictionary<String, aOHLC>;

Увы...
ты переменную с массивом объявляешь вместо типа
источник

GB

George Bakhtadze in Delphi & Lazarus
Рус
Ну конечно. Это ж я просто написал чего хочу
а если aOHLC сделать типом? :)
источник

Р

Рус in Delphi & Lazarus
George Bakhtadze
ты переменную с массивом объявляешь вместо типа
Бинго! Сейчас напишу
источник

Р

Рус in Delphi & Lazarus
  TOHLC = record
           T: Integer;
           O: Extended;
           H: Extended;
           L: Extended;
           C: Extended;
         end;

 TSymbol = record
             klines: array of TOHLC;
           end;
var
 Eklmn: TDictionary<String, TSymbol>;
источник

Р

Рус in Delphi & Lazarus
Перемудрил вроде.
источник

Р

Рус in Delphi & Lazarus
А как к этому массиву обращаться?
источник

GB

George Bakhtadze in Delphi & Lazarus
Рус
Перемудрил вроде.
на самом деле, TDictionary<string, TArray<TOHLC>> будет лучше
источник

Р

Рус in Delphi & Lazarus
George Bakhtadze
на самом деле, TDictionary<string, TArray<TOHLC>> будет лучше
  TOHLC = record
   T: Integer;
   O: Extended;
   H: Extended;
   L: Extended;
   C: Extended;
 end;

var
 Form1: TForm1;
 Eklmn: TDictionary<String, TArray<TOHLC>>;

Работает. Но как к этому массиву обращаться?
источник

GB

George Bakhtadze in Delphi & Lazarus
Рус
  TOHLC = record
   T: Integer;
   O: Extended;
   H: Extended;
   L: Extended;
   C: Extended;
 end;

var
 Form1: TForm1;
 Eklmn: TDictionary<String, TArray<TOHLC>>;

Работает. Но как к этому массиву обращаться?
задавать/получать значение в словаре как обычно, а так почитай про работу с TArray
источник

Р

Рус in Delphi & Lazarus
George Bakhtadze
задавать/получать значение в словаре как обычно, а так почитай про работу с TArray
Т.е. только с помщью индекса? Никаких имён? Правильно понимаю?
источник

Р

Рус in Delphi & Lazarus
А как длину менять?
источник

GB

George Bakhtadze in Delphi & Lazarus
Рус
Т.е. только с помщью индекса? Никаких имён? Правильно понимаю?
массив получаешь по ключу, который у тебя строка. в самом массиве по индексу
источник

GB

George Bakhtadze in Delphi & Lazarus
Рус
А как длину менять?
говорю же, читай про tarray
источник

Р

Рус in Delphi & Lazarus
George Bakhtadze
говорю же, читай про tarray
3.1. TArray
Создавать экземпляр этого класса не нужно. TArray содержит 2 статических метода:
   Sort. Использует алгоритм быстрой сортировки, может принимать компаратор в качестве параметра
   BinarySearch. Ищет элемент в массиве и возвращает True если находит. Также принимает компаратор, требует, чтобы массив был предвариательно отсортирован

Чего то не хватает
источник

Р

Рус in Delphi & Lazarus
George Bakhtadze
говорю же, читай про tarray
Минуточку... Он же медленнее обычного массива.
источник

Р

Рус in Delphi & Lazarus
Рус
  TOHLC = record
   T: Integer;
   O: Extended;
   H: Extended;
   L: Extended;
   C: Extended;
 end;

var
 Form1: TForm1;
 Eklmn: TDictionary<String, TArray<TOHLC>>;

Работает. Но как к этому массиву обращаться?
  TArrayOHLC = array of Double;

var
 Eklmn: TDictionary<String, TArrayOHLC>;

То что было нужно
источник