GetStringListItemA
Sonstige Funktionen
Beschreibung
Das nachgestellte A bezeichnet den ANSI-DLL-Einstiegspunkt (char); die ActiveX/COM-Oberfläche stellt nur die Unicode-Form bereit. Das Verhalten entspricht GetStringListItem, und Zeichenfolgenargumente werden mit der aktuellen Codepage von SetAnsiMode interpretiert
Gibt die Zeichenfolge an Position ItemIndex in der durch StringListID bezeichneten Zeichenfolgenliste zurück. Zeichenfolgenlisten werden von anderen API-Funktionen erzeugt — am häufigsten von CheckFileCompliance, das für jedes erkannte Konformitätsproblem einen Eintrag zurückgibt.
Syntax
Delphi
Function DLGetStringListItemA(InstanceID, StringListID, ItemIndex: Integer): PAnsiChar;
DLL
const char * DLGetStringListItemA(int InstanceID, int StringListID, int ItemIndex);
Parameter
| StringListID | Die ID der Zeichenfolgenliste, wie sie von einer Erzeugerfunktion wie CheckFileCompliance zurückgegeben wird |
|---|---|
| ItemIndex | Der einsbasierte Index des abzurufenden Elements. Das erste Element ist 1; das letzte Element ist GetStringListCount(StringListID). Indizes außerhalb des Bereichs geben eine leere Zeichenfolge zurück |
Rückgabewert
Die Zeichenfolge am angeforderten Index oder eine leere Zeichenfolge, wenn StringListID ungültig ist oder ItemIndex außerhalb von [1 .. GetStringListCount] liegt
Anmerkungen
Bei von CheckFileCompliance erzeugten Listen lautet das Elementformat CODE: human-readable description, wobei CODE einer der auf der Seite CheckFileCompliance dokumentierten fünfstelligen Problemcodes ist (00002, 00003, 00005, 00006, 00007, 00011, 00012). Entfernen Sie das Präfix vor dem Doppelpunkt, um den Code programmgesteuert zu verarbeiten.
Beispiel
// 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;