Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.09.18;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
1-1124891888
ArtemESC
2005-08-24 17:58
2005.09.18
Текст на Canvas


1-1125042779
VID
2005-08-26 11:52
2005.09.18
Как узнать в какой кодировке находится текст в файле.


1-1124925531
Kisha
2005-08-25 03:18
2005.09.18
Синтаксический анализатор


14-1124697571
alles
2005-08-22 11:59
2005.09.18
Нужна утилитка


1-1124955133
new_user
2005-08-25 11:32
2005.09.18
ProgressBar





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский