Главная страница
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.01 c
14-1212
Igorek
2002-05-17 11:56
2002.07.01
Как Вам


1-1013
Neitrimo
2002-06-20 16:51
2002.07.01
MDI Child форма в DLL(их несколько), MDI формы - главная.. как?


3-895
Termik
2002-06-07 12:08
2002.07.01
Как внести данные в таблицу внутри EXECUTE IMMEDIATE ?


3-892
Filat
2002-06-07 12:02
2002.07.01
Почему возникают ошибки подключения ODBC ?


14-1143
~Sergius
2002-05-19 19:37
2002.07.01
ВНИМАНИЕ! СЕКРЕТНЫЕ ТЕХНОЛОГИИ!!!