![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
IntToStr без модуля SysUtils.
Mazenrat © (2002-09-16 15:36:00)Привет.
Поделитесь аналогом алгоритма преобразования IntToStr() на API. Не хочется использовать громоздкий модуль SysUtils.
rhf (2002-09-17 14:09:00) [1]на будующее.... как они "это" сделали можно посотреть в исходниках саомго sysutils :)
Mazenrat (2002-09-17 13:14:00) [2]Спасибо.
troits (2002-09-17 11:39:00) [3]Вот на API вариантик.
function Int2Str(Value : integer): string;
begin
SetLength(result, 15);
SetLength(result, wvsprintf(PChar(result), "%d", @Value));
end;
Mirovodin (2002-09-17 11:08:00) [4]
function Int2Str( Value : integer ) : String;
asm
XOR ECX, ECX
PUSH ECX
ADD ESP, -0Ch
PUSH EBX
LEA EBX, [ESP + 15 + 4]
PUSH EDX
CMP EAX, ECX
PUSHFD
JGE @@1
NEG EAX
@@1:
MOV CL, 10
@@2:
DEC EBX
CDQ
IDIV ECX
ADD DL, 30h
MOV [EBX], DL
TEST EAX, EAX
JNZ @@2
POPFD
JGE @@3
DEC EBX
MOV byte ptr [EBX], "-"
@@3:
POP EAX
MOV EDX, EBX
CALL System.@LStrFromPChar
POP EBX
ADD ESP, 10h
end;
Viktor Kushnir (2002-09-17 07:20:00) [5]Там такая куча полезных функций, что я не представляю как можно пользоваться только одной.
Almaz (2002-09-17 01:03:00) [6]
> Alx2 © (16.09.02 15:46)
> С другой стороны, использование в uses модуля sysutils не
> такой уж большой вклад в размер ехешника дает.
Смотря что считать небольшим :) На D5 пустой проект без SysUtils весит ~16кБ а с SysUtils ~42кБ. Так стоит ли добавлять 26кБ только из-за одной функции ?
Удачи.
Alx2 (2002-09-16 15:46:00) [7]С другой стороны, использование в uses модуля sysutils не такой уж большой вклад в размер ехешника дает.
Alx2 (2002-09-16 15:44:00) [8]то есть я хотел сказать Str.
Пример из хэлпа:
function MakeItAString(I: Longint): string;
{ Convert any integer type to a string }
var
S: string[11];
begin
Str(I, S);
Result:= S;
end;
Alx2 (2002-09-16 15:42:00) [9]:)
см Val