Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС
выпущен 4 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



Несколько полезных функций для работы со строками

Strs : Тоже самое, что и Str (для integer/longint), но в более функциональной форме, что позволяет сделать преобразование числа в строку более простым.

Before : возвращает часть стоки, расположенную перед задаваемой подстрокой, или целиком исходную строку, если данная подстрока не обнаружена.

After : как вы можете догадаться, возвращает часть стоки, расположенную после задаваемой подстрокой, или пустую строку, если данная подстрока не обнаружена.

FP : данная функция создана для работы в стиле условной строки "C", которая возвращает результат в виде другой строки, основываясь на результатах логического выражения. (я мог бы осуществить поддержку различных типов данных, но не посчитал это особо актуальным для формирования выходной строки).


 Function Strs (I:longint) : string ;
 Var
   X : string[16] ;
 begin
   STR (I,X) ;
   Strs := X ;
 end ;
 

Пример:


 s :='пользователь=Вася';
 Text := After ('=',s);
 Text := Text+fp(Text<>'',' есть #Неизвестный ') + Before ('=',s);
 

Text будет содержать 'Вася есть пользователь'
Если s содержало бы только 'пользователь' или 'пользователь=' то Text был бы 'Неизвестный пользователь'


 Function Before ( Src:string ; Var S:string ) : string ;
 Var
   F : Word ;
 begin
   F := POS (Src,S) ;
   if F=0 then
     Before := S
   else
     Before := COPY(S,1,F-1) ;
 end ;
 


 Function After ( Src:string ; Var S:string ) : string ;
 Var
   F : Word ;
 begin
   F := POS (Src,S) ;
   if F=0 then
     After := ''
   else
     After := COPY(S,F+length(src),length(s)) ;
 end ;
 

FP позволяет легко изменить текст взависимости от единственного/множественного числа, рода или любых логических условий.

Пример 1:


 MyText := strs(N)+' компьютер'+FP (N>1,'ы') ;
 

Пример 2:


 if Nargs<>4 then
   Msg :='Имеется '+FP(Nargs>4,'много#несколько')+' аргументов.');
 


 const
   MY_SEP : Char = '#';
 
 Function FP ( B : Boolean ; S:string ) : string ;
 begin
   if POS (MY_SEP,S)>0 then
     if B then
       S := Before (MY_SEP,S)
     else
       S := After (MY_SEP,S)
   else
   if not B then
     S := '' ;
   FP := S ;
 end ;
 




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS