Я видел несколько вопросов о сортировке вставок с помощью Паскаля. Поэтому я подумал, что попробую это с массивом строк.
Текстовые значения:
Advanced IF Syntax
Advanced LOOP Syntax
ALIGN
BANNER / NOBANNER
BLANK
COLOR / COLOUR
CONG_MEET_TIME
DATE
ENDPAGE
EOL
FIELD
FONT
HIGHLIGHT / NOHIGHLIGHT
IF
IMAGE
INCLUDE
LINESPACING
LOOKUP_FIELD
LOOP
LOOP AS
LOOP SQL
PARAGRAPH / TEXT
REQUIRES
Script Command Syntax
SEPARATOR
TAB
TAB SET
TALK_THEME
Вот код:
Procedure InsertionSort(aTopics : Array of String; size : Integer);
Var
i, j : Integer;
caption, topic_id : String;
Begin
For i := 2 to size-1 do
Begin
topic_id := aTopics[i];
caption := HndTopics.GetTopicCaption(aTopics[i]);
j := i;
While ((j > 1) AND (CompareText(HndTopics.GetTopicCaption(aTopics[j-1]), caption) > 0)) do
Begin
aTopics[j] := aTopics[j-1];
j := j - 1;
End;
aTopics[j] := topic_id;
End;
End;
Кажется, он работает на 99% правильно, с одним исключением. Перейдите к справочной документации и перейдите на вкладку Index . Щелкните элемент Синтаксис команды пользовательского сценария , и появится всплывающее окно:
Почему первый элемент TALK_THEME ? Это должно быть в конце списка, а не в начале.