Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.18;
Скачать: CL | DM;

Вниз

FileMapping и TList   Найти похожие ветки 

 
ShiFT   (2005-08-25 10:03) [0]

вопрос как можно записать в память TList.
и как потом считать их.
Количество итемов неизвестно.


 
Reindeer Moss Eater ©   (2005-08-25 10:07) [1]

Его туда не надо записывать специально.
Он и так уже в памяти, потому что в другом месте просто не может быть.


 
ShiFT   (2005-08-25 10:11) [2]

мне надо его прочитать в другой программе.
или тогда как лучше это сделать???


 
Leonid Troyanovsky ©   (2005-08-25 10:23) [3]


> ShiFT   (25.08.05 10:11) [2]
> мне надо его прочитать в другой программе.
> или тогда как лучше это сделать???


А зачем TList? Не каждая программа его поймет.
Можно просто массив, можно связный список.

--
Regards, LVT.


 
Reindeer Moss Eater ©   (2005-08-25 10:27) [4]

>мне надо его прочитать в другой программе.

А смысл? TList содержит указатели.
Они куда-то осмысленно указывают в ап твоего процесса.
А в другом процессе куда они будут указывать - я бы не стал даже гадать.


 
ShiFT   (2005-08-25 10:29) [5]

можно массив.
type
 rArticles   = record
   doc_id    : integer;
   designatio: string;
   filedate  : tdatetime;
 end;
var
 Articles : array of rArticles;

как мне можно передать эти данные в другую (свою) программу.


 
Leonid Troyanovsky ©   (2005-08-25 10:31) [6]


> ShiFT   (25.08.05 10:29) [5]
> можно массив.

>  Articles : array of rArticles;
>
> как мне можно передать эти данные в другую (свою) программу.


Сделай массив статическим и передавай.
Т.е., возможно еще потребуется индекс последнего элемента.

Ну, и, конечно, синхронизация доступа (mutex).

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2005-08-25 10:33) [7]


> Leonid Troyanovsky ©   (25.08.05 10:31) [6]

> Сделай массив статическим и передавай.


Ну, и замени String на ShortString.

--
Regards, LVT.


 
ShiFT   (2005-08-25 10:33) [8]

Сразу неизвестно сколько будет элементов массива.

если можно пример передачи и чтения.


 
ShiFT   (2005-08-25 11:03) [9]

и всётаки как мне это сделать.
покажите пример передачи массива записей другому приложению.


 
Leonid Troyanovsky ©   (2005-08-25 11:35) [10]


> 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.


 
Digitman ©   (2005-08-25 12:02) [11]


> в другую (свою) программу


если она действительно "твоя", значит у тебя есть ее исх-ки и полное понимание ее алгоритма.

значит ее (другую "твою" программу) можно изменить/перекомпилировать, внеся изменения на предмет ЗАРАНЕЕ ПРЕДУСМОТРЕННОЙ тобой (как разработчика обеих программ) организации интерпроцессного взаимодействия.

для интерпроцессного взаимодействия подойдут NamedPipes (именованые программные каналы) и MMF (файлы отображенные в вирт.память процесса)

а TList здесь ни при чем.



Страницы: 1 вся ветка

Текущий архив: 2005.09.18;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.047 c
4-1122500345
Quattro
2005-07-28 01:39
2005.09.18
TaskBar


11-1090511223
Максим
2004-07-22 19:47
2005.09.18
FindComponent


14-1124967414
Димитрий
2005-08-25 14:56
2005.09.18
Альтернатива Путину


2-1123769274
Гость22
2005-08-11 18:07
2005.09.18
Как при запуске DBNavigator скрыть некоторые кнопки?


6-1117110042
Lex_!
2005-05-26 16:20
2005.09.18
Открытие УРЛ и очистка кэша