Files
ProSystem-Core/core/Common.cpp
T

198 lines
7.1 KiB
C++
Executable File

// ----------------------------------------------------------------------------
// ___ ___ ___ ___ ___ ____ ___ _ _
// /__/ /__/ / / /__ /__/ /__ / /_ / |/ /
// / / \ /__/ ___/ ___/ ___/ / /__ / / emulator
//
// ----------------------------------------------------------------------------
// Copyright 2005 Greg Stanton
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
// (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
// ----------------------------------------------------------------------------
// Common.cpp
// ----------------------------------------------------------------------------
#include "Common.h"
std::string common_defaultPath;
// ----------------------------------------------------------------------------
// Format
// ----------------------------------------------------------------------------
std::string common_Format(double value) {
return common_Format(value, "%f");
}
// ----------------------------------------------------------------------------
// Format
// ----------------------------------------------------------------------------
std::string common_Format(double value, std::string specification) {
char buffer[17] = {0};
sprintf(buffer, specification.c_str( ), value);
return std::string(buffer);
}
// ----------------------------------------------------------------------------
// Format
// ----------------------------------------------------------------------------
std::string common_Format(uint value) {
char buffer[11] = {0};
sprintf(buffer, "%d", value);
return std::string(buffer);
}
// ----------------------------------------------------------------------------
// Format
// ----------------------------------------------------------------------------
std::string common_Format(word value) {
char buffer[6] = {0};
sprintf(buffer, "%d", value);
return std::string(buffer);
}
// ----------------------------------------------------------------------------
// Format
// ----------------------------------------------------------------------------
std::string common_Format(byte value) {
char buffer[4] = {0};
sprintf(buffer, "%d", value);
return std::string(buffer);
}
// ----------------------------------------------------------------------------
// Format
// ----------------------------------------------------------------------------
std::string common_Format(bool value) {
return (value)? "true": "false";
}
# if 0
// ----------------------------------------------------------------------------
// Format
// ----------------------------------------------------------------------------
std::string common_Format(HRESULT result) {
char buffer[10] = {0};
sprintf(buffer, "%#8x", result);
return std::string(buffer);
}
# endif
// ----------------------------------------------------------------------------
// ParseUint
// ----------------------------------------------------------------------------
uint common_ParseUint(std::string text) {
return (uint)atoi(text.c_str( ));
}
// ----------------------------------------------------------------------------
// ParseWord
// ----------------------------------------------------------------------------
word common_ParseWord(std::string text) {
return (word)atoi(text.c_str( ));
}
// ----------------------------------------------------------------------------
// ParseByte
// ----------------------------------------------------------------------------
byte common_ParseByte(std::string text) {
return (byte)atoi(text.c_str( ));
}
// ----------------------------------------------------------------------------
// ParseBool
// ----------------------------------------------------------------------------
bool common_ParseBool(std::string text) {
if(text.compare("true") == 0 || text.compare("TRUE") == 0 || text.compare("True") == 0) {
return true;
}
if(atoi(text.c_str( )) == 1) {
return true;
}
return false;
}
// ----------------------------------------------------------------------------
// Trim
// ----------------------------------------------------------------------------
std::string common_Trim(std::string target) {
int index;
for(index = target.length( ) - 1; index >= 0; index--) {
if(target[index] != 0x20 && target[index] != '\n') {
break;
}
}
return target.substr(0, index + 1);
}
// ----------------------------------------------------------------------------
// Remove
// ----------------------------------------------------------------------------
std::string common_Remove(std::string target, char value) {
target.erase(std::remove(target.begin(), target.end(), value), target.end());
return target;
}
// ----------------------------------------------------------------------------
// Replace (string, from, to)
// ----------------------------------------------------------------------------
std::string common_Replace(std::string target, char value1, char value2) {
int length = 0;
int index;
for(index = 0; index < target.size( ); index++) {
length++;
}
char* buffer = new char[length + 1];
for(index = 0; index < target.size( ); index++) {
if(target[index] != value1) {
buffer[index] = target[index];
}
else
{
buffer[index] = value2;
}
}
buffer[length] = 0;
std::string source = buffer;
delete[ ] buffer;
return source;
}
# if 0
// ----------------------------------------------------------------------------
// GetErrorMessage
// ----------------------------------------------------------------------------
std::string common_GetErrorMessage( ) {
return common_GetErrorMessage(GetLastError( ));
}
// ----------------------------------------------------------------------------
// GetErrorMessage
// ----------------------------------------------------------------------------
std::string common_GetErrorMessage(DWORD error) {
void* buffer;
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS, NULL, error, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPTSTR)&buffer, 0, NULL);
std::string message((char*)buffer);
LocalFree(buffer);
return message;
}
# endif
// ----------------------------------------------------------------------------
// GetExtension
// ----------------------------------------------------------------------------
std::string common_GetExtension(std::string filename) {
int position = filename.rfind('.');
if(position != -1) {
return filename.substr(position);
}
return "";
}