See changelog 20000304 08:20
This commit is contained in:
@@ -1,3 +1,16 @@
|
||||
20000304-08:20 GMT-3 Luiz Rafael Culik <culik@sl.conex.net>
|
||||
*utils/hbdoc/genrtf.prg
|
||||
*source/tools/rtf.prg
|
||||
*small changes
|
||||
*utils/hbdoc/genhtm.prg
|
||||
*Fixed warnings reported by Andi
|
||||
*doc/en/rdd.txt
|
||||
*some docs changed
|
||||
*doc/en/set.txt
|
||||
*doc/en/browse.txt
|
||||
*doc/en/string.txt
|
||||
*Small formating
|
||||
|
||||
20000303-17:50 GMT-3 Luiz Rafael Culik <culik@sl.conex.net>
|
||||
*utils/hbdoc/genrtf.prg
|
||||
*small changes
|
||||
|
||||
@@ -34,11 +34,11 @@
|
||||
* [<xHeadingSeparators>], [<xColumnSeparators>],
|
||||
* [<xFootingSeparators>], [<xColumnFootings>] ) --> lOk
|
||||
* $ARGUMENTS$
|
||||
* <nTop> coordinate for top row display. <nTop> could range from 0 to
|
||||
* MAXROW(), default is 0.
|
||||
* <nTop> coordinate for top row display. <nTop> could range from 0
|
||||
* to MAXROW(), default is 0.
|
||||
*
|
||||
* <nLeft> coordinate for left column display. <nLeft> could range from
|
||||
* 0 to MAXCOL(), default is 0.
|
||||
* <nLeft> coordinate for left column display. <nLeft> could range
|
||||
* from 0 to MAXCOL(), default is 0.
|
||||
*
|
||||
* <nBottom> coordinate for bottom row display. <nBottom> could range
|
||||
* from 0 to MAXROW(), default is MAXROW().
|
||||
@@ -131,7 +131,6 @@
|
||||
* Esc - Terminate BROWSE()
|
||||
* Enter - Terminate BROWSE()
|
||||
*
|
||||
*
|
||||
* When DBEDIT() execute <xUserFunc> it pass the following arguments:
|
||||
* nMode and the index of current record in <acColumns>. If <acColumns>
|
||||
* is omitted, the index number is the FIELD() number of the open
|
||||
@@ -140,15 +139,13 @@
|
||||
* DBEDIT() nMode could be one of the following:
|
||||
* ---------------------------------------------
|
||||
*
|
||||
*
|
||||
* DE_IDLE 0 DBEDIT() is idle, all movement keys have been
|
||||
* handled.
|
||||
* handled.
|
||||
* DE_HITTOP 1 Attempt to cursor past top of file.
|
||||
* DE_HITBOTTOM 2 Attempt to cursor past bottom of file.
|
||||
* DE_EMPTY 3 No records in work area, database is empty.
|
||||
* DE_EXCEPT 4 Key exception.
|
||||
*
|
||||
*
|
||||
* The user define function or code block must return a value that tell
|
||||
* DBEDIT() what to do next.
|
||||
*
|
||||
@@ -224,30 +221,30 @@
|
||||
* BROWSE() is a general purpose database browser, without any
|
||||
* thinking you can browse a file using the following keys:
|
||||
*
|
||||
* Left - Move one column to the left (previous field)
|
||||
* Right - Move one column to the right (next field)
|
||||
* Up - Move up one row (previous record)
|
||||
* Down - Move down one row (next record)
|
||||
* Page-Up - Move to the previous screen
|
||||
* Page-Down - Move to the next screen
|
||||
* Ctrl Page-Up - Move to the top of the file
|
||||
* Ctrl Page-Down - Move to the end of the file
|
||||
* Home - Move to the leftmost visible column
|
||||
* End - Move to the rightmost visible column
|
||||
* Ctrl Left - Pan one column to the left
|
||||
* Ctrl Right - Pan one column to the right
|
||||
* Ctrl Home - Move to the leftmost column
|
||||
* Ctrl End - Move to the rightmost column
|
||||
* Esc - Terminate BROWSE()
|
||||
* Left - Move one column to the left (previous field)
|
||||
* Right - Move one column to the right (next field)
|
||||
* Up - Move up one row (previous record)
|
||||
* Down - Move down one row (next record)
|
||||
* Page-Up - Move to the previous screen
|
||||
* Page-Down - Move to the next screen
|
||||
* Ctrl Page-Up - Move to the top of the file
|
||||
* Ctrl Page-Down - Move to the end of the file
|
||||
* Home - Move to the leftmost visible column
|
||||
* End - Move to the rightmost visible column
|
||||
* Ctrl Left - Pan one column to the left
|
||||
* Ctrl Right - Pan one column to the right
|
||||
* Ctrl Home - Move to the leftmost column
|
||||
* Ctrl End - Move to the rightmost column
|
||||
* Esc - Terminate BROWSE()
|
||||
*
|
||||
* On top of the screen you see a status line with the following
|
||||
* indication:
|
||||
*
|
||||
* Record ###/### - Current record number / Total number of records.
|
||||
* <none> - There are no records, the file is empty.
|
||||
* <new> - You are in append mode at the bottom of file.
|
||||
* <Deleted> - Current record is deleted.
|
||||
* <bof> - You are at the top of file.
|
||||
* Record ###/### - Current record number / Total number of records.
|
||||
* <none> - There are no records, the file is empty.
|
||||
* <new> - You are in append mode at the bottom of file.
|
||||
* <Deleted> - Current record is deleted.
|
||||
* <bof> - You are at the top of file.
|
||||
*
|
||||
* You should pass whole four valid coordinate, if less than four
|
||||
* parameters are passed to BROWSE() the coordinate are default to:
|
||||
|
||||
@@ -57,7 +57,6 @@
|
||||
* 65 Share write only
|
||||
* 66 Share read/write
|
||||
*
|
||||
*
|
||||
* If there is an error in opening a file, a -1 will be returned by
|
||||
* the function.Files handles may be in the range of 0 to 65535. The
|
||||
* status of the SET DEFAULT TO and SET PATH TO commands has no effect
|
||||
|
||||
@@ -1731,38 +1731,27 @@
|
||||
* $SYNTAX$
|
||||
* FIELDPUT(<nField>, <expAssign>) --> ValueAssigned
|
||||
* $ARGUMENTS$
|
||||
* <nField> is the ordinal position of the field in the current
|
||||
* database file.
|
||||
*
|
||||
* <expAssign> is the value to assign to the given field. The data
|
||||
* type of this expression must match the data type of the designated field
|
||||
* variable.
|
||||
* <nField> The field numeric position
|
||||
*
|
||||
* <expAssign> Expression to be assigned to the specified field
|
||||
* $RETURNS$
|
||||
* FIELDPUT() returns the value assigned to the designated field. If
|
||||
* <nField> does not correspond to the position of any field in the current
|
||||
* database file, FIELDPUT() returns NIL.
|
||||
* <ValueAssigned> Any expression
|
||||
* $DESCRIPTION$
|
||||
* FIELDPUT() is a database function that assigns <expAssign> to the field
|
||||
* at ordinal position <nField> in the current work area. This function
|
||||
* allows you to set the value of a field using its position within the
|
||||
* database file structure rather than its field name. Within generic
|
||||
* database service functions this allows, among other things, the setting
|
||||
* of field values without use of the macro operator.
|
||||
* This function assings the value in <expAssing> to the <nField>th
|
||||
* field in the current or designated work area.If the operation is
|
||||
* successful,the return value of the function will be the same value
|
||||
* assigned to the specified field.If the operation is not successful,
|
||||
* the function will return a NIL data type
|
||||
* $EXAMPLES$
|
||||
* This example compares FIELDPUT() to functionally equivalent
|
||||
* code that uses the macro operator to set the value of a field:
|
||||
*
|
||||
* // Using macro operator
|
||||
* FName := FIELD(nField) // Get field name
|
||||
* FIELD->&FName := FVal // Set field value
|
||||
* // Using FIELDPUT()
|
||||
* FIELDPUT(nField, FVal) // Set field value
|
||||
* USE Tests New
|
||||
* FIELDPUT(1,"Mr. Jones")
|
||||
* USE
|
||||
* $TESTS$
|
||||
*
|
||||
* $STATUS$
|
||||
* R
|
||||
* $COMPLIANCE$
|
||||
*
|
||||
* This function is CA-Clipper compatible.
|
||||
* $SEEALSO$
|
||||
* FIELDGET()
|
||||
* $INCLUDE$
|
||||
@@ -1776,88 +1765,31 @@
|
||||
* $CATEGORY$
|
||||
* Data Base
|
||||
* $ONELINER$
|
||||
* Lock an open and shared database file
|
||||
* Locks a file
|
||||
* $SYNTAX$
|
||||
* FLOCK() --> lSuccess
|
||||
* $ARGUMENTS$
|
||||
*
|
||||
* $RETURNS$
|
||||
* FLOCK() returns true (.T.) if an attempt to lock a database file in USE
|
||||
* in the current work area succeeds; otherwise, it returns false (.F.).
|
||||
* For more information on file locking, refer to the Network Programming
|
||||
* chapter in the Programming and Utilities guide.
|
||||
*
|
||||
* <lSuccess> A true (.T.) value, if the lock was successful;otherwise
|
||||
* false (.F.)
|
||||
* $DESCRIPTION$
|
||||
* FLOCK() is a database function used in network environments to lock an
|
||||
* open and shared database file, preventing other users from updating the
|
||||
* file until the lock is released. Records in the locked file are
|
||||
* accessible for read-only operations.
|
||||
*
|
||||
* FLOCK() is related to USE...EXCLUSIVE and RLOCK(). USE...EXCLUSIVE
|
||||
* opens a database file so that no other user can open the same file at
|
||||
* the same time and is the most restrictive locking mechanism in
|
||||
* HARBOUR. RLOCK() is the least restrictive and attempts to place an
|
||||
* update lock on a shared record, precluding other users from updating the
|
||||
* current record. FLOCK() falls in the middle.
|
||||
*
|
||||
* FLOCK() is used for operations that access the entire database file.
|
||||
* Typically, these are commands that update the file with a scope or a
|
||||
* condition such as DELETE or REPLACE ALL. The following is a list of
|
||||
* such commands:
|
||||
*
|
||||
* Commands that require an FLOCK()
|
||||
* ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
* Command Mode
|
||||
* ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
* APPEND FROM FLOCK() or USE...EXCLUSIVE
|
||||
* DELETE (multiple records) FLOCK() or USE...EXCLUSIVE
|
||||
* RECALL (multiple records) FLOCK() or USE...EXCLUSIVE
|
||||
* REPLACE (multiple records) FLOCK() or USE...EXCLUSIVE
|
||||
* UPDATE ON FLOCK() or USE...EXCLUSIVE
|
||||
* ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
|
||||
*
|
||||
* For each invocation of FLOCK(), there is one attempt to lock the
|
||||
* database file, and the result is returned as a logical value. A file
|
||||
* lock fails if another user currently has a file or record lock for the
|
||||
* same database file or EXCLUSIVE USE of the database file. If FLOCK() is
|
||||
* successful, the file lock remains in place until you UNLOCK, CLOSE the
|
||||
* DATABASE, or RLOCK().
|
||||
*
|
||||
* By default, FLOCK() operates on the currently selected work area as
|
||||
* shown in the example below.
|
||||
*
|
||||
* Notes
|
||||
*
|
||||
* SET RELATION: HARBOUR does not automatically lock all work
|
||||
* areas in the relation chain when you lock the current work area, and
|
||||
* an UNLOCK has no effect on related work areas.
|
||||
* This function returns a logical true (.T.0 if a file lock is
|
||||
* attempted and is successfully placed on the current or designated
|
||||
* database.This function will also unlock all records locks placed
|
||||
* by the same network station.
|
||||
* $EXAMPLES$
|
||||
* This example uses FLOCK() for a batch update of prices in
|
||||
* Inventory.dbf:
|
||||
*
|
||||
* USE Inventory NEW
|
||||
* USE Tests New
|
||||
* IF FLOCK()
|
||||
* REPLACE ALL Inventory->Price WITH ;
|
||||
* Inventory->Price * 1.1
|
||||
* ELSE
|
||||
* ? "File not available"
|
||||
* ENDIF
|
||||
*
|
||||
* This example uses an aliased expression to attempt a file lock
|
||||
* in an unselected work area:
|
||||
*
|
||||
* USE Sales NEW
|
||||
* USE Customer NEW
|
||||
* //
|
||||
* IF !Sales->(FLOCK())
|
||||
* ? "Sales is in use by another"
|
||||
* SUM Tests->Ammount
|
||||
* ENDIF
|
||||
* USE
|
||||
* $TESTS$
|
||||
*
|
||||
* $STATUS$
|
||||
* R
|
||||
* $COMPLIANCE$
|
||||
*
|
||||
* This function is CA-Clipper compatible
|
||||
* $SEEALSO$
|
||||
* RLOCK()
|
||||
* $INCLUDE$
|
||||
@@ -1877,76 +1809,26 @@
|
||||
* $ARGUMENTS$
|
||||
*
|
||||
* $RETURNS$
|
||||
* FOUND() returns true (.T.) if the last search command was successful;
|
||||
* otherwise, it returns false (.F.).
|
||||
*
|
||||
* <lSuccess> A logical true (.T.) is successful;otherwise, false (.F.)
|
||||
* $DESCRIPTION$
|
||||
* FOUND() is a database function that determines whether a search
|
||||
* operation (i.e., FIND, LOCATE, CONTINUE, SEEK, or SET RELATION)
|
||||
* succeeded. When any of these commands are executed, FOUND() is set to
|
||||
* true (.T.) if there is a match; otherwise, it is set to false (.F.).
|
||||
*
|
||||
* If the search command is LOCATE or CONTINUE, a match is the next record
|
||||
* meeting the scope and condition. If the search command is FIND, SEEK or
|
||||
* SET RELATION, a match is the first key in the controlling index that
|
||||
* equals the search argument. If the key value equals the search
|
||||
* argument, FOUND() is true (.T.); otherwise, it is false (.F.).
|
||||
*
|
||||
* The value of FOUND() is retained until another record movement command
|
||||
* is executed. Unless the command is another search command, FOUND() is
|
||||
* automatically set to false (.F.).
|
||||
*
|
||||
* Each work area has a FOUND() value. This means that if one work area
|
||||
* has a RELATION set to a child work area, querying FOUND() in the child
|
||||
* returns true (.T.) if there is a match.
|
||||
*
|
||||
* By default, FOUND() operates on the currently selected work area. It
|
||||
* can be made to operate on an unselected work area by specifying it
|
||||
* within an aliased expression (see example below).
|
||||
*
|
||||
* FOUND() will return false (.F.) if there is no database open in the
|
||||
* current work area.
|
||||
* This function is used to test if the previous SEEK,LOCATE,CONTINUE,
|
||||
* or FIND operation was successful.Each wrk area has its own FOUND()
|
||||
* flag,so that a FOUND() condition may be tested in unselected work
|
||||
* areas by using an alias.
|
||||
* $EXAMPLES$
|
||||
* This example illustrates the behavior of FOUND() after a
|
||||
* record movement command:
|
||||
*
|
||||
* USE Sales INDEX Sales
|
||||
* ? INDEXKEY(0) // Result: SALESMAN
|
||||
* SEEK "1000"
|
||||
* ? FOUND() // Result: .F.
|
||||
* SEEK "100"
|
||||
* ? FOUND() // Result: .T.
|
||||
* SKIP
|
||||
* ? FOUND() // Result: .F.
|
||||
*
|
||||
* This example tests a FOUND() value in an unselected work area
|
||||
* using an aliased expression:
|
||||
*
|
||||
* USE Sales INDEX Sales NEW
|
||||
* USE Customer INDEX Customer NEW
|
||||
* SET RELATION TO CustNum INTO Sales
|
||||
* //
|
||||
* SEEK "Smith"
|
||||
* ? FOUND(), Sales->(FOUND())
|
||||
*
|
||||
* This code fragment processes all Customer records with the key
|
||||
* value "Smith" using FOUND() to determine when the key value changes:
|
||||
*
|
||||
* USE Customer INDEX Customer NEW
|
||||
* SEEK "Smith"
|
||||
* DO WHILE FOUND()
|
||||
* .
|
||||
* . <statements>
|
||||
* .
|
||||
* SKIP
|
||||
* LOCATE REST WHILE Name == "Smith"
|
||||
* ENDDO
|
||||
* nId:=100
|
||||
* USE Tests NEW INDEX Tests
|
||||
* SEEK nId
|
||||
* IF FOUND()
|
||||
* ? Tests->Name
|
||||
* ENDIF
|
||||
* USE
|
||||
* $TESTS$
|
||||
*
|
||||
* $STATUS$
|
||||
* R
|
||||
* $COMPLIANCE$
|
||||
*
|
||||
* This function is CA-Clipper compatible
|
||||
* $SEEALSO$
|
||||
* EOF()
|
||||
* $INCLUDE$
|
||||
@@ -1960,47 +1842,29 @@
|
||||
* $CATEGORY$
|
||||
* Data Base
|
||||
* $ONELINER$
|
||||
* Return the current database file header length
|
||||
* Return the length of a database file header
|
||||
* $SYNTAX$
|
||||
* HEADER() --> nBytes
|
||||
* $ARGUMENTS$
|
||||
*
|
||||
* $RETURNS$
|
||||
* HEADER() returns the number of bytes in the header of the current
|
||||
* database file as an integer numeric value. If no database file is in
|
||||
* use, HEADER() returns a zero (0).
|
||||
* <nBytes> The numeric size of a database file header in bytes
|
||||
* $DESCRIPTION$
|
||||
* HEADER() is a database function that is used with LASTREC(), RECSIZE(),
|
||||
* and DISKSPACE() to create procedures for backing up files.
|
||||
* This function returns the number of bytes in the header of the
|
||||
* selected database ot the database in the designated work area.
|
||||
*
|
||||
* By default, HEADER() operates on the currently selected work area. It
|
||||
* will operate on an unselected work area if you specify it as part of an
|
||||
* aliased expression (see example below).
|
||||
* If used in conjunction with the LASTREC(),RECSIZE() and DISKSPACE()
|
||||
* functions,this functions is capable of implementing a backup and
|
||||
* restore routine.
|
||||
* $EXAMPLES$
|
||||
* This example determines the header size of the Sales.dbf:
|
||||
*
|
||||
* USE Sales NEW
|
||||
* ? HEADER() // Result: 258
|
||||
*
|
||||
* This example defines a pseudofunction, DbfSize(), that uses
|
||||
* HEADER() with RECSIZE() and LASTREC() to calculate the size of the
|
||||
* current database file in bytes:
|
||||
*
|
||||
* #define DbfSize() ((RECSIZE() * LASTREC()) + ;
|
||||
* HEADER() + 1)
|
||||
*
|
||||
* Later you can use DbfSize() as you would any function:
|
||||
*
|
||||
* USE Sales NEW
|
||||
* USE Customer NEW
|
||||
* ? DbfSize()
|
||||
* ? Sales->(DbfSize())
|
||||
* USE Tests New
|
||||
* ? Header()
|
||||
* $TESTS$
|
||||
*
|
||||
* $STATUS$
|
||||
* R
|
||||
* $COMPLIANCE$
|
||||
*
|
||||
* This function is CA-Clipper compatible
|
||||
* $SEEALSO$
|
||||
* DISKSPACE(),LASTREC(),RECSIZE()
|
||||
* $INCLUDE$
|
||||
|
||||
@@ -22,6 +22,8 @@
|
||||
* LEFT() Documentation
|
||||
* RIGHT() Documentation
|
||||
* SUBSTR() Documentation
|
||||
* UPPER() Documentation
|
||||
* LOWER() Documentation
|
||||
*
|
||||
* See doc/license.txt for licensing terms.
|
||||
*
|
||||
@@ -715,3 +717,66 @@
|
||||
* HB_ANSITOOEM()
|
||||
* $END$
|
||||
*/
|
||||
|
||||
|
||||
/* $DOC$
|
||||
* $FUNCNAME$
|
||||
* LOWER()
|
||||
* $CATEGORY$
|
||||
* Strings()
|
||||
* $ONELINER$
|
||||
* Universally lowercases a character string expression.
|
||||
* $SYNTAX$
|
||||
* LOWER( <cString> ) --> cLowerString
|
||||
* $ARGUMENTS$
|
||||
* <cString> Any character expression.
|
||||
* $RETURNS$
|
||||
* <cLowerString> Lowercased value of <cString>
|
||||
* $DESCRIPTION$
|
||||
* This function converts any character expression passes as <cString>
|
||||
* to its lowercased representation.Any nonalphabetic character withing
|
||||
* <cString> will remain unchanged.
|
||||
* $EXAMPLES$
|
||||
* ? Lower("HARBOUR")
|
||||
* ? Lower("Hello All")
|
||||
* $STATUS$
|
||||
* R
|
||||
* $COMPLIANCE$
|
||||
* This function is CA-Clipper compatible
|
||||
* $PLATFORMS$
|
||||
* ALL
|
||||
* $SEEALSO$
|
||||
* UPPER(),ISLOWER(),ISUPPER()
|
||||
* $END$
|
||||
*/
|
||||
|
||||
/* $DOC$
|
||||
* $FUNCNAME$
|
||||
* UPPER()
|
||||
* $CATEGORY$
|
||||
* Strings
|
||||
* $ONELINER$
|
||||
* Converts a character expression to uppercase format
|
||||
* $SYNTAX$
|
||||
* UPPER( <cString> ) --> cUpperString
|
||||
* $ARGUMENTS$
|
||||
* <cString> Any character expression.
|
||||
* $RETURNS$
|
||||
* <cUpperString> Uppercased value of <cString>
|
||||
* $DESCRIPTION$
|
||||
* This function converts all alpha characters in <cString> to upper
|
||||
* case values and returns that formatted character expression.
|
||||
* $EXAMPLES$
|
||||
* ? UPPER("harbour")
|
||||
* ? UPPER("Harbour")
|
||||
* $STATUS$
|
||||
* R
|
||||
* $COMPLIANCE$
|
||||
* This function is CA-Clipper compatible
|
||||
* $PLATFORMS$
|
||||
* All
|
||||
* $SEEALSO$
|
||||
* LOWER(),ISUPPER(),ISLOWER()
|
||||
* $END$
|
||||
*/
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@ CLASS TRTF
|
||||
METHOD New( cFile )
|
||||
METHOD WritePar( cPar )
|
||||
METHOD WriteParText( cPar )
|
||||
METHOD WriteParNoIndent(cPar)
|
||||
METHOD WriteLink( clink )
|
||||
METHOD WriteJumpLink( clink )
|
||||
METHOD Close()
|
||||
@@ -117,8 +118,14 @@ RETURN Self
|
||||
METHOD WritePar( cPar ) CLASS TRTF
|
||||
cPar:=StrTran(cPar,"{","\{")
|
||||
cPar:=StrTran(cPar,"}","\}")
|
||||
FWRITE( Self:nHandle, '\par \pard\cf1\f6\fs20\b0\i0\li300' + HB_OEMTOANSI(cPar )+CRLF)
|
||||
FWRITE( Self:nHandle, '\par'+CRLF+ '\pard\cf1\f6\fs20\b0\i0\li300' + HB_OEMTOANSI(cPar )+CRLF)
|
||||
RETURN Self
|
||||
METHOD WriteParNoIndent( cPar ) CLASS TRTF
|
||||
cPar:=StrTran(cPar,"{","\{")
|
||||
cPar:=StrTran(cPar,"}","\}")
|
||||
FWRITE( Self:nHandle, '\par'+CRLF+ '\pard\cf1\f8\fs20\b0\i0' + cPar +CRLF)
|
||||
RETURN Self
|
||||
|
||||
METHOD WriteParText( cPar ) CLASS TRTF
|
||||
cPar:=StrTran(cPar,"{","\{")
|
||||
cPar:=StrTran(cPar,"}","\}")
|
||||
|
||||
@@ -122,8 +122,8 @@ FUNCTION ProcessWww()
|
||||
LOCAL lFirstPass:= .T.
|
||||
LOCAL lFirstArg := .T.
|
||||
LOCAL lData := .F.
|
||||
LOCAL lEndDataLink := .F.
|
||||
LOCAL lEndMethodLink := .F.
|
||||
LOCAL lIsDataLink := .F.
|
||||
LOCAL lIsMethodLink := .F.
|
||||
LOCAL lMethod := .F.
|
||||
LOCAL cDoc := DELIM + "DOC" + DELIM // DOC keyword
|
||||
LOCAL cEnd := DELIM + "END" + DELIM // END keyword
|
||||
@@ -672,7 +672,7 @@ FUNCTION ProcessWww()
|
||||
ohtm:WriteText('<DD><P>')
|
||||
nMode := D_DATALINK
|
||||
lAddBlank := .T.
|
||||
lEnddatalink := .T.
|
||||
// lEnddatalink := .T.
|
||||
lIsDataLink := .T.
|
||||
|
||||
ELSEIF AT( cDatanolink, cBuffer ) > 0
|
||||
@@ -683,7 +683,7 @@ FUNCTION ProcessWww()
|
||||
endif
|
||||
nMode := D_NORMAL
|
||||
lAddBlank := .T.
|
||||
lEndDatalink:=.t.
|
||||
// lEndDatalink:=.t.
|
||||
|
||||
ELSEIF AT( cMethodslink, cBuffer ) > 0
|
||||
|
||||
@@ -691,7 +691,7 @@ FUNCTION ProcessWww()
|
||||
ohtm:WriteText('<DD><P>')
|
||||
nMode := D_METHODLINK
|
||||
lAddBlank := .T.
|
||||
lEndMethodlink := .T.
|
||||
// lEndMethodlink := .T.
|
||||
lIsMethodLink := .T.
|
||||
|
||||
ELSEIF AT( cMethodsnolink, cBuffer ) > 0
|
||||
@@ -703,7 +703,7 @@ FUNCTION ProcessWww()
|
||||
|
||||
nMode := D_NORMAL
|
||||
lAddBlank := .T.
|
||||
lEndMethodlink := .T.
|
||||
// lEndMethodlink := .T.
|
||||
|
||||
|
||||
ELSEIF AT( cExam, cBuffer ) > 0
|
||||
|
||||
@@ -569,6 +569,10 @@ FUNCTION ProcessRtf()
|
||||
Else
|
||||
oRtf:WriteParText( " "+ ALLTRIM(cBuffer) +" ")
|
||||
endif
|
||||
ELSEIF StrPos(cBuffer)=12
|
||||
cBuffer:=Substr(cBuffer,6)
|
||||
oRtf:WriteParNoIndent(cBuffer+" ")
|
||||
|
||||
ELSEIF AT("<",cBuffer)> 0
|
||||
nPos := AT("<",cBuffer)
|
||||
if nPos>0 .and. nPos<12
|
||||
@@ -784,15 +788,9 @@ func filesize(cfile)
|
||||
return nretval
|
||||
*/
|
||||
FUNCTION ProcRtfDesc(cBuffer,lBlankLine,oRtf,lPar)
|
||||
LOCAL nPos:=0
|
||||
LOCAL ePos:=0
|
||||
IF StrPos(cBuffer)=12
|
||||
nPos := AT(" ",cBuffer)
|
||||
// ePos := StrPos(cBuffer)
|
||||
// ? nPos
|
||||
// inkey(0)
|
||||
cBuffer:=Substr(cBuffer,3)
|
||||
oRtf:WritePar(cBuffer+" ")
|
||||
cBuffer:=Substr(cBuffer,6)
|
||||
oRtf:WriteParNoIndent(cBuffer+" ")
|
||||
lPar:=.f.
|
||||
ELSEIF lPar
|
||||
oRtf:WritePar(cBuffer+" ")
|
||||
@@ -805,7 +803,6 @@ LOCAL ePos:=0
|
||||
lPar:=.T.
|
||||
ELSE
|
||||
oRtf:WriteParText(" "+alltrim(cBuffer))
|
||||
lPar:=.F.
|
||||
ENDIF
|
||||
|
||||
RETURN lPar
|
||||
|
||||
Reference in New Issue
Block a user