Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];

Вниз

IntToStr без модуля SysUtils.   Найти похожие ветки 

 
Mazenrat   (2002-09-16 15:36) [0]

Привет.

Поделитесь аналогом алгоритма преобразования IntToStr() на API. Не хочется использовать громоздкий модуль SysUtils.


 
Alx2   (2002-09-16 15:42) [1]

:)
см Val


 
Alx2   (2002-09-16 15:44) [2]

то есть я хотел сказать 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:46) [3]

С другой стороны, использование в uses модуля sysutils не такой уж большой вклад в размер ехешника дает.


 
Almaz   (2002-09-17 01:03) [4]


> Alx2 © (16.09.02 15:46)
> С другой стороны, использование в uses модуля sysutils не
> такой уж большой вклад в размер ехешника дает.

Смотря что считать небольшим :) На D5 пустой проект без SysUtils весит ~16кБ а с SysUtils ~42кБ. Так стоит ли добавлять 26кБ только из-за одной функции ?

Удачи.


 
Viktor Kushnir   (2002-09-17 07:20) [5]

Там такая куча полезных функций, что я не представляю как можно пользоваться только одной.


 
Mirovodin   (2002-09-17 11:08) [6]


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;


 
troits   (2002-09-17 11:39) [7]

Вот на API вариантик.

function Int2Str(Value : integer): string;
begin
SetLength(result, 15);
SetLength(result, wvsprintf(PChar(result), "%d", @Value));
end;


 
Mazenrat   (2002-09-17 13:14) [8]

Спасибо.


 
rhf   (2002-09-17 14:09) [9]

на будующее.... как они "это" сделали можно посотреть в исходниках саомго sysutils :)



Страницы: 1 вся ветка

Форум: "WinAPI";
Текущий архив: 2002.10.28;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
14-92689
Anatoly Podgoretsky
2002-10-06 12:01
2002.10.28
Наташенька (nata610@pisem.net) с днем рождения


3-92360
{bas}
2002-10-07 16:08
2002.10.28
чистый SQL


1-92556
Freeze
2002-10-16 08:44
2002.10.28
Помогите, нужно программно сделать копию отчета в Delphi


1-92497
alextov
2002-10-18 11:32
2002.10.28
Как правильно переименовать компонент в runtime ?


14-92666
Desdechado
2002-10-07 13:18
2002.10.28
Ассоциации





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский