Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void _stdcall Air::_CreateFormatString(char *_Output, char *_Format, DWORD *dwArgument){
- int i, j, k, last = 0, iSize;
- char temp[MaxString] = {0};
- for(i=j=k=0; _Format[i]; i++){
- if(_Format[i]=='%'){
- memcpy(&_Output[last], temp, j);
- last += j;
- _Output[last] = 0;
- ZeroMemory(temp, MaxString);
- j=0;
- switch(_Format[i+1]){
- case 's'://String
- iSize = GetStringLength((char *)dwArgument[k]);
- memcpy(&_Output[last], (char *)dwArgument[k], iSize);
- last += iSize;
- break;
- case 'd'://DWORD
- DWORDtoChar(temp, dwArgument[k]);
- iSize = GetStringLength(temp);
- memcpy(&_Output[last], temp, iSize);
- last += iSize;
- _Output[last] = 0;
- ZeroMemory(temp, MaxString);
- break;
- case 'w'://WORD
- WORDtoChar(temp, dwArgument[k]);
- iSize = GetStringLength(temp);
- memcpy(&_Output[last], temp, iSize);
- last += iSize;
- _Output[last] = 0;
- ZeroMemory(temp, MaxString);
- break;
- case 'b'://BYTE
- BYTEtoChar(temp, dwArgument[k]);
- iSize = GetStringLength(temp);
- memcpy(&_Output[last], temp, iSize);
- last += iSize;
- _Output[last] = 0;
- ZeroMemory(temp, MaxString);
- break;
- case 'i'://int
- INTtoChar(temp, dwArgument[k]);
- iSize = GetStringLength(temp);
- memcpy(&_Output[last], temp, iSize);
- last += iSize;
- _Output[last] = 0;
- ZeroMemory(temp, MaxString);
- break;
- case 'a':
- BYTEArraytoString(temp, dwArgument[k+1], (BYTE *)dwArgument[k]);
- iSize = dwArgument[k+1]*3-1;
- memcpy(&_Output[last], temp, iSize);
- last += dwArgument[k+1]*3-1;
- _Output[last] = 0;
- ZeroMemory(temp, MaxString);
- k++;
- break;
- default:
- temp[j] = _Format[i];
- i--;
- j++;
- k--;
- break;
- }
- i++;
- k++;
- }
- else{
- temp[j] = _Format[i];
- j++;
- }
- }
- iSize = GetStringLength(temp);
- memcpy(&_Output[last], temp, iSize);
- last += iSize;
- _Output[last] = 0;
- ZeroMemory(temp, MaxString);
- }
- void _stdcall Air::CreateFormatString(char *_Output, char *_Format, ...){
- _CreateFormatString(_Output, _Format, (DWORD *)(&_Format+1));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement