FYI: here are my routines; (try to re-use what i can) :P ----
// look for a specific character in the memory buffer, starting at end char * _MemRChr(void *p, char chr, uint32 count) { char *pos; char *x; int i; // default return value pos = NULL; // pre-condition (cannot have null pointer) if ((p != NULL) && (count != 0)) { // use temporary variables for processing x = (char *)p; x += count; // lets scan the memory buffer i = count; do { if (*x == chr) { pos = x; break; } x--; } while (--i); } return pos; } and... char * _StrRChr(char *s, char chr) { return (char *)_StrNRChr((void *)s, chr, _StrLen(s)); } char * _StrNRChr(char *s, char chr, uint32 count) { return (char *)_MemRChr((void *)s, chr, (uint32)(MIN(count, _StrLen(s)))); } -- For information on using the ACCESS Developer Forums, or to unsubscribe, please see http://www.access-company.com/developers/forums/