string repeat_str(string ch, int n) { int i; string tmp; if (n<0) return ""; tmp = ""; for (i=0;i<n;i++) tmp += ch; return tmp; } string format_mixed(mixed data, int len) { int n; string tmp; if (!data || intp(data) ) { tmp = data+" "; n = strlen(tmp); if (n>len) return repeat_str("*",len); return (repeat_str(" ",len-n)+tmp); } if (stringp(data)) { n = strlen(data); if (n>len) return data[0..len-4]+" .."; return data[0..n-1]+repeat_str(" ",len-n); } if (objectp(data)) { tmp = file_name(data); n = strlen(tmp); if (n>len) return tmp[0..len-4]+" .."; return tmp[0..n-1]+repeat_str(" ",len-n); } /* error */ return repeat_str("X",len); } string center_mixed(mixed data, int len) { int n, left, right; string tmp; if (!data || intp(data) ) { tmp = data+""; n = strlen(tmp); if (n>len) return repeat_str("*",len); left = (len-n)/2; right = len - left - n; return (repeat_str(" ",left)+tmp+repeat_str(" ",right)); } if (stringp(data)) { n = strlen(data); if (n>len) return data[0..len-4]+" .."; left = (len-n)/2; right = len - left - n; return (repeat_str(" ",left)+tmp+repeat_str(" ",right)); } if (objectp(data)) { tmp = file_name(data); n = strlen(tmp); if (n>len) return tmp[0..len-4]+" .."; left = (len-n)/2; right = len - left - n; return (repeat_str(" ",left)+tmp+repeat_str(" ",right)); } /* error */ return repeat_str("X",len); } string SubStr(string str, string orig, string new) { string ret, front, back, tmp; if (!str || str=="" ) return ""; tmp = "%s"+orig+"%s"; ret=""; while(sscanf(str, tmp, front, back)) { if(!back) back=""; ret+= front+new; str=back; } return ret+str; }