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

Вниз

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

 
Буратиноо   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.041 c
11-1197987179
nikfel
2007-12-18 17:12
2009.03.29
Как проиграть wav-файл.


2-1233919614
niro
2009-02-06 14:26
2009.03.29
Не получается осуществить переход по ссылке в IE


15-1232949323
El
2009-01-26 08:55
2009.03.29
Исходные тексты программ


15-1233064634
IGray
2009-01-27 16:57
2009.03.29
Локализ-я с пом. D2007-D2009 и назойливые предложения сохраниться


11-1189525265
matroskin66
2007-09-11 19:41
2009.03.29
корректное завершение





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский