GetStringListItemA

Різні функції

Опис

Завершальна A позначає точку входу DLL типу ANSI (char); інтерфейс ActiveX/COM надає лише форму Unicode. Поведінка ідентична з GetStringListItem, а рядкові аргументи інтерпретуються з використанням поточної кодової сторінки SetAnsiMode

Повертає рядок на позиції ItemIndex у списку рядків, ідентифікованому StringListID. Списки рядків виробляються іншими API-функціями — найчастіше CheckFileCompliance, яка повертає по одному запису на кожну виявлену проблему відповідності

Синтаксис

Delphi

Function DLGetStringListItemA(InstanceID, StringListID, ItemIndex: Integer): PAnsiChar;

DLL

const char * DLGetStringListItemA(int InstanceID, int StringListID, int ItemIndex);

Параметри

StringListIDІдентифікатор списку рядків, який повертає функція-виробник на кшталт CheckFileCompliance
ItemIndexІндекс елемента, який треба отримати (від 1). Перший елемент — 1; останній — GetStringListCount(StringListID). Індекси поза діапазоном повертають порожній рядок

Повернуте значення

Рядок за запитаним індексом або порожній рядок, якщо StringListID недійсний чи ItemIndex поза [1 .. GetStringListCount]

Примітки

Для списків від CheckFileCompliance формат елемента — КОД: зрозумілий людині опис, де КОД — один із п'ятицифрових кодів проблем, задокументованих на сторінці CheckFileCompliance (00002, 00003, 00005, 00006, 00007, 00011, 00012). Щоб обробити код програмно, відділіть префікс перед двокрапкою

Приклад

// Parse the issue code from each compliance issue line
var
  Issues, Count, I, ColonPos: Integer;
  Line, Code: WideString;
begin
  Issues := PDF.CheckFileCompliance('archive.pdf', '', 1, 0);
  if Issues = 0 then Exit;

  Count := PDF.GetStringListCount(Issues);
  for I := 1 to Count do
  begin
    Line := PDF.GetStringListItem(Issues, I);
    ColonPos := Pos(':', Line);
    if ColonPos > 0 then
      Code := Trim(Copy(Line, 1, ColonPos - 1))
    else
      Code := Line;

    if Code = '00006' then
      WriteLn('Document is encrypted — cannot be PDF/A')
    else
      WriteLn('Issue ', Code, ': ', Line);
  end;
  PDF.ReleaseStringList(Issues);
end;

Див. також

GetStringListCount, ReleaseStringList, CheckFileCompliance