Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Несколько полезных функций для работы со строками

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 ;

Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay