Tuesday, January 16, 2007

Tip of the Day: Converting RTF to Plain TEXT, NOTE or VARCHAR

Supported Versions:
. R:BASE 7.5 for Windows
. R:BASE 7.6 and R:BASE C/S:I 7.6 for Windows
. R:BASE Turbo V-8

Did you know that you can convert Rich Text Format (RTF) data
to a plain TEXT, NOTE or VARCHAR data using the RTFtoTEXT.RBL
Plugin?

Here's how:

Syntax: (Four Different Scenarios)

-- When Input/Output Data is a VARIABLE
   PLUGIN RRTFtoTXT.RBL vResult +
   |INPUT_TYPE VARIABLE +
   |INPUT_VARIABLE inputvarname +
   |OUTPUT_TYPE VARIABLE +
   |OUTPUT_VARIABLE outputvarname +
   |OUTPUT_DATA_TYPE value

   WHERE:
   . vResult is the resulting message value, such as, "OK"
     or the actual "-ERROR- message".
   . INPUT_VARIABLE inputvarname is the input RTF data as
     variable
   . OUTPUT_VARIABLE outputvalue is the resulting output
     variable name with converted data
   . OUTPUT_DATA_TYPE value is the data type (TEXT, NOTE,
     or VARCHAR)

-- When Input/Output Data is an external FILE
   PLUGIN RRTFtoTXT.RBL vResult +
   |INPUT_TYPE FILE +
   |INPUT_FILE inputfilename.rtf +
   |OUTPUT_TYPE FILE +
   |OUTPUT_FILE outputfile.txt +
   |OUTPUT_DATA_TYPE value

   WHERE:
   . vResult is the resulting message value, such as, "OK"
     or the actual "-ERROR- message".
   . INPUT_FILE inputfilename.rtf is the input RTF file name
   . OUTPUT_FILE outputfilename.txt is the resulting output
     file with converted data
   . OUTPUT_DATA_TYPE value is the data type (TEXT, NOTE,
     or VARCHAR)

-- When Input is a VARIABLE and Output is an external FILE
   PLUGIN RRTFtoTXT.RBL vResult +
   |INPUT_TYPE VARIABLE +
   |INPUT_VARIABLE inputvarname +
   |OUTPUT_TYPE FILE +
   |OUTPUT_FILE outputfilename.txt +
   |OUTPUT_DATA_TYPE value
   WHERE:
   . vResult is the resulting message value, such as, "OK"
     or the actual "-ERROR- message".
   . INPUT_VARIABLE inputvarname is the input RTF data as
     variable
   . OUTPUT_FILE outputfilename.txt is the resulting output
     file with converted data
   . OUTPUT_DATA_TYPE value is the data type (TEXT, NOTE,
     or VARCHAR)

-- When Input is a an external FILE and Output is a VARIABLE
   PLUGIN RRTFtoTXT.RBL vResult +
   |INPUT_TYPE FILE +
   |INPUT_FILE inputfilename.rtf +
   |OUTPUT_TYPE VARIABLE +
   |OUTPUT_VARIABLE outputvarname +
   |OUTPUT_DATA_TYPE value
   WHERE:
   . vResult is the resulting message value, such as, "OK"
     or the actual "-ERROR- message".
   . INPUT_FILE inputfilename.rtf is the input RTF file name
   . OUTPUT_VARIABLE outputvarname is the resulting output
     variable name with converted data
   . OUTPUT_DATA_TYPE value is the data type (TEXT, NOTE,
     or VARCHAR)

Notes:

. Use RRTFtoTXT.RBL for R:BASE 7.5 for Windows
. Use RRTFtoTXT76.RBL for R:BASE 7.6 for Windows
. Use RRTFtoTXT76.RBL for R:BASE C/S:I 7.6 for Windows
. Use RRTFtoTXT80.RBL for R:BASE Turbo V-8 for Windows
. RRTFtoTXT Plugin is included with R:BASE Plugin Power Pack

Example:

