Работаем со строками

Источник: pcnext
Darkmaster

Сегодня мы с вами разберемся, как в Delphi можно работать со строками, мы рассмотрим ряд функций и процедур которые пришли к нам еще из самого Pascal . Некоторые из них есть только в Object Pascal . Ну что же приступим, для начала разберемся, как можно переводить строку в число и обратно. Для этого используются функции IntToStr - для перевода числа в строку и StrToInt - для перевода строки в число. Вот пример :

var
a,b:Integer;
str:string;
begin
a:=5;
b:=1;
str:=IntToStr(a+b);
ShowMessage(str);
end;

Ну а противоположную функцию можно смело использовать например если вы хотите преобразовать строку лежащую, например в компоненте TEdit . Вот пример:

var
a:Integer;
begin
a:=StrToInt(Edit1.Text)+StrToInt(Edit2.Text);
Edit3.Text:=IntToStr(a);
end;

Следующая функция, которую мы рассмотрим, определяет длину строки. Это функция Length ( str ), где str это строка, которую мы должны измерить.

var
a:Integer;
str:string;
begin
str:='Hello World!';
a:=Length(str);
end;

В переменной а будет хранится число 12, именно столько символов, включая пробел содержит строка ‘ Hello World !'.

Следующая процедура Delete ( str , index , count ) - она удаляет количество count символов начиная с index в строке str . Ловите пример

var
str:string;
begin
str:='Hello World!';
Delete(str,6,7);
ShowMessage(str);
end;

На экран будет выведено слово Hello . Следующая функция Insert ( substr , str , index ) - эта функция вставляет подстроку substr в строку str , начиная с index . Например, давайте представим строку ‘ my girlfriend ' и давайте преобразуем ее в строку ‘ my best girlfriend '.

var
str,substr:string;
begin
str:='my girlfriend';
substr:='best ';
Insert(substr,str,4);
ShowMessage(str);
end;

Следующая функция с которой мы познакомимся соединяет строки. Это Concat ( s 1, s 2,…). Вот практический пример:

var
str1,str2,str3:string;
begin
str1:='MU';
str2:=' versus';
str3:=' Arsenal';
str1:=Concat(str1,str2,str3);
ShowMessage(str1);
end;

В итоге в str 1 мы получили строку ‘ MU versus Arsenal '.

Теперь давайте научимся копировать из строки определенное количество символов. Для этого используется функция Copy . Итак, Copy ( str , index , count ) - нужно копировать количество символов count начиная с index из строки str . Пример :

var
str1,str2:string;
begin
str1:=' один два три ';
str2:=Copy(str1,6,3);
ShowMessage(str2);
end;

В итоге на экране появится строка два.

Теперь познакомимся с функцией Pos ( str 1, str 2) которая возвращает число, например:

var
str1,str2:string;
i:Integer;
begin
str1:='Hello world';
str2:='world';
i:=Pos(str2,str1);
end;

После выполнения данного кода в переменной I будет хранится число 7. Именно с него начинается слово world в строке str1.

PosEx по сути функция очень похожая на предыдущую. PosEx (substr, str, x) - тут все по сути почти также как и в предыдущей, только поиск начинается с x символов.

Чтобы перевести вещественное число в строку надо использовать функцию FloatToStr , а если надо наоборот то StrToFloat . Но у этих двух функции есть аналоги - val b str . Сейчас на примерах мы рассмотрим как с ними работать.

Var
S: string;
X: Extended;
code: integer;
Begin
S:= ' 7 . 8 ';
Val(S, X, code);
End ;

Результатом этого кода будет то, что в переменной x будет хранится число 7,8. Для чего нам нужен code ? Он выдает ноль если все в порядке или номер символа котолрый не является числом если произошла ошибка. Теперь обратный пример :

Var
S: string;
X: integer;
Begin
X:= 10 ;
Str(X, S);
End;

После этого кода в переменной S будет хранится строковое значение ‘10'. Вот и все! Если есть вопросы идите на наш форум, там вам всегда помогут.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=2874