D:/Zythum/DinoKod/Common/Str.cpp

00001 //---------------------------------------------------------------------------------------------
00002 //      This file is a part of "DinoKod".
00003 //      Copyright © 2003 Dino Productions. All Rights Reserved.
00004 //      
00005 //      File                    : Str.cpp
00006 //      Author                  : Sebastien LEIX        sebastien.leix@wanadoo.fr
00007 //      Date                    : 25/05/2002
00008 //      Modification    :
00009 //
00010 //---------------------------------------------------------------------------------------------
00011 #include "Common/Str.h"
00012 
00013 //---------------------------------------------------------------------------------------------
00014 KStr::KStr( char* pString, const char* pFormat, ... )
00015 {
00016         KStr            sString;
00017         va_list         arg_ptr;
00018         s32                     Size = 0;
00019         char*           pTmpString;
00020         char*           pTmpString2;
00021         char*           pStartTmpString;
00022         const char* pStr;
00023         
00024         m_pString       = NULL;
00025         m_Length        = 0;
00026 
00027         // Copie la chaine
00028         pTmpString = strdup( pString );
00029         pStartTmpString = pTmpString2 = pTmpString;
00030 
00031         va_start( arg_ptr, pFormat );
00032         pStr = pFormat;
00033 
00034         while( *pTmpString2 )
00035         {
00036                 if( *pTmpString2 == '%' )
00037                 {
00038                         *pTmpString2 = '\0';
00039                         sString += KStr( pStartTmpString );
00040                         pTmpString2 ++;
00041                         switch( *pTmpString2 )
00042                         {
00043                         case 's':
00044                                 sString += KStr( pStr );
00045                                 pStr = va_arg( arg_ptr, const char* );
00046                                 pStartTmpString = pTmpString2 + 1;
00047                                 break;
00048                         }
00049                 }
00050                 pTmpString2 ++;
00051         }
00052 
00053         sString += KStr( pStartTmpString );
00054 
00055         if( pTmpString )
00056                 free( pTmpString );
00057 
00058         *this = sString;
00059 }

Generated on Sun Mar 25 20:02:11 2007 for Zythum Project by  doxygen 1.5.1-p1