From: Ian N. <ian...@kn...> - 2003-03-18 17:25:54
|
Hi Dalton, I have two udf libraries which I can donate. They are written in C and are available for linux and windows (Our C programmer has left so we are unable to add to them significantly. They both compile using GCC (on windows mingw) on Linux using the gcc cross complier. (how this was setup I don't know). They all the use the returns parameter x method for strings. Library 1. wmblobudf. Basically a cross platform blob library. Based on the examples in the V5 directory but completely re-written. DECLARE EXTERNAL FUNCTION BLOB_APPEND_STRING BLOB, CSTRING(32000), BLOB RETURNS PARAMETER 3 ENTRY_POINT 'fn_blob_string_append' MODULE_NAME 'wmudflib'; DECLARE EXTERNAL FUNCTION BLOB_COMPARE BLOB, BLOB RETURNS INTEGER BY VALUE ENTRY_POINT 'fn_blob_compare' MODULE_NAME 'wmudflib'; DECLARE EXTERNAL FUNCTION BLOB_DELETE_CHARS BLOB, INTEGER, INTEGER, BLOB RETURNS PARAMETER 4 ENTRY_POINT 'fn_blob_delete_chars' MODULE_NAME 'wmudflib'; DECLARE EXTERNAL FUNCTION BLOB_INSERT_STRING BLOB, CSTRING(32000), INTEGER, BLOB RETURNS PARAMETER 4 ENTRY_POINT 'fn_blob_string_insert' MODULE_NAME 'wmudflib'; DECLARE EXTERNAL FUNCTION BLOB_LEFT BLOB, INTEGER, CSTRING(32000) RETURNS PARAMETER 3 ENTRY_POINT 'fn_blob_left' MODULE_NAME 'wmudflib'; DECLARE EXTERNAL FUNCTION BLOB_LENGTH BLOB RETURNS INTEGER BY VALUE ENTRY_POINT 'fn_blob_length' MODULE_NAME 'wmudflib'; DECLARE EXTERNAL FUNCTION BLOB_REPLACE_TOKENS BLOB, CSTRING(50), CSTRING(50), BLOB RETURNS PARAMETER 4 ENTRY_POINT 'fn_blob_replace_tokens' MODULE_NAME 'wmudflib'; DECLARE EXTERNAL FUNCTION BLOB_RIGHT BLOB, INTEGER, CSTRING(32000) RETURNS PARAMETER 3 ENTRY_POINT 'fn_blob_right' MODULE_NAME 'wmudflib'; DECLARE EXTERNAL FUNCTION BLOB_STRING_POS BLOB, CSTRING(32000) RETURNS INTEGER BY VALUE ENTRY_POINT 'fn_blob_string_pos' MODULE_NAME 'wmudflib'; DECLARE EXTERNAL FUNCTION BLOB_STRIPTAGS BLOB, BLOB RETURNS PARAMETER 2 ENTRY_POINT 'fn_blob_strip_tags' MODULE_NAME 'wmudflib'; DECLARE EXTERNAL FUNCTION BLOB_SUBSTR BLOB, INTEGER, INTEGER, CSTRING(20482) RETURNS PARAMETER 4 ENTRY_POINT 'fn_blob_substr' MODULE_NAME 'wmudflib'; DECLARE EXTERNAL FUNCTION BLOB_TO_STRING BLOB, CSTRING(32000) RETURNS PARAMETER 2 ENTRY_POINT 'fn_blob_string' MODULE_NAME 'wmudflib'; DECLARE EXTERNAL FUNCTION STRING_TO_BLOB CSTRING(32000), BLOB RETURNS PARAMETER 2 ENTRY_POINT 'fn_string_blob' MODULE_NAME 'wmudflib'; Library 2. uuidlib Deals with guids and uuids. Guids are 'Standard' windows type guids, 36 characters including hyphens. Uuids are non-standard, squashed guids (22 chars) which are reversed to suit firebird indexes. The characters used in the uuid are all valid url characters. Functions exist to create both and switch between the two. DECLARE EXTERNAL FUNCTION CREATE_GUID CSTRING(36) RETURNS PARAMETER 1 ENTRY_POINT 'fn_guid_create' MODULE_NAME 'uuidlib'; DECLARE EXTERNAL FUNCTION CREATE_UUID CSTRING(22) RETURNS PARAMETER 1 ENTRY_POINT 'fn_uuid_create' MODULE_NAME 'uuidlib'; DECLARE EXTERNAL FUNCTION SQUASH_GUID CSTRING(36), CSTRING(22) RETURNS PARAMETER 2 ENTRY_POINT 'fn_squash_guid' MODULE_NAME 'uuidlib'; DECLARE EXTERNAL FUNCTION EXPAND_UUID CSTRING(22), CSTRING(36) RETURNS PARAMETER 2 ENTRY_POINT 'fn_expand_uuid' MODULE_NAME 'uuidlib'; Regards Ian Newby |