Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.03.29;
Скачать: CL | DM;

Вниз

Перевод на С++   Найти похожие ветки 

 
Буратиноо   (2009-01-19 12:49) [0]

Помогите пожалуйста перевести этот код на С++.
function Convd(x:integer):char;
begin
if x<10 then Convd:=chr(x+ord("0"))
else Convd:=Chr(x-10+ord("A"));
end;
function 10toR(N,R:integer):string;
var s:string;
begin
s:="";
repeat
s:=convd(N mod R)+S;
N:=N div R
until N=0;
10toR:=s;
end;


 
Сергей М. ©   (2009-01-19 12:51) [1]

Здесь же не изба-переводильня)
Да и нет в C++ точного аналога дельфийских длинных строк


 
Riply ©   (2009-01-19 13:26) [2]

> [0] Буратиноо   (19.01.09 12:49)
> Помогите пожалуйста перевести этот код на С++.

А может лучше попробовать "свистнуть" у ReactOS`цев ?  :)

NTSTATUS NTAPI RtlIntegerToChar  (  ULONG  value,      
 ULONG  base,      
 ULONG  length,      
 PCHAR  str      
)      
00518 {
00519     CHAR buffer[33];
00520     PCHAR pos;
00521     CHAR digit;
00522     ULONG len;
00523
00524     if (base == 0) {
00525         base = 10;
00526     } else if (base != 2 && base != 8 && base != 10 && base != 16) {
00527         return STATUS_INVALID_PARAMETER;
00528     } /* if */
00529
00530     pos = &buffer[32];
00531     *pos = "\0";
00532
00533     do {
00534         pos--;
00535         digit = value % base;
00536         value = value / base;
00537         if (digit < 10) {
00538             *pos = "0" + digit;
00539         } else {
00540             *pos = "A" + digit - 10;
00541         } /* if */
00542     } while (value != 0L);
00543
00544     len = &buffer[32] - pos;
00545     if (len > length) {
00546         return STATUS_BUFFER_OVERFLOW;
00547     } else if (str == NULL) {
00548         return STATUS_ACCESS_VIOLATION;
00549     } else if (len == length) {
00550         memcpy(str, pos, len);
00551     } else {
00552         memcpy(str, pos, len + 1);
00553     } /* if */
00554     return STATUS_SUCCESS;
00555 }  


 
icWasya ©   (2009-01-19 14:32) [3]

itoa +f1


 
ketmar ©   (2009-01-19 14:55) [4]

именно на C++? rtfm STL, rtfm boost. и не надо велосипедов делать.

---
Do what thou wilt shall be the whole of the Law.



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

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

Наверх




Память: 0.48 MB
Время: 0.02 c
2-1233570147
CodeMaster
2009-02-02 13:22
2009.03.29
Отключение скроллбаров


2-1233138545
Oleg_teacher
2009-01-28 13:29
2009.03.29
Узнать могу ли я создать файл в папке


3-1217238791
Fynjy
2008-07-28 13:53
2009.03.29
как вручную создать TIBDataBase


15-1233064649
KilkennyCat
2009-01-27 16:57
2009.03.29
А что с KOL просиходит?


2-1233601425
cruiser
2009-02-02 22:03
2009.03.29
WinInet и закачка файла из Интернет через прокси с авторизацией.