Вниз
Скачать: CL | DM;

Функция 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.008 c
14-1136
vopros
2002-05-27 10:03
2002.07.01
Осмотр женщин выявил следующие результаты


8-1116
Digitman
2002-02-24 14:26
2002.07.01
Всем интересующимся цифровой обработкой сигналов !!!


1-1029
Looser
2002-06-17 23:39
2002.07.01
Как можно реализовать задержку в выполнении программы?


4-1246
heruvim4ik
2002-04-26 20:43
2002.07.01
Нажатие на крестик (закрытие программы)


14-1187
kaif
2002-05-31 13:50
2002.07.01
Создание собственной пирамиды Хеопса.




   Наверх