Вверх ↑
Ответов: 2059
Рейтинг: 131
#1: 2020-04-19 10:56:15 ЛС | профиль | цитата
andrestudio, чего то вчера никак авторизоваться на мог...
Вот вариант со стандартным, если лень как у sla8a делать.
Вроде работает:
Во всех этих |13| массивах - это указатели на звук, картинку, стрим, строку, или ещё чего - чего загрузишь.
Каким методом ты будешь обрабатывать этот указатель - по хрену. В данном случае, как список строк.
Прописывай свойство как|13|10
Вот так будет выглядеть hiStrlistArray.pas
  THIStrlistArray = class(TArray)
private
procedure PointerToData(Data:cardinal; var Result:TData); override;
procedure Delete(Value:cardinal); override;
public
procedure _work_doRun(var _Data:TData; Index:word);
property _prop_Strlist:PStrListEx write SetItems;
end;

implementation


procedure THIStrlistArray.PointerToData;
begin
dtString(Result,String(pointer(Data)^));
end;

procedure THIStrlistArray.Delete;
var r:^string;
begin
r := pointer(Value);
dispose( r );
end;

procedure THIStrlistArray._work_doRun;
var dt:TData;
begin
if Read(_Data,dt) then
.......
end;

end.

а вот так будет выглядеть StrlistArray.ini
[About]
Version=1.0
Author=flint2
Mail=qwerty.ru

[Type]
Class=Element
Info=Содержит массив списков строк

[Property]
+Strlist=Содержит массив списков строк|13|10
UseName=True - разрешить доступ к элементам массива по их именам и по индексам, False - доступ только по индексам (быстрый)|14|0|True,False
FileFormat=Формат файла массива|4|0|Binary,String
[Methods]
doRun=Чего то делает со списком строк из массива с индексом из потока (см. св-во UseName)|1|
Count=Содержит кол-во элементов массива|3|1

P.S.
Я для этих целей( не в данном случае, а когда то давно) переделывал StrList на List Pchar (с нулём на конце), каждая такая строка могла иметь множество строк разделённых символами 10 и 13.
карма: 6

1
Голосовали:andrestudio
Редактировалось 2 раз(а), последний 2020-04-19 11:03:02