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

Материал из DRKB

Атомы: Запись, чтение и удаление информации[править | править код]

{ 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;


Author: Radmin
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 02092