Советы по Delphi

       

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


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

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

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

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

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 thenBefore := SelseBefore := 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 thenAfter := ''elseAfter := COPY(S,F+length(src),length(s)) ;end ;

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

Пример 1:

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

Пример 2:

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

const MY_SEP : Char = '#';

Function FP ( B : Boolean ; S:string ) : string ;

begin
if
POS (MY_SEP,S)>0 thenif B thenS := Before (MY_SEP,S)elseS := After (MY_SEP,S)elseif not B then S := '' ;FP := S ;end ;

[000260]



Содержание раздела