Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Атомы : Запись, чтение и удаление информации (ReadAtom, CleanAtoms)

Delphi , Синтаксис , Память и Указатели

Code:

{Act: 0 - Очистка атомов, 1 - чтение атомов, 2 - запись атомов}
{Uniq - Уникальный идентификатор}
{AtomNfo - Информация для записи}
Function AtomDo(Act:integer;Uniq,AtomNfo:string);
 
Procedure CleanAtoms;
var P:PChar;
i:Word;
begin
GetMem(p, 256);
   For i:=0 to $FFFF do
   begin
     GlobalGetAtomName(i, p, 255);
    if StrPos(p, PChar(Uniq))<>nil then GlobalDeleteAtom(i);
   end;
  FreeMem(p);
end;
 
Function ReadAtom:string;
var P:PChar;
i:Word;
begin
   GetMem(p, 256);
   For i:=0 to $FFFF do
 begin
   GlobalGetAtomName(i, p, 255);
   if StrPos(p, PChar(Uniq))<>nil then break;
 end;
     result:=StrPas(p+length(Uniq));
     FreeMem(p);
end;
 
begin
 
case Act of
0 : CleanAtoms;
1 : Result:=ReadAtom;
2 : begin
     CleanAtoms;
     GlobalAddAtom(PChar(Uniq+AtomNfo));
     end;
end;
 

 Автор: Radmin

Взято с Vingrad.ru http://forum.vingrad.ru

Программа на Delphi, которая взаимодействует с Windows API для управления атомами (тип ресурса в Windows). Атомы используются для хранения небольших кусков данных, таких как строки или целые числа.

Вот разбивка каждого части кода:

Enum и константы Первая секция определяет enum (Act) с тремя значениями: 0 - очистка атомов, 1 - чтение атомов, и 2 - запись атомов. Она также определяет две другие константы: Uniq (уникальный идентификатор) и AtomNfo (информация для записи).

Функции В этом коде есть три функции:

  1. CleanAtoms: Функция очищает все атомы, содержащие строку Uniq. Она делает это, перебирая все доступные атомы, получая их имена с помощью GlobalGetAtomName, проверяет, если они содержат строку Uniq с помощью StrPos, и удаляет их, если необходимо.
  2. ReadAtom: Функция читает атом с именем, содержащим строку Uniq. Она перебирает все доступные атомы, получая их имена, и проверяет, если они содержат строку Uniq. Если она находит такой атом, она выходит из цикла и возвращает значение атома как строку.
  3. AtomDo: Функция, которая принимает три параметра: Act (целое число, указывающее, какой действие выполнить), Uniq, и AtomNfo. Она использует case-заявление для определения, какое действие выполнить в зависимости от значения Act.

Процедура Есть одна процедура, CleanAtoms, которая похожа на функцию с тем же именем. Однако, она не возвращает никакого значения.

Основной код Основной код находится внутри блока begin в конце файла. Он использует case-заявление для определения, какое действие выполнить в зависимости от значения Act. Если Act равен 0, он вызывает функцию CleanAtoms. Если Act равен 1, он вызывает функцию ReadAtom и возвращает ее результат. Если Act равен 2, он вызывает функцию CleanAtoms, а затем добавляет новый атом с именем, содержащим Uniq и AtomNfo.

В целом, этот код предоставляет простой способ управления атомами в Windows с помощью Delphi.

Вот несколько предложений:

  1. Рассмотрите добавление обработки ошибок в ваших функциях и процедурах. Например, что происходит, если атом не найден или возникла проблема с аллокацией памяти?
  2. Вам может понравиться использовать более описательные имена переменных вместо одиночных буквенных переменных, таких как P и i.
  3. Если вы планируете использовать этот код в более крупном приложении, вам может потребоваться разделить логику на различные модули (например, один модуль для управления атомами, другой для чтения и записи атомов).

Скрипт ReadAtom и CleanAtoms для работы с атомами в Windows, позволяющий записать, прочитать и удалить информацию.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Память и Указатели ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-01-29 05:57:08/0.0034980773925781/0