Ось деякі написані мною функції, що співслужили гарну службу. Самі ви можете почати з модифікації функції trim (), наприклад, розробити функції TrimRight $ і TrimLeft $, що видаляють прогалини з правої і лівої частини рядків відповідно. Також ви можете створити функції, що працюють як з паскалевская рядками, так і зі сторокой, що закінчуються нулем (термінатором).
BlackSpace = [# 33. # 126];
squish () повертає рядок з усіма білими пробілами і з віддаленими
повторюваними апострофами.
>
function squish (const Search: string): string;
var
for Index: = 1 to Length (Search) do
if InString or (Search [Index] in BlackSpace) then
InString: = ((Search [Index] = '' '') and (Search [Index - 1] <> '\'))
before () повертає частину стоки, що знаходиться перед
першій знайденої підрядка Find в рядку Search. якщо
Find не знайдено, функція повертає Search.
>
function before (const Search, Find: string): string;
var
if index = 0 then
after () повертає частину рядка, що знаходиться після
першій знайденої підрядка Find в рядку Search. якщо
Find не знайдено, функція повертає NULL.
>
function after (const Search, Find: string): string;
var
if index = 0 then
RPos () повертає перший символ останньої знайденої
подстроки Find в рядку Search. Якщо Find не знайдено,
функція повертає 0. Подібна реверсувати Pos ().
>
function RPos (const Find, Search: string): byte;
var
FindPtr, SearchPtr, TempPtr: PChar;