Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  3 609

•  TDictionary Custom Sort  5 747

•  Fast Watermark Sources  5 547

•  3D Designer  8 115

•  Sik Screen Capture  5 854

•  Patch Maker  6 337

•  Айболит (remote control)  6 326

•  ListBox Drag & Drop  5 188

•  Доска для игры Реверси  94 443

•  Графические эффекты  6 517

•  Рисование по маске  5 582

•  Перетаскивание изображений  4 709

•  Canvas Drawing  5 087

•  Рисование Луны  4 813

•  Поворот изображения  4 361

•  Рисование стержней  3 073

•  Paint on Shape  2 309

•  Генератор кроссвордов  3 179

•  Головоломка Paletto  2 504

•  Теорема Монжа об окружностях  3 284

•  Пазл Numbrix  2 158

•  Заборы и коммивояжеры  2 806

•  Игра HIP  1 779

•  Игра Go (Го)  1 698

•  Симулятор лифта  2 030

•  Программа укладки плитки  1 758

•  Генератор лабиринта  2 195

•  Проверка числового ввода  1 880

•  HEX View  2 180

•  Физический маятник  1 872

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

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



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 ;





Похожие по теме исходники

Нейросеть для распознавания образов

Механизм станка качалки для нефти

Весы для взвешивания

Кувшины для воды

 

Доска для игры Реверси

Примеры работы с БД

График работы




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте