![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
FileMapping и TList [D7, Win2k]
ShiFT © (2005-08-25 10:03:00)вопрос как можно записать в память TList.
и как потом считать их.
Количество итемов неизвестно.
Digitman (2005-08-25 12:02:00) [1]
> в другую (свою) программу
если она действительно "твоя", значит у тебя есть ее исх-ки и полное понимание ее алгоритма.
значит ее (другую "твою" программу) можно изменить/перекомпилировать, внеся изменения на предмет ЗАРАНЕЕ ПРЕДУСМОТРЕННОЙ тобой (как разработчика обеих программ) организации интерпроцессного взаимодействия.
для интерпроцессного взаимодействия подойдут NamedPipes (именованые программные каналы) и MMF (файлы отображенные в вирт.память процесса)
а TList здесь ни при чем.
Leonid Troyanovsky (2005-08-25 11:35:00) [2]
> ShiFT (25.08.05 11:03) [9]
> и всётаки как мне это сделать.
http://www.compress.ru/Article.asp?id=2164
http://www.compress.ru/Article.asp?id=2166
Например,
http://groups.google.com/group/fido7.ru.delphi.chainik/msg/8da90a77a322f139
полезно почитать всю ветку.
> покажите пример передачи массива записей другому приложению.
Массив принципиально ничем не отличается от одной записи.
Кстати, если речь в лишь "передать", т.е. копию, то
WM_COPYDATA - проще всего.
--
Regards, LVT.
ShiFT (2005-08-25 11:03:00) [3]и всётаки как мне это сделать.
покажите пример передачи массива записей другому приложению.
Leonid Troyanovsky (2005-08-25 10:33:00) [4]
> Leonid Troyanovsky © (25.08.05 10:31) [6]
> Сделай массив статическим и передавай.
Ну, и замени String на ShortString.
--
Regards, LVT.
ShiFT (2005-08-25 10:33:00) [5]Сразу неизвестно сколько будет элементов массива.
если можно пример передачи и чтения.
Leonid Troyanovsky (2005-08-25 10:31:00) [6]
> ShiFT (25.08.05 10:29) [5]
> можно массив.
> Articles : array of rArticles;
>
> как мне можно передать эти данные в другую (свою) программу.
Сделай массив статическим и передавай.
Т.е., возможно еще потребуется индекс последнего элемента.
Ну, и, конечно, синхронизация доступа (mutex).
--
Regards, LVT.
ShiFT (2005-08-25 10:29:00) [7]можно массив.
type
rArticles = record
doc_id : integer;
designatio: string;
filedate : tdatetime;
end;
var
Articles : array of rArticles;
как мне можно передать эти данные в другую (свою) программу.
Reindeer Moss Eater (2005-08-25 10:27:00) [8]>мне надо его прочитать в другой программе.
А смысл? TList содержит указатели.
Они куда-то осмысленно указывают в ап твоего процесса.
А в другом процессе куда они будут указывать - я бы не стал даже гадать.
Leonid Troyanovsky (2005-08-25 10:23:00) [9]
> ShiFT (25.08.05 10:11) [2]
> мне надо его прочитать в другой программе.
> или тогда как лучше это сделать???
А зачем TList? Не каждая программа его поймет.
Можно просто массив, можно связный список.
--
Regards, LVT.
ShiFT (2005-08-25 10:11:00) [10]мне надо его прочитать в другой программе.
или тогда как лучше это сделать???
Reindeer Moss Eater (2005-08-25 10:07:00) [11]Его туда не надо записывать специально.
Он и так уже в памяти, потому что в другом месте просто не может быть.