Thread: replacestring
View Single Post
  #1  
Old 01-19-2008, 05:42 AM
Novo Novo is offline
[TServerDeveloper]
Join Date: Jun 2006
Posts: 448
Novo will become famous soon enough
replacestring

Uses my TMap 'class'... Thought it might be useful for generic converters.
( Note: This can't convert a Muslim to being Christian. )

PHP Code:
function onCreated()
{
  
this.codeMap = TMap.newInstance();
  
this.codeMap.put( "&", "&" );
  
this.codeMap.put( "<", "&ltag;" );
  
this.codeMap.put( ">", "&rtag;" );
}

function 
encode( oldString )
{
  return 
convert( oldString, this.codeMap );
}

function 
decode( oldString )
{
  return 
convert( oldString, TMap.inverse( this.codeMap ) );
}

function 
convert( oldString, temp.codeMap )
{
  
temp.newString = oldString;
  
temp.codes = temp.codeMap.keySet();
  for ( 
temp.i = 0; temp.i < temp.newString.length(); temp.i ++ )
  {
    for ( 
temp.code: temp.codes )
    {
      if ( 
temp.newString.substring( temp.i, temp.code.length() ) == temp.code )
      {
        
temp.replace = temp.codeMap.get( temp.code );

        
temp.newString =
          
temp.newString.substring( 0, temp.i )
            @ 
temp.replace @
          
temp.newString.substring( temp.i + temp.code.length() );
        
        
temp.i += temp.replace.length() - temp.code.length();
      }
    }
  }
  
  return 
temp.newString;
} 
Reply With Quote