Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.01;
Скачать: 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 вся ветка

Текущий архив: 2002.07.01;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.016 c
7-1222
Kaz_Progr
2002-04-05 05:53
2002.07.01
Как разбить число типа word на 2 типа байт


14-1179
Dimka Maslov
2002-05-27 18:48
2002.07.01
Разработка UBPFD закончена!


1-1003
Bocman
2002-06-20 14:45
2002.07.01
Немного не по теме...


3-912
PTE
2002-06-07 18:15
2002.07.01
как правильно связать 2 таблицы


1-955
аак
2002-06-19 14:07
2002.07.01
Как скопиравть папку со всем содержимым?