Форум: "Начинающим";
Текущий архив: 2008.01.13;
Скачать: [xml.tar.bz2];
Внизinttostr на winapi Найти похожие ветки
← →
istok (2007-12-10 19:52) [0]как, не используя string и sysutils, записать результат getlasterror в pchar ?
← →
istok (2007-12-10 19:53) [1]и еще буду оч признателен совету, как сделать аналог timetostr(now) на winapi.
(я так понимаю, gettickcount как-то конвертировать надо или нет?)
← →
Palladin © (2007-12-10 19:57) [2]inttostr - str + F1 (или учебник паскаля)
timetostr - никто не мешает заглянуть в sysutils.pas и выдернуть от туда функцию
← →
palva © (2007-12-10 20:31) [3]pchar это четырехбайтовое целое число. Поэтому можно просто присвоить. Только необходимо приведение типов. Вспомнив недавние советы Подгорецкого, пишу:
{$APPTYPE CONSOLE}
uses Windows;
var
p: PChar;
begin
Integer(p) := GetLastError;
Writeln(Integer(p)); // 126
end.
← →
Правильный_Вася (2007-12-10 20:56) [4]Format()
sprintf
← →
istok (2007-12-11 02:42) [5]
Palladin © (10.12.07 19:57) [2]
> inttostr - str + F1 (или учебник паскаля)
модуль system тоже юзать низя, только windows
> timetostr - никто не мешает заглянуть в sysutils.pas и выдернуть
> от туда функцию
мешает. там кода немало, и он везде string использует.
> palva © (10.12.07 20:31) [3]
сенкс
> Правильный_Вася (10.12.07 20:56) [4]
>
> Format()
из какой длл? (я так понял что это не сисютиловский формат, который по условию не подходит)
> Правильный_Вася (10.12.07 20:56) [4]
>
> sprintf
судя по описанию в мсдн то что надо - а в какой либе искать? примерчика юза под delphi нет?
← →
Leonid Troyanovsky © (2007-12-11 06:02) [6]
> istok (11.12.07 02:42) [5]
> модуль system тоже юзать низя, только windows
Мазохист?
> судя по описанию в мсдн то что надо - а в какой либе искать?
http://delphimaster.net/view/4-1196006379/
--
Regards, LVT.
← →
Anatoly Podgoretsky © (2007-12-11 08:48) [7]
> модуль system тоже юзать низя, только windows
Почему?
И как ты это избежишь?
← →
Palladin © (2007-12-11 09:03) [8]
> istok (11.12.07 02:42) [5]
и как же ты его использовать не будешь интересно? :)
← →
@!!ex © (2007-12-11 09:15) [9]> модуль system тоже юзать низя, только windows
Смешно. Этот модуль линкуется независимо от твоего желания.
← →
palva © (2007-12-11 09:58) [10]
> судя по описанию в мсдн то что надо - а в какой либе искать?
> примерчика юза под delphi нет?
{$APPTYPE CONSOLE}
function wsprintf(buf: PChar; const frm: PChar):Integer;
CDecl; VarArgs; external "User32.dll" name "wsprintfA";
var
buf: array [0..100] of Char;
s: String;
begin
s := "Happy New Year";
wsprintf(@buf, "%02d/%02d - %s", 1, 1, @s[1]);
WriteLn(buf); // 01/01 - Happy New Year
end.
← →
istok (2007-12-11 21:03) [11]
> Смешно. Этот модуль линкуется независимо от твоего желания.
и к длл тоже?
← →
@!!ex © (2007-12-11 21:22) [12]> [11] istok (11.12.07 21:03)
да
← →
DVM © (2007-12-11 21:45) [13]
> и еще буду оч признателен совету, как сделать аналог timetostr(now)
> на winapi.
function GetTime: string;
var
st: TSystemTime;
Time, FormatString: PChar;
TimeSize, FormatStringSize: integer;
begin
Result := "";
FormatStringSize := GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STIMEFORMAT, nil, 0);
GetMem(FormatString, FormatStringSize * SizeOf(Char));
GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_STIMEFORMAT, FormatString, FormatStringSize);
GetLocalTime(st);
TimeSize := GetTimeFormat(LOCALE_USER_DEFAULT, 0, nil, FormatString, nil, 0);
GetMem(Time, TimeSize * SizeOf(Char));
GetTimeFormat(LOCALE_USER_DEFAULT, 0, @st, FormatString, Time, TimeSize * SizeOf(Char));
result := Time;
FreeMem(Time);
FreeMem(FormatString);
end;
//------------------------------------------------------------------------------
function GetDate: string;
var
st: TSystemTime;
Date, FormatString: PChar;
DateSize, FormatStringSize: integer;
begin
Result := "";
FormatStringSize := GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLONGDATE, nil, 0);
GetMem(FormatString, FormatStringSize * SizeOf(Char));
GetLocaleInfo(LOCALE_USER_DEFAULT, LOCALE_SLONGDATE, FormatString, FormatStringSize);
GetLocalTime(st);
DateSize := GetDateFormat(LOCALE_USER_DEFAULT, 0, nil, FormatString, nil, 0);
GetMem(Date, DateSize * SizeOf(Char));
GetDateFormat(LOCALE_USER_DEFAULT, 0, @st, FormatString, Date, DateSize * SizeOf(Char));
result := Date;
FreeMem(Date);
FreeMem(FormatString);
end;
← →
Palladin © (2007-12-12 11:27) [14]
> DVM © (11.12.07 21:45) [13]
а GetMem/FreeMem использовать нельзя! :) они в System!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.01.13;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c