-- ConvertingRTF_to_TEXT.RMD
-- Author: A. Razzak Memon
-- Date Created: January 16, 2007
-- Converting _NOTE_VARCHAR.RMD
-- To be used with R:BASE 7.6 for Windows
-- Required Plugin:
-- RRTFtoTXT76.RBL in C:\RBTI\RBG76 or application .EXE folder

IF (CVAL('DATABASE')) <> 'RTFtoTXT' OR (CVAL('DATABASE')) IS NULL THEN
   CONNECT RTFtoTXT IDENTIFIED BY NONE
ENDIF

LABEL Start
CLS
CLEAR VARIABLES iv%,vRecordID,vRTFData,vTextData,vNoteData, +
vVarCharData,vResult
SET VARIABLE vRecordID INTEGER = 2
SET VARIABLE vRTFData VARCHAR = NULL
SET VARIABLE vTextData TEXT = NULL
SET VARIABLE vNoteData NOTE = NULL
SET VARIABLE vVarCharData VARCHAR = NULL
SET VARIABLE vResult TEXT = NULL

SELECT RecordID,RTFData INTO +
vRecordID INDICATOR ivRecordID, +
vRTFData INDICATOR ivRTFData +
FROM RTFData WHERE RecordID = .vRecordID

-- Converting RTF Data to TEXT
PLUGIN RRTFtoTXT76.RBL vResult +
|INPUT_TYPE VARIABLE  +
|INPUT_VARIABLE vRTFData +
|OUTPUT_TYPE VARIABLE +
|OUTPUT_VARIABLE vTextData +
|OUTPUT_DATA_TYPE TEXT
IF vResult <> 'OK' THEN
   PAUSE 2 USING .vResult ICON ERROR
ELSE
   INSERT INTO TextData VALUES (.vRecordID,.vTextData)
ENDIF

-- Converting RTF Data to NOTE
PLUGIN RRTFtoTXT76.RBL vResult +
|INPUT_TYPE VARIABLE  +
|INPUT_VARIABLE vRTFData +
|OUTPUT_TYPE VARIABLE +
|OUTPUT_VARIABLE vNoteData +
|OUTPUT_DATA_TYPE NOTE
IF vResult <> 'OK' THEN
   PAUSE 2 USING .vResult ICON ERROR
ELSE
   INSERT INTO NoteData VALUES (.vRecordID,.vNoteData)
ENDIF

-- Converting RTF Data to VARCHAR
PLUGIN RRTFtoTXT76.RBL vResult +
|INPUT_TYPE VARIABLE  +
|INPUT_VARIABLE vRTFData +
|OUTPUT_TYPE VARIABLE +
|OUTPUT_VARIABLE vVarCharData +
|OUTPUT_DATA_TYPE VARCHAR
IF vResult <> 'OK' THEN
   PAUSE 2 USING .vResult ICON ERROR
ELSE
   INSERT INTO VarCharData VALUES (.vRecordID,.vVarCharData)
ENDIF

LABEL Done
CLEAR VARIABLES iv%,vRecordID,vRTFData,vTextData,vNoteData, +
vVarCharData,vResult
RETURN

A sample application is also available at:
Sample Applications: http://www.razzak.com/sampleapplications/

Enjoy and make sure to have fun!

Very Best R;egards,

Razzak.

--- RBASE-L
================================================
TO POST A MESSAGE TO ALL MEMBERS:
Send a plain text email to [email protected]

(Don't use any of these words as your Subject:
INTRO, SUBSCRIBE, UNSUBSCRIBE, SEARCH,
REMOVE, SUSPEND, RESUME, DIGEST, RESEND, HELP)
================================================
TO SEE MESSAGE POSTING GUIDELINES:
Send a plain text email to [email protected]
In the message SUBJECT, put just one word: INTRO
================================================
TO UNSUBSCRIBE: Send a plain text email to [email protected]
In the message SUBJECT, put just one word: UNSUBSCRIBE
================================================
TO SEARCH ARCHIVES:
Send a plain text email to [email protected]
In the message SUBJECT, put just one word: SEARCH-n
(where n is the number of days). In the message body, place any text to search for.
================================================

Reply via email to