
If KeyPressed then Exit;
Write('Xx');
until False;
end;
end.
Функция Exp
─────────────────────────────────────────────────────────────────
Назначение: Возвращает экспоненциальное значение аргумента.
Описание: Exp(x : real)
Тип результата: Вещественный (real).
Примечания: Параметр x является выражением вещественного типа. Результатом будет экспонента x, то есть значение e возводится в степень x (e - основание натурального логарифма).
Прочее: См. также функцию Ln.
Функция FileExpand Модуль WinDos
─────────────────────────────────────────────────────────────────
Назначение: Расширяет имя файла до полного имени файла.
Описание: FileExpand(Dest, Name: PChar)
Тип результата: PChar.
Примечания: Расширяет имя файла, задаваемого параметром Name", до полного имени файла. Полученное в результате имя преобразуется в верхний регистр и содержит буквенную метку дисковода, двоеточие, путь доступа относительно корневого каталога и имя файла. Внутренние ссылки на каталоги ".." и "." удаляются, а все компоненты имени и расширения усекаются до 8 и 3 символов. Возвращаемое значение содержится в параметре Dest. Допускается, чтобы Name и Dest ссылались на одно и то же место.
Предположим, что текущим диском и каталогом является C:\SOURCE\PAS. Тогда следующие вызовы процедуры FileExpand дадут такие значения:
FileExpand(S, 'test.pas') = 'C:\SOURCE\PAS\TEST.PAS'
FileExpand(S, '../*.TPU') = 'C:\SOURCE\*.TPU'
FileExpand(S, 'c:\bin\wturbo.exe') = 'C:\BIN\WTURBO.EXE'
Для разбиения результата функции FileExpand на дисковод/каталог, строку имени файла и строку расширения можно использовать функцию FileSplit.
См. также функции: FindFirst, FindNext, FileSplit.
Функция FilePos
─────────────────────────────────────────────────────────────────
Назначение: Возвращает текущую позицию в файле.
Описание: FilePos(f)
Тип результата: Длинный целый (longint).
Примечания: Параметр f представляет собой файловую переменную. Если текущей позицией является начало файла, то функция FilePos(f) возвращает значение 0. Если текущей позицией в файле является конец файла, то есть Eоf(f) возвращает значение Truе, то значение, возвращаемое функцией FilePos(f), совпадает со значением, возвращаемым функцией FileSizе(f) (то есть с размером файла).
При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае.
Ограничения: Эта функция не может использоваться для текстового файла. Файл должен быть открыт.
Прочее: См. также процедуры FileSize, Seek.
Функция FileSearch
─────────────────────────────────────────────────────────────────
Назначение: Выполняет поиск файла в списке каталогов.
Описание: FileSearch(Dest, Name, List; PChar): PChar
Тип результата: PChar.
Примечания: Данная функция ищет файл, заданный именем Name, в списке каталогов, заданном параметром List. Каталоги в списке List должны разделяться точкой с запятой, аналогично команде PATH в DOS. Поиск всегда начинается с текущего каталога на текущем диске. Если файл будет найден, функция FileSearch записывает конкатенацию имени каталога и имени файла в параметр Dest. Ссылка Dest и Name на одно и то же место не допускается.
Максимальная длина результата задается константой fnPathName и равна 79.
Чтобы выполнить поиск по маршруту, заданному в команде DOS PATH, вызовите функцию GetEnvVar('PATH') и передайте в параметре List результат этого вызова функции FileSearch.
Для преобразование его в полное имя маршрута (имя файла в верхнем регистре с указанием метки диска и маршрута относительно корневого каталога) результат функции FileSearch можно передать подпрограмма FileExpand. Кроме того, для разбиения имени файла и выделения из него строки с меткой диска, строки имени файла и строки расширения вы можете использовать функцию FileSplit.
См. также: FileExpand, FileSplit
Пример:
uses Модуль WinCrt, WinDos;
var
S: array[0..fsPathName] of Char;
begin
FileSearch(S, 'TPW.EXE', GetEnvSVar('PATH'));
if S(0) = #0 then
Writgeln('TPW.EXE не найден')
else
Writeln('Найден в ', FileExpand(S, S);
end.
Функция FileSize
─────────────────────────────────────────────────────────────────
Назначение: Возвращает текущий размер файла.
Описание: FileSize(var f)
Тип результата: Длинный целый (longint).
Примечания: Параметр f представляет собой файловую переменную. Данная функция возвращает число элементов в f. Если файл пуст, функция возвращает значение 0.
При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае.
Ограничения: Функция не может использоваться для текстового файла. Файл должен быть открыт.
Прочее: См. также функцию FilePos.
Пример:
var
f : file of byte;
begin
{ получить имя файла из командной строки }
Assign(f, ParamStr(1));
Reset(f);
Writeln('Размер файла в байтах: ', FileSize(f));
Close(f);
end.
Процедура FileSplit Модуль WinDos
─────────────────────────────────────────────────────────────────
Назначение: Разбивает имя файла на три составляющих компонента.
Описание: FileSplit(Path, Dir, Name, Ext: PChar): Word
Примечания: Имя файла, заданное параметром Path, разбивается на три составных компонента. В параметр Dir записывается буквенная метка диска и имя каталога со начальными и конечными символами обратной косой черты, в параметр Name - имя файла, а в Ext - расширение имени файла с предшествующей точкой. Если компонент строки имеет значение nil (пусто), то соответствующая часть маршрута не записывается. Если маршрут не содержит данного компонента, то возвращаемая строка-компонент будет пустой. Максимальная длина строк, возвращаемых в параметрах Dir, Name и Ext, определяется константами fsDirectory, fsFileName и fsExtension.
Возвращаемое значение является комбинацией битовых масок fsDirectory, fsFileName и fsExtension, указывающих, какие компоненты присутствовали в марпшруте. Если имя файла или расширение содержат трафаретные символы (* и ?), то в возвращаемом значении устанавливается флаг fcWincards.
Константы fsXXXX и fcXXXX определены в модуле WinDos следующим образом:
const
fsPathName = 79;
fsDirectory = 67;
fsFileName = 8;
fsExtension = 4;
const
fcExtension = $0001;
fcFileName = $0002;
fcDirectory = $0004;
fcWildcards = $0008;
fcExtension = $0001;
Прочее: См. подпрограммы FileExpand, FindFirst, FindNext.
Пример:
uses Strings, WinCrt, WinDos;
var
Path: array[0..fsPathName] of Char;
Dir: array[0..fsDirectiry] of Char;
Name: array[0..fsFileName] of Char;
Ext: array[0..fsExtension] of Char;
begin
Write('Filename (WORK.PAS): ');
Readln(Path);
FileSplit(Path, Dir, Name, Ext);
if Name[0] = #0 then StrCopy(Name, 'WORK');
if Ext[0] = #0 then StrCopy(Ext, '.PAS');
StrECopy(StrECopy(StrECopy(Path, Dir), Name), Ext);
Writeln('Результат: ', Path);
end.
Процедура FillChar
─────────────────────────────────────────────────────────────────
Назначение: Помещает в заданное число следующих друг за другом байт указанное значение.
Описание: FillChar(x; Count : word; Val)
Примечания: Параметр x является ссылкой на переменную любого типа, Count представляет собой выражение длиной в слово, Val является выражением перечислимого типа. Процедура записывает значение, указанное в параметре Val, в то количество следующих друг за другом байт памяти, начиная с первого байта, занимаемого переменной х, которое определяется параметром Count.
Проверка на допустимость границ не выполняется, поэтому будьте внимательны.
Если это возможно, при использовании процедуры FillChar задавайте параметр Count. При использовании этой процедуры для строк не забудьте после заполнения установить длину в байтах.
Прочее: См. также процедуру Моvе.
Пример:
var
s : string[80];
begin
{ задать строку, состоящую из пробелов }
FillChar(s, SizeOf(s),' '); { установить длину
последовательности байт }
s[0] := #80;
end.
Процедура FindFirst Модуль WinDos
─────────────────────────────────────────────────────────────────
Назначение: Производит поиск в заданном (или текущем) каталоге первой записи, соответствующей заданному имени файла и набору атрибутов файла.
Описание: FindFirst(Path : String; Attr : Bуtе; var S: TSearchRec)
Примечания: Параметр Path определяет каталог, например "*.*". Параметр Attr определяет включение в список рассматриваемых специальных файлов (наряду со всеми обычными файлами). Приведем список атрибутов файла, как они описаны в модуле WinDos:
const
{ константы атрибутов файла }
ReadOnly = $01; { только чтение }
Hidden = $02; { "скрытый" файл }
SysFile = $04; { системный файл }
VolumeId = $08; { идентификатор тома }
Directory = $10; { каталог }
Archive = $20; { архивизация }
AnyFile = $3F; { прочий файл }
Результат поиска по каталогу возвращается в заданной записи типа TSearchRec, который описывается в модуле WinDos:
type
{ тип SearchRec, использующийся в процедурах FindFirst
и FindNext }
TSearchRec = record
Fill : array[1..2] of byte;
Attr : byte;
Time : longint;
Size : longint;
Name : string[12];
end;
Коды ошибки можно получить с помощью подпрограммы DosError. Возможными значениями кодов являются 2 (каталог не найден) и 18 (больше файлов нет).
Прочее: См. также процедуры FileExpand, FindNext.
Пример:
uses WinDos;
var
DirInfo : TSearchRec;
begin
FindFirst('*.PAS', Archive, DirInfo); { то же, что и
DIR *.PAS }
while DosError = 0 do
begin
Writeln(DirInfo.Name);
FindNext(DirInfo);
end;
end.
Процедура FindNext Модуль WinDos
─────────────────────────────────────────────────────────────────
Назначение: Возвращает следующую запись, совпадающую с именем и атрибутами файла, указанными при предыдущем обращении к процедуре FindFirst.
Описание: FindNext(var S : TSearchRec)
Примечания: Параметр S должен быть таким же, как при обращении к FindFirst (тип SearchRec описывается в модуле WinDos (см. процедуру FindFirst). С помощью DosError можно получить код ошибки. Единственно возможным кодом является код 18, указывающий на отсутствие файлов.
Прочее: См. также процедуры FileExpand, FindFirst.
Пример: См. пример для процедуры FindFirst.
Процедура Flush
─────────────────────────────────────────────────────────────────
Назначение: Выводит содержимое буфера открытого для вывода текстового файла.
Описание: Flush(var f : text)
Примечания: Параметр f является файловой переменной текстового типа.
Когда текстовый файл открывается для вывода с помощью процедур Rewrite или Appеnd, обращение к процедуре Flush позволяет очистить буфер файла. Это обеспечивает то, что все символы, записанные в это время в файл, будут действительно записаны во внешний файл. Для файлов, открытых для ввода, данная процедура никаких дейстий не выполняет.
При указании директивы компилятора {$I-} функция IORеsult будет возвращать значение 0 в том случае, если операция завершилась успешно, и ненулевой код ошибки в противном случае.
Функция Frac
─────────────────────────────────────────────────────────────────
Назначение: Возвращает дробную часть аргумента.
Описание: Frac(x : real)
Тип результата: Вещественный (real).
Примечания: Параметр х является выражением вещественного типа. Результатом является дробная часть x, то есть Frас(x) = x - Int(x).
Прочее: См. также функцию Int.
Пример:
var
r : real;
begin
f := Frac(123.456);
end.
Процедура FreeMem
─────────────────────────────────────────────────────────────────
Назначение: Уничтожает динамическую переменную данного размера.
Описание: FrееМем(var P : pоinter; Size : word)
Примечания: Параметр P является указателем на переменную (относящимся к любому типу указателей), для которого было предварительно выполнено присваивание с помощью процедуры GetМем или которому было присвоено значащее значение с помощью оператора присваивания. Параметр Size представляет собой выражение длиной в слово, которое задает размер уничтожаемой динамической переменной (в байтах). Его значение должно в точности соответствовать числу байт памяти, отведенных ранее для переменной процедурой GetМем. Процедура FrееМем уничтожает переменную, на которую указывает P, и освобождает занятую ей область памяти в динамически распределяемой области. Если указатель p не ссылается на область памяти в динамически распределяемой области, то во время выполнения программы возникает ошибка. После обращения к процедуре FrееМем значение указателя P становится неопределенным, а последующие ссылки вида P^ будут приводить к ошибке.
Прочее: См. также процедуры Dispose, GetMem, New.
Функция GetArgCount Модуль WinDos
─────────────────────────────────────────────────────────────────
Назначение: Возвращает число параметров, переданное программе в командной строке.
Описание: GetArgCount: Integer
Функция GetArgStr Модуль WinDos
─────────────────────────────────────────────────────────────────
Назначение: Возвращает параметр командной строки, заданный параметром Index.
Описание: GetArgSrt(Dest: PChar; Index: Ingteger; MaxLen: Word): PChar;
Примечания: Если Index меньше нуля или превышает значение GetArgCount, то функция GetArgStr возвращает пустую строку. Если Index = 0, GetArgStr возвращает для текущего модуля имя файла. Dest - это возвращаемое значение. Максимальная длина возвращаемого значения задается параметром MaxLen.
Прочее: См. также подпрограмму GetArgCount.
Процедура GetCBreak Модуль WinDos
─────────────────────────────────────────────────────────────────
Назначение: Возвращает состояние Ctrl+Break, которое проверяется операционной системой DOS.
Описание: GetCBreak(var Break: boolean)
Примечания: Данная процедура возвращает состояние Ctrl+Break, проверяемое в DOS. В выключенном состоянии (False) DOS проверяет Ctrl+Break только при выводе на консоль, устройство печати или в коммуникационные порты. Во включенном состоянии (True) проверки делаются при каждом обращении к системе.
Прочее: См. также функцию SetCBreak.
Функция GetCurDir Модуль WinDos
─────────────────────────────────────────────────────────────────
Назначение: Возвращает текущий каталог на заданном диске.
Описание: GetCurDir(Dir: PChar; Drive: Byte): PChar
Примечания: Возвращаемая в параметре Dir строка всегда начинается с буквенной метки диска, двоеточия и обратной косой черты. Drive = 0 указывает на текущий диск, 1 - на диск A, 2 - на диск B и т.д. Возвращаемое значение содержится в Dir. Ошибки возвращаются в DosError.
Максимальная длина строки-результата определяется константой fsDirectory.
Прочее: См. также подпрограммы SetCurDir, CreateDir, RemoveDir. GetDir возвращает текущий каталог на заданном диске в виде стандартной строки Паскаля.
Процедура GetDate Модуль WinDos
─────────────────────────────────────────────────────────────────
Назначение: Возвращает текущую дату, установленную в операционной системе.
Описание: GetDate(var Year, M, Day, D : word)
Примечания: Возвращаемые значения имеют следующие диапазоны: Year (год) - 1980..2099, M (месяц) - 1..12, Day (число) 1..31, D (день недели) - 0..6 (где значение 0 соответствует воскресенью).
Прочее: См. также процедуры SetDate, GetTime, SetTime.
Процедура GetDir
─────────────────────────────────────────────────────────────────
Назначение: Возвращает текущий каталог на заданном диске.
Описание: GetDir(d : byte; var s : string)
Примечания: Параметр d представляет собой выражение целого типа, а s - переменную строкового типа. Значение текущего каталога на диске, заданного параметром d, возвращается в переменной s. Значение d = 0 указывает на текущий дисковод, 1 - задает дисковод A, 2 - В и т.д.
Процедура GetDir не выполняет сама по себе проверку ошибок. Если в параметре d задан недопустимый каталог, в s возвращается '\' (как будто это корневой каталог на недопустимом диске).
Прочее: См. также процедуры ChDir, DiskFree, DiskSize, MkDir, RmDir. Подпрограмма GetCurDir выполняет те же функции, что и GetDir, но вместо строки Турбо Паскаля воспринимает в качестве аргумента строку, завершающуюся нулем.
Функция GetEnvVar Модуль WinDos
─────────────────────────────────────────────────────────────────
Назначение: Возвращает значение заданной переменной операционной среды.
Описание: GetEnvVar(VarName : PChar)
Примечания: Функция GetEnvVar возвращает указатель на значение заданной переменной VarName, например, указатель на первый символ после знака равенства = в записи операционной среды, заданной параметром VarName. Имя переменной может указываться как строчными (нижний регистр), так и прописными (верхний регистр) буквами, но оно не должно включать в себя знак равенства (=). Если заданная переменная операционной среды не существует, то функция GetEnvVar возвращает указатель nil.
Пример:
uses WinDos;
var
begin
Write('Текущий маршрут: ', GetEnvVar('PATH'));
end.
Процедура GetFAttr Модуль WinDos
─────────────────────────────────────────────────────────────────
Назначение: Возвращает атрибуты файла.
Описание: GetFAttr(var f; var Attr : Word);
Примечания: Параметр f должнен представлять собой файловую переменную, соответствующую типизованному, нетипизованному или текстовому файлу, для которого должно быть выполнено присваивание файловой переменой, но который не должен быть открыт. Проверка атрибутов Attr выполняется путем сравнения их с масками, заданными в виде констант в модуле WinDos:
const
{ константы атрибутов файла }
ReadOnly = $01; { только чтение }
Hidden = $02; { "скрытый" файл }
SysFile = $04; { системный файл }
VolumeId = $08; { идентификатор тома }
Directory = $10; { каталог }
Archive = $20; { архивизация }
AnyFile = $3F; { прочий файл }
Коды ошибок можно получить с помощью функции DosError. Возможными кодами ошибок являются код 3 (недопустимый маршрут) и код 5 (файл недоступен).
Ограничения: Файл f не должен быть открыт.
Прочее: См. также процедуры SetFAttr, SetFAttr, SetFTime.
Пример:
uses WinDos;
var
f : file;
attr : byte;
begin
{ получить из командной строки имя файла }
Assign(f, ParamStr(1));
GetFAttr(f, attr);
Writeln(ParamStr(1));
ifDosError <> 0 then
Writeln('Код ошибки DOS = ', DosError)
else
begin
Writeln('Атрибут = ', attr);
{ определить тип атрибута файла с помощью флагов в модуле
Dos }
if attr and ReadOnly <> 0 then
Writeln('Файл доступен только по чтению');
if attr and Hidden <> 0 then
Writeln('"Скрытый" файл');
if attr and SysFile <> 0 then
Writeln('Системный файл');
if attr and VolumeId <> 0 then
Writeln('Идентификатор тома');
if attr and Directory <> 0 then
Writeln('Каталог');
if attr and Archive <> 0 then
Writeln('Архивизируемый (обычный) файл');
end; { else }
end.
Процедура GetFTime Модуль WinDos
─────────────────────────────────────────────────────────────────
Назначение: Возвращает дату и время последней записи файла.
Описание: GetFTime(var f; var Time)
Примечания: Параметр f должен представляеть собой файловую переменную, соответствующую типизованному, нетипизованному или текстовому файлу, для которого должно быть выполнено присваивание файловой переменной, но который не должен быть открыт. Значение времени, возвращаемое в параметре Time, может быть распаковано путем обращения к процедуре UnpackTime. Коды ошибок можно получить с помощью функции DosError. Единственным возможным кодом ошибки является код 6 (недопустимая обработка файла).
Ограничения: Файл должен быть открыт.
Прочее: См. также процедуры SetFTime, PackTime, UnPackTime.
Процедура GetIntVec Модуль WinDos
─────────────────────────────────────────────────────────────────
Назначение: Возвращает адрес указанного вектора прерываний.
Описание: GetIntVec(Int : byte; Vec : pointer)
Примечания: Параметр Int задает номер вектора прерывания (от 0 до 255), а его адрес возвращается в параметре Vec.
Прочее: См. также процедуру SetIntVec.
Процедура GetMem
─────────────────────────────────────────────────────────────────
Назначение: Создает новую динамическую переменную указанного размера и помещает адрес блока в переменную-указатель.
Описание: GetMem(var P : pоinter; Size : word)
Примечания: Параметр P является переменной-указателем и может относится к любому типу указателей. Параметр Size имеет длину в слово и задает размер (в байтах) области памяти, выделяемой для динамической переменной. На вновь созданную переменную можно ссылаться с помощью P^.
Если для выделения памяти под новую динамическую переменную в динамически распределяемой области недостаточно свободной памяти, то во время выполнения программы происходит ошибка. (Этой ошибки можно избежать - см. раздел "Переменная HeapError" в Главе 16).
Ограничения: Наибольший блок, который может быть выделен в динамически распределяемой области памяти, составляет 65521 байт (64К - $F).
Прочее: См. также процедуры New, FreeMem, Dispose.
Процедура GetTime Модуль WinDos
─────────────────────────────────────────────────────────────────
Назначение: Возвращает установленное в операционной системе текущее время.
Описание: GetTime(var hour, min, sec, ssec : word)
Примечания: Возвращаемые параметры принимают следующие значения: hour (час) - от 0 до 23, min (минута) - от 0 до 59, sec (секунда) - от 0 до 59 и ssec (сотая доля секунды) - от 0 до 99.
Прочее: См. также процедуры SetTime, GetDate, SetDate, UnpackTime.
Процедура GetVerify Модуль WinDos
─────────────────────────────────────────────────────────────────
Назначение: Возвращает состояние флага проверки DOS.
Описание: GetVerify(var Flag : boolean)
Примечания: Данная процедура возвращает состояние флага проверки DOS. При сброшенном флаге (False) проверка при записи на диск не выполняется. При установленном флаге (True) для обеспечения правильности записи все операции записи на диск проверяются.
Прочее: См. также процедуру SetVerify.
Процедура GotoXY Модуль WinCrt
─────────────────────────────────────────────────────────────────
Назначение: Позиционирует курсор в точку на виртуальном экране с заданными координатами.
Описание: GoToXY(X, Y : byte)
Примечания: Верхний левый угол задается кординатами (1,1). Переменная Cursor устанавается в значение (X - 1,Y - 1), так как в ней записывается позиция курсора относительно точки (0,0), а не (1,1).
Процедура Halt
─────────────────────────────────────────────────────────────────
Назначение: Останавливает выполнение программы и возвращает управление операционной системе.
Описание: Наlt [ (ExtCode : word) ]
Примечания: Параметр ExtCode (код выхода) представляет собой необязательное выражение длиной в слово, которое задает код выхода из программы. Процедура Наlt без параметров соответствует вызову Наlt(0). Код выхода может проверяться порождающим процессом с помощью функции EхitCode модуля Dos или с помощью проверки ERRORLEVEL в файле пакетной обработки DOS.
Заметим, что процедура Наlt инициализирует выполнение имеющихся в модуле процедур завершения (см. Главу 8).
Прочее: См. также процедуру Exit, RunError.
Функция Hi
─────────────────────────────────────────────────────────────────
Назначение: Возвращает старший байт аргумента.
Описание: Нi(x)
Тип результата: Байт.
Примечания: Параметр x представляет собой выражение целого типа или слово. Функция Нi возвращает старший байт x в виде значения без знака.
Прочее: См. также функции Lo, Swap.
Пример:
var
w : word;
begin
w := Hi($1234); { $12 }
end;
Процедура Inc
─────────────────────────────────────────────────────────────────
Назначение: Увеличивает значение переменной.
Описание: Inc(x [ ; n : longint ] )
Примечания: Параметр x представляет собой переменную перечислимого типа, а n - целочисленное выражение. Значение x увеличивается на 1 (или на n в случае явного задания n). То есть Inс(x) соответствует x := x+1, а Inс(x,n) соответствует x := x+n. Функция Inс порождает оптимизированный код и особенно полезна в больших циклах.
Прочее: См. также функции Dec. Pred, Succ.
Пример:
var
IntVar : intege;
LongIntVar : longint;
begin
Inc(IntVar); { intVar := IntVar + 1 }
Inc(LongIntVar); { LongIntVar := LongIntVar + 5 }
Процедура InitWinCrt Модуль WinCrt
─────────────────────────────────────────────────────────────────
Назначение: Создает окно CRT (если оно еще не создано).
Описание: InitWinCrt
Примечания: Операции Read, Readln, Write или Writeln с файлом, который присвоен окну CRT, для обеспечения существования окна CRT автоматически вызывают процедуру InitCrt. Для определения характеристик окна CRT процедура InitWinCrt использует переменные WindowOrg, WindowSize, ScreenSize и WindowTitle.
Процедура Insert
─────────────────────────────────────────────────────────────────
Назначение: Вставляет в строку подстроку.
Описание: Insert(String1 : string; var s : string; Indx : integer)
Примечания: Параметр String1 представляет собой выражение строкового типа. Параметр s - переменная строкового типа любой длины. Параметр Indx является выражением целого типа. Данная процедура вставляет строку, задаваемую параметром String1, в строку, задаваемую параметром s, начиная с позиции, определяемой параметром "индекс". Если получившаяся в результате строка превышает 256 символов, то она усекается до 255 символов.
Прочее: См. также процедуры Delete, Copy, ConCat, Length, Pos.
Пример:
var
s : string;
begin
s := 'Honest Lincoln';