/* * PROGRAM NAME: * ------------- * Create-Hyperlinks.Cpl * * COPYRIGHT: * ---------- * Copyright (c) 2003 Dataflight Software. * All Rights Reserved. * 2337 Roscomare Road, Suite 11 * Los Angeles, CA 90077 * * ALL RIGHTS RESERVED. * * Unauthorized distribution, adaptation or use may be * subject to civil and criminal penalties. * * SYNOPSIS: * --------- * This program cycles through the current query of an e-mail * database and creates hyperlinks from the file paths listed * in the ATTACHMENT field. */ /**************************************************************** * Name: main * * Synopsis: Main entry point for all Concordance programs. * ****************************************************************/ main() { int db, i, length, nAnnotationCount; cycle(db) { Message("Processing "+str(docno(db))+" of "+str(count(db)), FALSE); if (len(db->ATTACHMENT) > 0) { /* Delete any existing annotations */ nAnnotationCount = annotationCount(db); for (i = nAnnotationCount; i >= 1; i = i - 1) { if (annotationGoto(db, i) == 0) { if (annotationRetrieve(db, "LINKFIELD") == "ATTACHMENT") annotationDelete(db); } } i = findline(db->ATTACHMENT, 1, length); while(i > 0) { annotationAppend(db->ATTACHMENT, i, length, "Launch "+capitalize(FileName(substr(db->ATTACHMENT, i, length))), capitalize(substr(db->ATTACHMENT, i, length)), TRUE, NOTEATTACHEXTERNAL); i = findnline(db->ATTACHMENT, i, length); } } } return; } /* main() */ /**************************************************************** * Name: Message * * Synopsis: Displays error message and waits for key. * ****************************************************************/ Message(text message; int wait) { text screen; int key; cursoroff(); if (wait) screen = save(5,13,8,69); box(5,13,8,69, "3D", MenuColor_); puts(6,14,pad(message,'C',53),MenuColor_); if (wait) { key = getkey(); restore(5,13,screen); } return(asc(upper(chr(key)))); } /* Message() */ /**************************************************************** * Name: FileName * * Synopsis: Trims the path from the file name. * ****************************************************************/ FileName(text name) { int i; if (i = match(name,":",1)) name = substr(name,i+1); while(i = match(name,"\",1)) name = substr(name,i+1); return(name); } /* FileName() */ /**************************************************************** * Name: Path * * Synopsis: Trims the file name from the path. * ****************************************************************/ Path(text name) { int i, j; char string[257]; string = name; if (i = match(name,":",1)) j = i; else i = j = 1; while(j = match(name,"\", i)) i = j + 1; string[i - 1] = 0; return(string); } /* Path() */ RGB(char red, grn, blu) { return(((blu & 255) * 65536) | ((grn & 255) * 256) | (red & 255)); }