Maybe this has a chance of working:
// now assuming that message2 is a char array
void another()
{
for ( int i = 0 ; i < 24 ; i++ )
{
for ( int j = 0 ; j < 8 ; j++ )
{
int offset = i + j ;
//Serial.println(offset);
//
//Serial.print ( ( offset < 8 || offset > 23 ) ? ' ' : ip[ offset - 8 ] ) ;
Serial.print ( ( offset < 8 || offset > 23 ) ? ' ' : message2[ offset - 8 ] ) ;
char ch = ( offset < 8 || offset > 23 ) ? ' ' : message2[ offset - 8 ] ;
byte by ;
if ( ch >= '0' and ch <= '9' ) by = ch - '0' ;
else by = 15 ; // space
//
MAX7219senddata(j , by );
//
}
Serial.println() ;
delay(800);
}
}