![]() |
![]() ![]() ![]() ![]() |
|
Форматирование строки с использованием подстановочных символовDelphi , Синтаксис , Текст и Строки
Автор: Dimka Maslov
{ **** UBPFD *********** by delphibase.endimus.com ****
>> Форматирование строки с использованием подстановочных символов %1, %2 и т.д.
Функция заменяет в строке Str все подстроки '%1', '%2', и т.д. На
соответсвующие значения из массива Values. При этом значения этого массива
не должны содержать подстановочных подстрок, в противном случае возможно
зависание функции.
Зависимости: SysUtils
Автор: Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург
Copyright: Dimka Maslov
Дата: 15 мая 2002 г.
***************************************************** }
{Эта функция работает неверно, если в строке, на которую надо
заменить %1,%2,… содержится одна из строк %1,%2,…
( она зависнет в бесконечном цикле )}
function FmtString(const Str: string; const Values: array of string): string;
function InternalPos(SubStr: string; Str: PChar; out P: Integer): Integer;
var
Ptr: PChar;
begin
Ptr := StrPos(Str, PChar(SubStr));
if Ptr = nil then
Result := -1
else
Result := Integer(Ptr) - Integer(Str);
P := Result;
end;
function InternalReplace(const Str, OldSub, NewSub: string): string;
var
PrePos: Integer;
CurPos: Integer;
OldLen, NewLen: Integer;
begin
PrePos := 1;
Result := Str;
OldLen := Length(OldSub);
NewLen := Length(NewSub);
while InternalPos(OldSub, @Result[PrePos], CurPos) >= 0 do
begin
Inc(PrePos, CurPos);
Delete(Result, PrePos, OldLen);
Insert(NewSub, Result, PrePos);
Inc(PrePos, NewLen);
end;
end;
var
i: Integer;
begin
Result := Str;
for i := High(Values) downto Low(Values) do
Result := InternalReplace(Result, '%' + IntToStr(i + 1), Values[i]);
end;
Пример использования:
FmtString('%1 %2', ['Пример', 'использования']);
Вот перевод текста на русский язык: Это функция Delphi, называемая Функция использует два вспомогательных функции: Разбивка:
Пример использования функции: Обратите внимание:
В целом, это базовая реализация форматирования строк с помощью placeholder. Она может быть улучшена добавлением дополнительных функций (например, обработкой экранированных символов, поддержкой нескольких форматов) и проверок на ошибки. В статье описана функция FmtString для форматирования строки с использованием подстановочных символов %1, %2 и т.д., заменяющих соответствующие значения из массива Values. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш :: Главная :: Текст и Строки ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 | ||||