Форум: "Потрепаться";
Текущий архив: 2002.07.01;
Скачать: [xml.tar.bz2];
ВнизФункция wvsprintf Найти похожие ветки
← →
Внук (2002-05-28 10:33) [0]В чате мной был поднят вопрос об использовании функций форматирования строк с помощью API. Как оказалось, не совсем тривиальная проблема. По просьбе коллег привожу результат своих экспериментов - работоспособный тестовый пример. Если кому пригодится, буду рад :)
procedure WinFormat;
const FormatStr="String Parameter:"%s", Number Parameter:%05d";
var TargetString,StrParam:AnsiString;
NumberParam,FormatResult:Integer;
ParamArray:array[0..1] of Pointer;
begin
NumberParam:=105;
StrParam:="Hello";
SetLength(TargetString,100); // Существенно !!!
ParamArray[0]:=@StrParam[1];
ParamArray[1]:=Pointer(NumberParam);
FormatResult:=wvsPrintF(PChar(TargetString),FormatStr,PChar(@ParamArray));
if FormatResult<Length(FormatStr) then ShowMessage("An error has been occured!")
else ShowMessage(TargetString);
end;
← →
Dimka Maslov (2002-05-28 10:38) [1]Кинь его в UBPFD http://delphibase.endimus.ru
← →
Игорь Шевченко (2002-05-28 10:42) [2]А Format не проще ? :-)))
← →
Внук (2002-05-28 10:42) [3]>>Dimka Maslov © (28.05.02 10:38)
Так это же не готовая функция, так, пример :( Но если нужен, забирайте, я на копирайте не зациклен :)
← →
Внук (2002-05-28 10:44) [4]>>Игорь Шевченко ©
Проще, но я же вчера говорил - спортивный интерес :) Тем более, обидно подключать SysUtils из-за одной функции
← →
McSimm (2002-05-28 10:47) [5]Дело не в практической ценности, а в приеме работы со структурами данных MS. Иногда очень не хватает такой информации
← →
Игорь Шевченко (2002-05-28 10:47) [6]Ну раз спортивный - тогда конечно другое дело.
Только ошибки искать замучаешься :-)
← →
Игорь Шевченко (2002-05-28 10:50) [7]McSimm © (28.05.02 10:47)
MS тут не причем :-)
Это стандартная функция с переменным числом параметров.
С-шный компилятор просто подставляет адрес списка параметров,
следующих за последним объявленным.
Для примера - файл stdarg.h, макро va_start, va_arg
С уважением,
← →
McSimm (2002-05-28 11:01) [8]>Игорь Шевченко © (28.05.02 10:50)
Вот-вот. Хорошо когда знаешь.
Бывает открываешь MSDN и читаешь
va_list arglist // variable list of format-control arguments
обычно потом долго думаю, чтобы такого передать этой функции, чтобы она не обиделась
:)
← →
Dimka Maslov (2002-05-28 11:25) [9]>внук
пусть не готовая функция, но всё же добавь её в базу. Важна идея.
← →
VuDZ (2002-05-28 11:26) [10]NULL, т.е. nil :>
пущай подумает, зараза :)
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2002.07.01;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.006 c