faqts : Computers : Programming : Languages : Tse : Clipboard : TSE

+ Search
Add Entry AlertManage Folder Edit Entry Add page to http://del.icio.us/
Did You Find This Entry Useful?

Entry

sub6b: Using version 2.0 of TSE, is there a way to copy and paste to Windows applications?

Nov 8th, 2001 16:24
Knud van Eeden,


mailuserGS = FNStringConcatS( dirmainGS, mailuserGS )

  programaspGS = FNStringConcatS( dirmainGS, programaspGS )

  programbasicGS = FNStringConcatS( dirmainGS, programbasicGS )

  programbatGS = FNStringConcatS( dirmainGS, programbatGS )

  programcGS = FNStringConcatS( dirmainGS, programcGS )

  programcppGS = FNStringConcatS( dirmainGS, programcppGS )

  programdelphiGS = FNStringConcatS( dirmainGS, programdelphiGS )

  programdokGS = FNStringConcatS( dirmainGS, programdokGS )

  programhtmlGS = FNStringConcatS( dirmainGS, programhtmlGS )

  programjavaGS = FNStringConcatS( dirmainGS, programjavaGS )

  programjavascriptGS = FNStringConcatS( dirmainGS, 
programjavascriptGS )

  programjspGS = FNStringConcatS( dirmainGS, programjspGS )

  programlotusscriptGS = FNStringConcatS( dirmainGS, 
programlotusscriptGS )

  programmapleGS = FNStringConcatS( dirmainGS, programmapleGS )

  programpascalGS = FNStringConcatS( dirmainGS, programpascalGS )

  programperlGS = FNStringConcatS( dirmainGS, programperlGS )

  programphpGS = FNStringConcatS( dirmainGS, programphpGS )

  programpostscriptGS = FNStringConcatS( dirmainGS, 
programpostscriptGS )

  programpythonGS = FNStringConcatS( dirmainGS, programpythonGS )

  programsqlGS = FNStringConcatS( dirmainGS, programsqlGS )

  programtexGS = FNStringConcatS( dirmainGS, programtexGS )

  programtseGS = FNStringConcatS( dirmainGS, programtseGS )

  programumlGS = FNStringConcatS( dirmainGS, programumlGS )

  programxmlGS = FNStringConcatS( dirmainGS, programxmlGS )

  programwshGS = FNStringConcatS( dirmainGS, programwshGS )

  programmssdkGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, programmssdkGS )

  projectbookawetaGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, projectbookawetaGS )

  searchQdirectoryoutputGS = FNStringConcatS( dirmainGS, 
searchQdirectoryoutputGS )

  searchQfileoutputnumberGS = "0"

  searchQinputGS = FNStringConcatS( dirmainGS, searchQinputGS )

  searchQoutputGS = FNStringConcatS( dirmainGS, searchQoutputGS )

  #IFDEF WIN32

   videomaxrowGT = 60

   videomaxcolGT = 128

  #ELSE

   videomaxrowGT = 50

  #ENDIF

 #ENDIF

 //

 #IF computerjobcompaqdeskpro

  computerGS = "computerjobcompaqdeskpro"

  dirmainGS = "c:\kee\"

  driveGS = "c:\"

  drivetexGS = networkdrivenametoshibalibretto110ctGS

  backupstorepathGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, backupstorepathGS )

  backuptemppathGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, backuptemppathGS )

  filenameaddressextraGS = ""

  filenameaddressGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, filenameaddressGS )

  filenamebookextraGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, filenamebookextraGS )

  filenamebookGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, filenamebookGS )

  filenamedatabaseGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, filenamedatabaseGS )

  filenamedefnotfoundGS = FNStringConcatS( dirmainGS, 
filenamedefnotfoundGS )

  filenamedoGS = FNStringConcatS( dirmainGS, "temp\addcompp.dok" )

  filenamedoibmthinkpad380GS = FNStringConcatS( dirmainGS, 
filenamedoibmthinkpad380GS )

  filenamedotoshibalibretto110ctGS = FNStringConcatS( dirmainGS, 
filenamedotoshibalibretto110ctGS )

  filenamedotoshiba_libretto50ctGS = FNStringConcatS( dirmainGS, 
filenamedotoshiba_libretto50ctGS )

  filenamedodelllatitudeGS = FNStringConcatS( dirmainGS, 
filenamedodelllatitudeGS )

  filenamedocompaqdeskproGS = FNStringConcatS( dirmainGS, 
filenamedocompaqdeskproGS )

  filenameerrorGS = FNStringConcatS( dirmainGS, filenameerrorGS )

  filenameeventGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, filenameeventGS )

  filenamefilesGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, filenamefilesGS )

  filenamelogGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, filenamelogGS )

  filenamemapGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, filenamemapGS )

  filenameoutputGS = FNStringConcatS( dirmainGS, filenameoutputGS )

  filenameresultGS = FNStringConcatS( dirmainGS, filenameresultGS )

  filenamestoreGS = FNStringConcatS( dirmainGS, filenamestoreGS )

  filenamevocabularyGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, filenamevocabularyGS )

  internetbrowserexplorerexeGS = FNStringConcatS( "c:\", 
internetbrowserexplorerexeGS )

  internetbrowsercompuserveexeGS = FNStringConcatS( "c:\", 
internetbrowsercompuserveexeGS )

  internetbrowsernetscapeexeGS = FNStringConcatS( "c:\", 
internetbrowsernetscapeexeGS )

  internetbrowseroperaexeGS = FNStringConcatS( "d:\", 
internetbrowseroperaexeGS )

  internetcablemodemexeGS = FNStringConcatS( "d:\", 
internetcablemodemexeGS )

  keywordbasicGS = FNStringConcatS( dirmainGS, keywordbasicGS )

  keywordbatGS = FNStringConcatS( dirmainGS, keywordbatGS )

  keywordcGS = FNStringConcatS( dirmainGS, keywordcGS )

  keywordcppGS = FNStringConcatS( dirmainGS, keywordcppGS )

  keyworddokGS = FNStringConcatS( dirmainGS, keyworddokGS )

  keywordjavaGS = FNStringConcatS( dirmainGS, keywordjavaGS )

  keywordjavascriptGS = FNStringConcatS( dirmainGS, 
keywordjavascriptGS )

  keywordlotusscriptGS = FNStringConcatS( dirmainGS, 
keywordlotusscriptGS )

  keywordmapleGS = FNStringConcatS( dirmainGS, keywordmapleGS )

  keywordpascalGS = FNStringConcatS( dirmainGS, keywordpascalGS )

  keywordphpGS = FNStringConcatS( dirmainGS, keywordphpGS )

  keywordtseGS = FNStringConcatS( dirmainGS, keywordtseGS )

  libraryaspGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, libraryaspGS )

  librarybasicGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, librarybasicGS )

  librarybatGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, librarybatGS )

  librarycGS = FNStringConcatS( networkdrivenametoshibalibretto110ctGS, 
librarycGS )

  librarycppGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, librarycppGS )

  librarydelphiGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, librarydelphiGS )

  librarydokGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, librarydokGS )

  libraryhtmlGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, libraryhtmlGS )

  libraryjavaGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, libraryjavaGS )

  libraryjavascriptGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, libraryjavascriptGS )

  libraryjspGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, libraryjspGS )

  librarylotusscriptGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, librarylotusscriptGS )

  librarymapleGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, librarymapleGS )

  librarypascalGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, librarypascalGS )

  libraryperlGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, libraryperlGS )

  libraryphpGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, libraryphpGS )

  librarypostscriptGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, librarypostscriptGS )

  librarypythonGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, librarypythonGS )

  librarysqlGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, librarysqlGS )

  librarytexGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, librarytexGS )

  librarytseGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, librarytseGS )

  libraryumlGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, libraryumlGS )

  librarywshGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, librarywshGS )

  libraryxmlGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, libraryxmlGS )

  mailsupportGS = FNStringConcatS( dirmainGS, mailsupportGS )

  mailuserGS = FNStringConcatS( dirmainGS, mailuserGS )

  programaspGS = FNStringConcatS( dirmainGS, programaspGS )

  programbasicGS = FNStringConcatS( dirmainGS, programbasicGS )

  programbatGS = FNStringConcatS( dirmainGS, programbatGS )

  programcGS = FNStringConcatS( dirmainGS, programcGS )

  programcppGS = FNStringConcatS( dirmainGS, programcppGS )

  programdelphiGS = FNStringConcatS( dirmainGS, programdelphiGS )

  programdokGS = FNStringConcatS( dirmainGS, programdokGS )

  programhtmlGS = FNStringConcatS( dirmainGS, programhtmlGS )

  programjavaGS = FNStringConcatS( dirmainGS, programjavaGS )

  programjavascriptGS = FNStringConcatS( dirmainGS, 
programjavascriptGS )

  programjspGS = FNStringConcatS( dirmainGS, programjspGS )

  programlotusscriptGS = FNStringConcatS( dirmainGS, 
programlotusscriptGS )

  programmapleGS = FNStringConcatS( dirmainGS, programmapleGS )

  programpascalGS = FNStringConcatS( dirmainGS, programpascalGS )

  programperlGS = FNStringConcatS( dirmainGS, programperlGS )

  programphpGS = FNStringConcatS( dirmainGS, programphpGS )

  programsqlGS = FNStringConcatS( dirmainGS, programsqlGS )

  programtexGS = FNStringConcatS( dirmainGS, programtexGS )

  programtseGS = FNStringConcatS( dirmainGS, programtseGS )

  programumlGS = FNStringConcatS( dirmainGS, programumlGS )

  programwshGS = FNStringConcatS( dirmainGS, programwshGS )

  programxmlGS = FNStringConcatS( dirmainGS, programxmlGS )

  programmssdkGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, programmssdkGS )

  projectbookawetaGS = FNStringConcatS( 
networkdrivenametoshibalibretto110ctGS, projectbookawetaGS )

  searchQdirectoryoutputGS = FNStringConcatS( "c:\", 
searchQdirectoryoutputGS )

  searchQfileoutputnumberGS = "0"

  searchQinputGS = FNStringConcatS( dirmainGS, searchQinputGS )

  searchQoutputGS = FNStringConcatS( dirmainGS, searchQoutputGS )

  #IFDEF WIN32

   videomaxrowGT = 36

   videomaxcolGT = 110

  #ELSE

   videomaxrowGT = 50

  #ENDIF

 #ENDIF

 //

 PROCIntegerGlobalSet( "videomaxrowGT", videomaxrowGT )

 PROCIntegerGlobalSet( "videomaxcolGT", videomaxcolGT )

 PROCStringGlobalSet( "backupstorepathGS", backupstorepathGS )

 PROCStringGlobalSet( "backuptemppathGS", backuptemppathGS )

 PROCStringGlobalSet( "computerGS", computerGS )

 PROCStringGlobalSet( "computerhomeibmthinkpad380dGS", 
computerhomeibmthinkpad380dGS )

 PROCStringGlobalSet( "computerhometoshibalibretto110ctGS", 
computerhometoshibalibretto110ctGS )

 PROCStringGlobalSet( "computerjobtoshibalibretto110ctGS", 
computerjobtoshibalibretto110ctGS )

 PROCStringGlobalSet( "computerhometoshibalibretto50ctGS", 
computerhometoshibalibretto50ctGS )

 PROCStringGlobalSet( "computerjobcompaqdeskproGS", 
computerjobcompaqdeskproGS )

 PROCStringGlobalSet( "computerhomedelllatitudec600GS", 
computerhomedelllatitudec600GS )

 PROCStringGlobalSet( "computerjobdelllatitudec600GS", 
computerjobdelllatitudec600GS )

 PROCStringGlobalSet( "dirGS", dirmainGS )

 PROCStringGlobalSet( "driveGS", dirmainGS )

 PROCStringGlobalSet( "drivetexGS", drivetexGS )

 PROCStringGlobalSet( "filenameaddressextraGS", filenameaddressextraGS )

 PROCStringGlobalSet( "filenameaddressGS", filenameaddressGS )

 PROCStringGlobalSet( "filenamebookextraGS", filenamebookextraGS )

 PROCStringGlobalSet( "filenamebookGS", filenamebookGS )

 PROCStringGlobalSet( "filenamedatabaseGS", filenamedatabaseGS )

 PROCStringGlobalSet( "filenamedefnotfoundGS", filenamedefnotfoundGS )

 PROCStringGlobalSet( "filenamedoGS", filenamedoGS )

 PROCStringGlobalSet( "filenamedoibmthinkpad380GS", 
filenamedoibmthinkpad380GS )

 PROCStringGlobalSet( "filenamedotoshibalibretto110ctGS", 
filenamedotoshibalibretto110ctGS )

 PROCStringGlobalSet( "filenamedotoshiba_libretto50ctGS", 
filenamedotoshiba_libretto50ctGS )

 PROCStringGlobalSet( "filenamedodelllatitudeGS", 
filenamedodelllatitudeGS )

 PROCStringGlobalSet( "filenamedocompaqdeskproGS", 
filenamedocompaqdeskproGS )

 PROCStringGlobalSet( "filenameerrorGS", filenameerrorGS )

 PROCStringGlobalSet( "filenameeventGS", filenameeventGS )

 PROCStringGlobalSet( "filenamefilesGS", filenamefilesGS )

 PROCStringGlobalSet( "filenamelogGS", filenamelogGS )

 PROCStringGlobalSet( "filenamemapGS", filenamemapGS )

 PROCStringGlobalSet( "filenameoutputGS", filenameoutputGS )

 PROCStringGlobalSet( "filenameresultGS", filenameresultGS )

 PROCStringGlobalSet( "filenamestoreGS", filenamestoreGS )

 PROCStringGlobalSet( "filenamevocabularyGS", filenamevocabularyGS )

 PROCStringGlobalSet( "internetbrowserexplorerexeGS", 
internetbrowserexplorerexeGS )

 PROCStringGlobalSet( "internetbrowsernetscapeexeGS", 
internetbrowsernetscapeexeGS )

 PROCStringGlobalSet( "internetbrowseroperaexeGS", 
internetbrowseroperaexeGS )

 PROCStringGlobalSet( "internetbrowsercompuserveexeGS", 
internetbrowsercompuserveexeGS )

 PROCStringGlobalSet( "internetcablemodemexeGS", 
internetcablemodemexeGS )

 PROCStringGlobalSet( "keywordbasicGS", keywordbasicGS )

 PROCStringGlobalSet( "keywordbatGS", keywordbatGS )

 PROCStringGlobalSet( "keywordcGS", keywordcGS )

 PROCStringGlobalSet( "keywordcppGS", keywordcppGS )

 PROCStringGlobalSet( "keyworddokGS", keyworddokGS )

 PROCStringGlobalSet( "keywordjavaGS", keywordjavaGS )

 PROCStringGlobalSet( "keywordjavascriptGS", keywordjavascriptGS )

 PROCStringGlobalSet( "keywordlotusscriptGS", keywordlotusscriptGS )

 PROCStringGlobalSet( "keywordmapleGS", keywordmapleGS )

 PROCStringGlobalSet( "keywordpascalGS", keywordpascalGS )

 PROCStringGlobalSet( "keywordphpGS", keywordphpGS )

 PROCStringGlobalSet( "keywordtseGS", keywordtseGS )

 PROCStringGlobalSet( "libraryaspGS", libraryaspGS )

 PROCStringGlobalSet( "librarybasicGS", librarybasicGS )

 PROCStringGlobalSet( "librarybatGS", librarybatGS )

 PROCStringGlobalSet( "librarycGS", librarycGS )

 PROCStringGlobalSet( "librarycppGS", librarycppGS )

 PROCStringGlobalSet( "librarydelphiGS", librarydelphiGS )

 PROCStringGlobalSet( "librarydokGS", librarydokGS )

 PROCStringGlobalSet( "libraryhtmlGS", libraryhtmlGS )

 PROCStringGlobalSet( "libraryjavaGS", libraryjavaGS )

 PROCStringGlobalSet( "libraryjavascriptGS", libraryjavascriptGS )

 PROCStringGlobalSet( "libraryjspGS", libraryjspGS )

 PROCStringGlobalSet( "librarylotusscriptGS", librarylotusscriptGS )

 PROCStringGlobalSet( "librarymapleGS", librarymapleGS )

 PROCStringGlobalSet( "librarypascalGS", librarypascalGS )

 PROCStringGlobalSet( "libraryperlGS", libraryperlGS )

 PROCStringGlobalSet( "libraryphpGS", libraryphpGS )

 PROCStringGlobalSet( "librarypythonGS", librarypythonGS )

 PROCStringGlobalSet( "librarypostscriptGS", librarypostscriptGS )

 PROCStringGlobalSet( "librarysqlGS", librarysqlGS )

 PROCStringGlobalSet( "librarytexGS", librarytexGS )

 PROCStringGlobalSet( "librarytseGS", librarytseGS )

 PROCStringGlobalSet( "libraryumlGS", libraryumlGS )

 PROCStringGlobalSet( "librarywshGS", librarywshGS )

 PROCStringGlobalSet( "libraryxmlGS", libraryxmlGS )

 PROCStringGlobalSet( "mailsupportGS", mailsupportGS )

 PROCStringGlobalSet( "mailuserGS", mailuserGS )

 PROCStringGlobalSet( "networkdrivenametoshibalibretto50ctGS", 
networkdrivenametoshibalibretto50ctGS )

 PROCStringGlobalSet( "networkdrivenameibmthinkpad380dGS", 
networkdrivenameibmthinkpad380dGS )

 PROCStringGlobalSet( "networkdrivenametoshibalibretto110ctGS", 
networkdrivenametoshibalibretto110ctGS )

 PROCStringGlobalSet( "networkdrivenamedelllatitudec600GS", 
networkdrivenamedelllatitudec600GS )

 PROCStringGlobalSet( "networkdrivenamecompaqdeskproGS", 
networkdrivenamecompaqdeskproGS )

 PROCStringGlobalSet( "programaspGS", programaspGS )

 PROCStringGlobalSet( "programbasicGS", programbasicGS )

 PROCStringGlobalSet( "programbatGS", programbatGS )

 PROCStringGlobalSet( "programcGS", programcGS )

 PROCStringGlobalSet( "programcppGS", programcppGS )

 PROCStringGlobalSet( "programdelphiGS", programdelphiGS )

 PROCStringGlobalSet( "programdokGS", programdokGS )

 PROCStringGlobalSet( "programhtmlGS", programhtmlGS )

 PROCStringGlobalSet( "programjavaGS", programjavaGS )

 PROCStringGlobalSet( "programjavascriptGS", programjavascriptGS )

 PROCStringGlobalSet( "programjspGS", programjspGS )

 PROCStringGlobalSet( "programlotusscriptGS", programlotusscriptGS )

 PROCStringGlobalSet( "programmapleGS", programmapleGS )

 PROCStringGlobalSet( "programpascalGS", programpascalGS )

 PROCStringGlobalSet( "programperlGS", programperlGS )

 PROCStringGlobalSet( "programphpGS", programphpGS )

 PROCStringGlobalSet( "programpostscriptGS", programpostscriptGS )

 PROCStringGlobalSet( "programpythonGS", programpythonGS )

 PROCStringGlobalSet( "programsqlGS", programsqlGS )

 PROCStringGlobalSet( "programtexGS", programtexGS )

 PROCStringGlobalSet( "programtseGS", programtseGS )

 PROCStringGlobalSet( "programumlGS", programumlGS )

 PROCStringGlobalSet( "programwshGS", programwshGS )

 PROCStringGlobalSet( "programxmlGS", programxmlGS )

 PROCStringGlobalSet( "programmssdkGS", programmssdkGS )

 PROCStringGlobalSet( "projectbookawetaGS", projectbookawetaGS )

 PROCStringGlobalSet( "searchQdirectoryoutputGS", 
searchQdirectoryoutputGS )

 PROCStringGlobalSet( "searchQfileoutputnumberGS", 
searchQfileoutputnumberGS )

 PROCStringGlobalSet( "searchQinputGS", searchQinputGS )

 PROCStringGlobalSet( "searchQoutputGS", searchQoutputGS )

 PROCFilenameFavoriteInitialize()

 IF NOT FNComputerNameEqualB( dirmainGS + "bbc\computer.bbc" )

  PROCWarn( "initglob.s compiled for " + computerGS + ", recompile for 
current computer " + FNComputerNameCurrentS( dirmainGS 
+ "bbc\computer.bbc" ) )

  RETURN()

 ENDIF

 PROCFileInitGlobalCopy( "initglob.mac", FNStringConcatS( 
driveGS, "i.m" ) )

END



// library: string: initialize [kn, ri, mo, 09-07-2001 12:00:07]

STRING PROC FNInitializeNewStringS()

 RETURN( FNStringEmptyS() )

END



// library: quote: path: if a string contains spaces, put quotes "" 
around it [kn, zoe, tu, 13-03-2001 13:07:34]// library: string: 
character: token: get: all: get all the characters in the string [kn, 
ni, wo, 28-07-1999 03:22:12]

STRING PROC FNQuotePathS( STRING inS )

 // e.g. <F12> PROCMessage( FNQuotePathS( "c:\program files" ) ) // 
gives "c:\program files"

 STRING s[255] = inS

 IF FNStringFoundB( " ", s )

  s = FNStringConcat3S( '"', s, '"' )

 ENDIF

 RETURN( s )

END



// library: string: concatenation: concatenation 2 words tot 1 word 
[kn, zoe, th, 01-02-2001 19:32:49]

STRING PROC FNStringConcatS( STRING s1, STRING s2 ) // version with 
test if string empty

 RETURN( FNStringConcatSeparatorS( s1, s2, "" ) )

END



// library: integer: global: set: set a global integer [kn, zoe, th, 21-
12-2000 17:05:25]

PROC PROCIntegerGlobalSet( STRING stringglobalnameS, INTEGER 
integerglobalvalueI )

 IF NOT FNIntegerGlobalSetB( stringglobalnameS, integerglobalvalueI )

  PROCWarn( stringglobalnameS + ": global integer could not be 
created" )

 ENDIF

END



// library: string: global: set: set a global string [kn, zoe, fr, 13-
10-2000 18:57:50]

PROC PROCStringGlobalSet( STRING stringglobalnameS, STRING 
stringglobalvalueS )

 IF NOT FNStringGlobalSetB( stringglobalnameS, stringglobalvalueS )

  PROCWarn( stringglobalnameS + ": global string could not be created" )

 ENDIF

END



// library: file: favorite: initialize [kn, ri, su, 04-03-2001 02:51:02]

PROC PROCFilenameFavoriteInitialize()

 INTEGER T = 1

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalAddressS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalBookS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalDatabaseS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalDoMainS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalDoS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalDoThinkpad380dS() )

 T = FNFilenameFavoriteCreateI( T, 
FNFilenameGlobalDoToshibaLibretto110CtS() )

 T = FNFilenameFavoriteCreateI( T, 
FNFilenameGlobalDoToshiba_Libretto50CtS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalDoDellLatitudeC600S
() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalDoCompaqDeskProS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalEventS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalFileS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryAspS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryBasicS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryBatS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryCS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryCppS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryDelphiS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryDokS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryHtmlS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryJavaS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryJavaScriptS
() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryJspS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryLotusScriptS
() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryMapleS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryPascalS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryPerlS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryPhpS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryPostScriptS
() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryPythonS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibrarySqlS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryTexS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryTseS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryUmlS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryWshS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLibraryXmlS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalLogS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalMapS() )

 T = FNFilenameFavoriteCreateI( T, FNFilenameGlobalVocabularyS() )

 PROCIntegerGlobalSet( "filenamefavoriteGT", T - 1 ) // total amount of 
favorite files

END



// library: computer: name: equal? [kn, zoe, fr, 27-10-2000 02:00:47]

INTEGER PROC FNComputerNameEqualB( STRING filenameS )

 // e.g. <F12> PROCMessage( FNComputerNameEqualB( filenameS ) ) // 
gives ...

 RETURN( FNStringEqualB( FNComputerNameCurrentS( filenameS ), 
FNNameGlobalComputerS() ) )

END



// library: error: warning: give a warning message [kn, zoe, wo, 09-06-
1999 22:11:07]

PROC PROCWarn( STRING s )

 // e.g. <F12> PROCWarn( "you have forgotten to input a value" )

 Warn( s )

END



// library: computer: name: current computer [kn, ri, fr, 27-10-2000 
02:13:52]

STRING PROC FNComputerNameCurrentS( STRING filenameS )

 RETURN( FNComputerNameBbcToTseS( FNpath( filenameS ) ) )

END



// library: file: initialize: global: copy to directory (where it is 
not deleted) [kn, ri, su, 29-07-2001 23:57:20]

PROC PROCFileInitGlobalCopy( STRING filenamefromS, STRING filenametoS )

 // PROCMessageCons3( "remember to copy updated", filenamefromS, 
filenametoS )

 IF FNFileDifferentB( filenamefromS, filenametoS )

  PROCFileCopyYesNoCancel( filenamefromS, filenametoS )

 ENDIF

END



// library: string: empty: return an empty string [kn, ri, za, 20-05-
2000 20:11:03]

STRING PROC FNStringEmptyS()

 RETURN( "" )

END



// library: string: search/find: indicate if found [kn, ni, do, 06-08-
1998 16:23:33]

INTEGER PROC FNStringFoundB( STRING searchS, STRING containS )

// e.g. PROC Main()  Message( IIF( FNStringFoundB( ",", "This line 
contains a ','" ), "Found", "Not Found" ) )  END

 RETURN( FNInStrFoundB( FNInStrI( containS, searchS ) ) )

 // variation: RETURN( Pos( searchS, containS ) <> 0 )

END



// library: string: concatenation: 3 strings [kn, zoe, th, 01-02-2001 
19:32:54]

STRING PROC FNStringConcat3S( STRING s1, STRING s2, STRING s3 )

 RETURN( FNStringConcatS( FNStringConcatS( s1, s2 ), s3 ) )

END



// library: string: concatenation: concatenate 2 words to 1 word, 
separated by separator S [kn, zoe, do, 01-07-1999 01:33:18]

STRING PROC FNStringConcatSeparatorS( STRING s1, STRING s2, STRING 
separatorS )

 IF FNStringEmptyB( s1 ) RETURN( s2 ) ENDIF

 IF FNStringEmptyB( s2 ) RETURN( s1 ) ENDIF

 RETURN( s1 + separatorS + s2 )

END



// library: integer: global: set a global integer [kn, zoe, fr, 13-10-
2000 18:55:44]

INTEGER PROC FNIntegerGlobalSetB( STRING stringglobalnameS, INTEGER 
integerglobalvalueI )

 RETURN( SetGlobalInt( stringglobalnameS, integerglobalvalueI ) )

END



// library: string: global: set a global string [kn, zoe, fr, 13-10-
2000 18:55:44]

INTEGER PROC FNStringGlobalSetB( STRING stringglobalnameS, STRING 
stringglobalvalueS )

 RETURN( SetGlobalStr( stringglobalnameS, stringglobalvalueS ) )

END



// library: file: favorite: create and increase the counter [kn, ri, 
su, 04-03-2001 02:51:02]

INTEGER PROC FNFilenameFavoriteCreateI( INTEGER T, STRING s )

 PROCArraySetString( "filename", "GS", T, s )

 T = T + 1

 RETURN( T )

END



// library: file: do: return name of current address file [kn, ri, su, 
18-02-2001 08:00:34]

STRING PROC FNFilenameGlobalAddressS()

 RETURN( FNStringGlobalGetS( "filenameaddressGS" ) )

END



// library: file: do: return name of book file [kn, ri, tu, 20-02-2001 
04:28:15]

STRING PROC FNFilenameGlobalBookS()

 RETURN( FNStringGlobalGetS( "filenamebookGS" ) )

END



// library: file: do: return name of current database file [kn, ri, su, 
18-02-2001 08:02:58]

STRING PROC FNFilenameGlobalDatabaseS()

 RETURN( FNStringGlobalGetS( "filenamedatabaseGS" ) )

END



// library: file: do: return name of main do file 
(..\doen\kndo1001.dok) [kn, zoe, mo, 23-10-2000 18:55:46]

STRING PROC FNFilenameGlobalDoMainS()

 RETURN( FNStringGlobalGetS( "filenamebookextraGS" ) )

END



// library: file: do: return name of current do file [kn, zoe, fr, 20-
10-2000 23:34:48]

STRING PROC FNFilenameGlobalDoS()

 RETURN( FNStringGlobalGetS( "filenamedoGS" ) )

END



// library: file: do: return name of current do file [kn, zoe, fr, 20-
10-2000 23:34:48]

STRING PROC FNFilenameGlobalDoThinkpad380dS()

 RETURN( FNStringGlobalGetS( "filenamedoibmthinkpad380GS" ) )

END



// library: file: do: return name of current do file [kn, zoe, fr, 20-
10-2000 23:34:48]

STRING PROC FNFilenameGlobalDoToshibaLibretto110CtS()

 RETURN( FNStringGlobalGetS( "filenamedotoshibalibretto110ctGS" ) )

END



// library: file: do: return name of current do file [kn, zoe, fr, 20-
10-2000 23:34:48]

STRING PROC FNFilenameGlobalDoToshiba_Libretto50CtS()

 RETURN( FNStringGlobalGetS( "filenamedotoshiba_libretto50ctGS" ) )

END



// library: file: do: return name of current do file [kn, zoe, fr, 20-
10-2000 23:34:48]

STRING PROC FNFilenameGlobalDoDellLatitudeC600S()

 RETURN( FNStringGlobalGetS( "filenamedodelllatitudeGS" ) )

END



// library: file: do: return name of current do file [kn, ri, th, 02-08-
2001 21:58:48]

STRING PROC FNFilenameGlobalDoCompaqDeskProS()

 RETURN( FNStringGlobalGetS( "filenamedocompaqdeskproGS" ) )

END



// library: file: do: return name of event file [kn, ri, tu, 20-02-2001 
05:46:35]

STRING PROC FNFilenameGlobalEventS()

 RETURN( FNStringGlobalGetS( "filenameeventGS" ) )

END



// library: file: do: return name of files file [kn, ri, tu, 20-02-2001 
04:17:06]

STRING PROC FNFilenameGlobalFileS()

 RETURN( FNStringGlobalGetS( "filenamefilesGS" ) )

END



// library: file: do: return name of current library file [kn, ri, we, 
30-05-2001 13:42:06]

STRING PROC FNFilenameGlobalLibraryAspS()

 RETURN( FNStringGlobalGetS( "libraryaspGS" ) )

END



// library: file: do: return name of current library file [kn, zoe, fr, 
20-10-2000 23:34:48]

STRING PROC FNFilenameGlobalLibraryBasicS()

 RETURN( FNStringGlobalGetS( "librarybasicGS" ) )

END



// library: file: do: return name of current library file [kn, zoe, fr, 
20-10-2000 23:34:48]

STRING PROC FNFilenameGlobalLibraryBatS()

 RETURN( FNStringGlobalGetS( "librarybatGS" ) )

END



// library: file: do: return name of current library file [kn, zoe, fr, 
20-10-2000 23:34:48]

STRING PROC FNFilenameGlobalLibraryCS()

 RETURN( FNStringGlobalGetS( "librarycGS" ) )

END



// library: file: do: return name of current library file [kn, zoe, fr, 
20-10-2000 23:34:48]

STRING PROC FNFilenameGlobalLibraryCppS()

 RETURN( FNStringGlobalGetS( "librarycppGS" ) )

END



// library: file: do: return name of current library file [kn, ri, su, 
04-03-2001 02:42:45]

STRING PROC FNFilenameGlobalLibraryDelphiS()

 RETURN( FNStringGlobalGetS( "librarydelphiGS" ) )

END



// library: file: do: return name of current library file [kn, zoe, fr, 
20-10-2000 23:34:48]

STRING PROC FNFilenameGlobalLibraryDokS()

 RETURN( FNStringGlobalGetS( "librarydokGS" ) )

END



// library: file: do: return name of current library file [kn, ri, tu, 
20-02-2001 05:34:36]

STRING PROC FNFilenameGlobalLibraryHtmlS()

 RETURN( FNStringGlobalGetS( "libraryhtmlGS" ) )

END



// library: file: do: return name of current library file [kn, zoe, fr, 
20-10-2000 23:34:48]

STRING PROC FNFilenameGlobalLibraryJavaS()

 RETURN( FNStringGlobalGetS( "libraryjavaGS" ) )

END



// library: file: do: return name of current library file [kn, zoe, fr, 
20-10-2000 23:34:48]

STRING PROC FNFilenameGlobalLibraryJavaScriptS()

 RETURN( FNStringGlobalGetS( "libraryjavascriptGS" ) )

END



// library: file: do: return name of current library file [kn, ri, we, 
30-05-2001 13:41:55]

STRING PROC FNFilenameGlobalLibraryJspS()

 RETURN( FNStringGlobalGetS( "libraryjspGS" ) )

END



// library: file: do: return name of current library file [kn, zoe, fr, 
20-10-2000 23:34:48]

STRING PROC FNFilenameGlobalLibraryLotusScriptS()

 RETURN( FNStringGlobalGetS( "librarylotusscriptGS" ) )

END



// library: file: do: return name of current library file [kn, zoe, th, 
07-12-2000 21:59:54]

STRING PROC FNFilenameGlobalLibraryMapleS()

 RETURN( FNStringGlobalGetS( "librarymapleGS" ) )

END



// library: file: do: return name of current library file [kn, zoe, fr, 
20-10-2000 23:34:48]

STRING PROC FNFilenameGlobalLibraryPascalS()

 RETURN( FNStringGlobalGetS( "librarypascalGS" ) )

END



// library: file: do: return name of current library file [kn, ri, su, 
04-03-2001 02:43:34]

STRING PROC FNFilenameGlobalLibraryPerlS()

 RETURN( FNStringGlobalGetS( "libraryperlGS" ) )

END



// library: file: do: return name of current library file [kn, ri, fr, 
03-08-2001 10:53:29]

STRING PROC FNFilenameGlobalLibraryPhpS()

 RETURN( FNStringGlobalGetS( "libraryphpGS" ) )

END



// library: file: do: return name of current library file [kn, ri, fr, 
03-08-2001 10:53:29]

STRING PROC FNFilenameGlobalLibraryPostScriptS()

 RETURN( FNStringGlobalGetS( "librarypostscriptGS" ) )

END



// library: file: do: return name of current library file [kn, ri, fr, 
03-08-2001 10:53:29]

STRING PROC FNFilenameGlobalLibraryPythonS()

 RETURN( FNStringGlobalGetS( "librarypythonGS" ) )

END



// library: file: do: return name of current library file [kn, ri, fr, 
03-08-2001 12:26:05]

STRING PROC FNFilenameGlobalLibrarySqlS()

 RETURN( FNStringGlobalGetS( "librarysqlGS" ) )

END



// library: file: do: return name of current library file [kn, ri, su, 
04-03-2001 02:44:03]

STRING PROC FNFilenameGlobalLibraryTexS()

 RETURN( FNStringGlobalGetS( "librarytexGS" ) )

END



// library: file: do: return name of current library file [kn, zoe, fr, 
20-10-2000 23:34:48]

STRING PROC FNFilenameGlobalLibraryTseS()

 RETURN( FNStringGlobalGetS( "librarytseGS" ) )

END



// library: file: do: return name of current library file [kn, ri, fr, 
03-08-2001 10:51:05]

STRING PROC FNFilenameGlobalLibraryUmlS()

 RETURN( FNStringGlobalGetS( "libraryumlGS" ) )

END



// library: file: do: return name of current library file [kn, ri, su, 
05-08-2001 22:18:51]

STRING PROC FNFilenameGlobalLibraryWshS()

 RETURN( FNStringGlobalGetS( "librarywshGS" ) )

END



// library: file: do: return name of current library file [kn, ri, we, 
30-05-2001 13:41:45]

STRING PROC FNFilenameGlobalLibraryXmlS()

 RETURN( FNStringGlobalGetS( "libraryxmlGS" ) )

END



// library: file: do: return name of log file [kn, ri, tu, 20-02-2001 
04:18:38]

STRING PROC FNFilenameGlobalLogS()

 RETURN( FNStringGlobalGetS( "filenamelogGS" ) )

END



// library: file: do: return name of map file [kn, ri, tu, 20-02-2001 
04:15:09]

STRING PROC FNFilenameGlobalMapS()

 RETURN( FNStringGlobalGetS( "filenamemapGS" ) )

END



STRING PROC FNFilenameGlobalVocabularyS()

 RETURN( FNStringGlobalGetS( "filenamevocabularyGS" ) )

END



// library: string: equal: Are two given strings equal? [kn, zoe, wo, 
04-10-2000 18:23:27]

INTEGER PROC FNStringEqualB( STRING s1, STRING s2 )

 // e.g. <F12> PROCMessage( FNStringEqualB( "knud", "knud" ) ) // gives 
TRUE

 // e.g. <F12> PROCMessage( FNStringEqualB( "knud", "van" ) ) // gives 
FALSE

 RETURN( s1 == s2 )

END



// library: file: do: return name of current computer [kn, zoe, we, 25-
10-2000 19:15:15]

STRING PROC FNNameGlobalComputerS()

 RETURN( FNStringGlobalGetS( "computerGS" ) )

END



// library: computer: name: bbc computer name to tse computer name [kn, 
zoe, fr, 27-10-2000 02:00:49]

STRING PROC FNComputerNameBbcToTseS( STRING computernamebbcS )

 STRING s[255] = FNInitializeNewStringS()

 CASE computernamebbcS

  WHEN "toshiba libretto 110ct"

   s = "computerhometoshibalibretto110ct"

  WHEN "toshiba libretto 50ct"

   s = "computerhometoshibalibretto50ct"

  WHEN "ibm os2 machine"

   s = "computeribmos2"

  WHEN "ibm windows95 machine"

   s = "computeribmwindows95"

  WHEN "ibm thinkpad 380d"

   s = "computerhomeibmthinkpad380d"

  WHEN "ibm thinkpad 570"

   s = "computeribm570rijswijk"

  WHEN "dell latitude c600"

   s = "computerhomedelllatitudec600"

  WHEN "compaq deskpro"

   s = "computerjobcompaqdeskpro"

  OTHERWISE

  PROCErrorCaseNotFound( "", "FNComputerNameBbcToTseS(", 
computernamebbcS + ": not defined yet. Please check this" )

  RETURN( FNErrorS() )

 ENDCASE

 RETURN( s )

END



// library: computer: get the computer [kn, zoe, fr, 27-10-2000 
01:37:48]

STRING PROC FNpath( STRING filenameS )

 // e.g. <F12> PROCMessage( FNpath( "c:\kee\bbc\computer.bbc" ) ) // 
gives ...

 STRING s[255] = FNInitializeNewStringS()

 PROCSituationOldStore()

  IF NOT FNFileOpenB( filenameS )

   PROCWarn( "File: " + filenameS + " could not be opened" )

   RETURN( FNErrorS() )

  ENDIF

 s = FNFileLineFirstGetS( filenameS )

 IF FNStringEmptyB( FNCarS( s ) )

  PROCWarn( "File: " + filenameS + " did not contain any information. 
Empty" )

  RETURN( FNErrorS() )

 ENDIF

 PROCFileClose( filenameS )

 PROCSituationOldRestore()

 RETURN( s )

END



// library: file: size: disk: return true if the total amount of bytes 
the 2 files takes on disk are not equal [kn, ri, tu, 02-01-2001 
03:32:03]

INTEGER PROC FNFileDifferentB( STRING filename1S, STRING filename2S )

 RETURN( FNFileSizeDiskEqualNotB( filename1S, filename2S ) )

END



// library: copy file1 to file2, with asking yes/no/cancel [kn, zoe, 
we, 03-01-2001 01:12:30]

PROC PROCFileCopyYesNoCancel( STRING filename1S, STRING filename2S )

 IF FNInputYesNoCancelB( "Copy " + filename1S + " to " + filename2S 
+ " ?" )

  IF FNInputYesNoCancelB( "SURE copy " + filename1S + " to " + 
filename2S + " ?" )

   PROCFileCopy( filename1S, filename2S, TRUE )

  ENDIF

 ENDIF

END



// library: string: search/find: found [kn, ri, zo, 19-12-1999 23:13:29]

INTEGER PROC FNInStrFoundB( INTEGER T )

 // e.g. <F12> PROCMessage( FNInStrFoundB( FNInStrI
( "knud", "n" ) ) ) // gives TRUE

 RETURN( FNMathLogicNotB( FNMathNumberEqualB( T, 0 ) ) ) // can also 
be -1 e.g. in JavaScript, so keep this instead of using FNMathEqualZeroB
()

END



// library: string: search/find: find the first position of a string 
you search, in a given string / Returns Starting Position of One String 
Within Another) R    Pos(STRING needle, STRING haystack)* [kn, ri, za, 
12-12-1998 20:08:55]

INTEGER PROC FNInStrI( STRING s, STRING searchS )

// e.g. PROC Main()  Message( IIF( FNInStrI( "This line contains 
a ','", "," ) <> 0, "Found", "Not Found" ) )  END

 RETURN( Pos( searchS, s ) )

END



// library: string: empty: is given string empty? [kn, ri, za, 20-05-
2000 20:11:08]

INTEGER PROC FNStringEmptyB( STRING s )

 RETURN( FNStringEqualB( s, "" ) )

END



// library: array: set: string [kn, ri, sa, 03-03-2001 01:55:13]

PROC PROCArraySetString( STRING arraybeginS, STRING arrayendS, INTEGER 
T, STRING valueS )

 PROCStringGlobalSet( FNArrayNameS( arraybeginS, arrayendS, T ), 
valueS )

END



// library: string: global: get: get a global string [kn, zoe, ma, 14-
06-1999 20:54:18]

STRING PROC FNStringGlobalGetS( STRING stringglobalnameS )

 // e.g. <F12> PROCMessage( FNStringGlobalGetS( "dirGS" ) ) // e.g. 
gives "c:\"

 // e.g. <F12> PROCMessage( FNStringGlobalGetS( "dir1GS" ) ) // 
indicates first that this string does not exist, and returns the 
result '<VARIABLE NOT KNOWN>'.

 STRING s[255] = FNInitializeNewStringS()

 IF NOT ExistGlobalVar( stringglobalnameS )

  PROCWarnCons5( "file", FNFilenameCurrentS(), ":", 
stringglobalnameS, ": this string is not known to this macro 
(suggestion: execute 'initglobal.mac' (or 'i.m') for this macro)" )

  RETURN( FNErrorS() )

 ENDIF

 s = GetGlobalStr( stringglobalnameS )

 RETURN( s )

END



// library: error: case: not: found [kn, ri, we, 28-02-2001 23:08:10]

PROC PROCErrorCaseNotFound( STRING infoS, STRING procfnnameS, STRING 
caseS )

 PROCError( FNCons5S( procfnnameS, infoS, ": case: ", caseS, " not 
found / unknown option" ) )

END



// library: error: general output string to recognize an error (e.g. in 
another routine). Central routine, only one occurrence of this constant 
string [kn, ri, za, 05-12-1998 20:58:17]

STRING PROC FNErrorS()

 // e.g. <F12> PROCMessage( FNErrorS() ) // gives "<ERROR>"

 RETURN( "<ERROR>" )

END



// library: push/pop: situation: store (blockpush, positionpush) [kn, 
zoe, di, 18-07-2000 14:21:42]

PROC PROCSituationOldStore()

 // e.g. <F11> PROCSituationOldstore()

 // e.g. <F12> PROCSituationOldRestore()

 PROCBlockPush()

 PROCPositionPush()

END



// library: file: edit: open: open file and give error message if file 
does not exist [kn, ri, zo, 16-05-1999 19:58:27]

INTEGER PROC FNFileOpenB( STRING filenameS )

 // e.g. <F12> PROCMessage( FNFileOpenB( "ddd.bbc" ) ) // gives TRUE

 IF NOT FNFileEditB( filenameS )

  PROCErrorFileNotFound( filenameS )

  RETURN( FALSE )

 ENDIF

 RETURN( TRUE )

END



// library: file: line: first: get the first line in the file [kn, zoe, 
fr, 27-10-2000 01:42:17]

STRING PROC FNFileLineFirstGetS( STRING filenameS )

 STRING s[255] = FNInitializeNewStringS()

 PROCSituationOldStore()

  IF NOT FNFileOpenB( filenameS )

   PROCWarn( "File: " + filenameS + " could not be opened" )

   RETURN( FNErrorS() )

  ENDIF

 PROCFileGotoBegin()

 s = FNLineGetS()

 PROCFileClose( filenameS )

 PROCSituationOldRestore()

 RETURN( s )

END



// library: string: word: token: get: first: FNCarS(): Get the first 
word of a string (words delimited by a space " "). [kn, ni, zo, 02-08-
98 15:54:17]

STRING PROC FNCarS( STRING s )

// E.g. Message( FNCarS( "Knud is the best" ) ) gives "Knud"

 // variation: RETURN( FNStringTokenFirstS( s, " " ) )

 RETURN( GetToken( s, " ", 1 ) )  // faster, but not central

END



// library: file: quit: abandon: abandon the given file (without 
saving) [kn, ni, ma, 10-08-1998 06:06:57]

PROC PROCFileClose( STRING filenameS )

 // e.g. <F12> PROCFileClose( "myfile" )

 PROCSituationOldStore()

 PROCMessageCons( "closing file:", filenameS )

 IF NOT FNFileEditB( filenameS )

  PROCError( "not currently editing file: " + filenameS )

  PROCSituationOldRestore()

  RETURN()

 ENDIF

 IF NOT FNFileWriteBlockB()

  PROCError( "error saving file: " + filenameS )

 ENDIF

 PROCFileAbandonWithoutAsking( filenameS )

 PROCSituationOldRestore()

END



// library: push/pop: situation: store (blockpush, positionpush) [kn, 
zoe, di, 18-07-2000 14:21:42]

PROC PROCSituationOldRestore()

 // e.g. <F11> PROCSituationOldstore()

 // e.g. <F12> PROCSituationOldRestore()

 PROCPositionPop()

 PROCBlockPop()

END



// library: file: size: disk: return true if the total amount of bytes 
the 2 files takes on disk are not equal [kn, ri, tu, 02-01-2001 
03:32:03]

INTEGER PROC FNFileSizeDiskEqualNotB( STRING filename1S, STRING 
filename2S )

 RETURN( FNMathLogicNotB( FNFileSizeDiskEqualB( filename1S, 
filename2S ) ) )

END



// library: input: input yes or no or cancel box. Only Yes gives TRUE 
[kn, ri, do, 01-04-1999 22:15:03]

INTEGER PROC FNInputYesNoCancelB( STRING infoS )

 // e.g. <F12> PROCMessage( FNInputYesNoCancelB( "Do you want to delete 
the block?" ) ) // asks yes/no/cancel

 CASE FNInputYesNoCancelI( infoS )

  WHEN 0  RETURN( FALSE ) // <Escape> or <Cancel>

  WHEN 1  RETURN( TRUE )  // Yes selected

  WHEN 2  RETURN( FALSE ) // No selected

  OTHERWISE

   // do nothing

 ENDCASE

 RETURN( FALSE ) // everything else false

END



// library: file: copy: copy file1 to file2 [kn, zoe, th, 02-11-2000 
18:00:15]

PROC PROCFileCopy( STRING filename1S, STRING filename2S, INTEGER 
keypressB )

 IF keypressB

  PROCFileCopyKeypressYes( filename1S, filename2S )

 ELSE

  PROCFileCopyKeypressNo( filename1S, filename2S )

 ENDIF

END



// library: math: logic: not [kn, ri, tu, 15-05-2001 16:54:21]

INTEGER PROC FNMathLogicNotB( INTEGER B )

 RETURN( NOT B )

END



// library: math: number: number1 EQUAL TO number2? [kn, ri, th, 03-05-
2001 12:51:27]

INTEGER PROC FNMathNumberEqualB( INTEGER x1, INTEGER x2 )

 RETURN( x1 == x2 )

END



// library: array: name: string [kn, ri, sa, 03-03-2001 01:57:58]

STRING PROC FNArrayNameS( STRING arraybeginS, STRING arrayendS, INTEGER 
T )

 RETURN( FNStringConcat3S( arraybeginS, FNIntegerToStringS( T ), 
arrayendS ) )

END



// library: error: warning: give a warning message via 5 strings [kn, 
ri, su, 29-07-2001 18:57:23]

PROC PROCWarnCons5( STRING s1, STRING s2, STRING s3, STRING s4, STRING 
s5 )

 PROCWarn( FNCons5S( s1, s2, s3, s4, s5 ) )

END



// library: file: filename: get: current: return current filename (as a 
string containing the complete path) (Get Full Name of Current Buffer) 
[kn, ni, za, 08-08-1998 00:02:37] [FNfilenamecurrent]

STRING PROC FNFileNameCurrentS()

// e.g. <F12> PROCMessage( "Current filename = ", 
FNFilenameCurrentS ) // gives e.g. c:\temp\ddd.dok

 RETURN( CurrFilename() )

END



// library: error: central routine [kn, ni, ma, 03-08-98 13:08:12]

// INTEGER ErrorGB = FALSE

PROC PROCError( STRING s )

 // e.g. <F12> PROCError( "this is an error" )

 PROCPositionPush()

 // Alarm()

 // PROCWarn( s )

 // Message( s )

 // PROCWarn( "Linenr ", FNLineNumberCurrentT(), ": ", s )

 Message( "Linenr ", FNLineNumberCurrentT(), ": ", s )

 // only when seriously: PROCFileTextInsertEnd( "line " + STR( 
FNLineNumberCurrentT() ) + ": " + s, filenameerrorGS, TRUE )

 // errorGB = TRUE

 PROCPositionPop()

END



// library: string: concatenation: 5 strings [kn, zoe, fr, 17-11-2000 
13:55:03]

STRING PROC FNCons5S( STRING s1, STRING s2, STRING s3, STRING s4, 
STRING s5 )

 RETURN( FNConsS( FNCons4S( s1, s2, s3, s4 ), s5 ) )

END



// library: push/pop: block: push: use this when you want to restore 
your old block position: store old (Saves Current Block Status on 
Marked Block Stack) [kn, zoe, vr, 04-06-1999 22:22:42]

PROC PROCBlockPush()

 // e.g. <F12> PROCBlockPush()

 PushBlock()

END



// library: push/pop: position: store: push [kn, zoe, vr, 04-06-1999 
23:01:00]

PROC PROCPositionPush()

 // e.g. <F12> PROCPositionPush()

 PushPosition()

 // pushpopGT = pushpopGT + 1 // for checking purposes on the end of 
your routines. This must give 0 (as there as as many +1 as -1 in the OK 
case)

END



// library: file: edit: edit a file, with test of problems [kn, ni, ma, 
03-08-98 13:08:39]

INTEGER PROC FNFileEditB( STRING filenameS )

 // e.g. <F12> PROCMessage( FNFileEditB( "myfile" ) ) // gives TRUE

 IF NOT EditFile( filenameS )

  PROCErrorFileNotFound( filenameS )

  RETURN( FALSE )

 ENDIF

 RETURN( TRUE )

END



// library: error: file: not: found [kn, ri, we, 28-02-2001 23:02:12]

PROC PROCErrorFileNotFound( STRING filenameS )

 PROCError( FNCons3S( "file: ", filenameS, " not found / path does not 
exist" ) )

END



// library: file: movement: goto begin of file [kn, ri, zo, 28-03-1999 
01:08:06]

PROC PROCFileGotoBegin()

 // e.g. <F12> PROCFileGotoBegin()

 IF NOT FNFileGotoBeginB()

  // PROCWarn( "cursor was already in begin file else error: could no 
go to begin of file" )

 ENDIF

END



// library: input: line: get current line [kn, ri, za, 05-12-1998 
22:27:51]

STRING PROC FNLineGetS()

 // e.g. <F12> PROCMessage( FNLineGetS() ) // get text of current line

 STRING s[255] = FNInitializeNewStringS()

 PROCPositionPush()

 PROCBlockPush()

 PROCBlockUnMark()

 PROCLineMark() // variation: PROCLineGotoBegin() PROCCharacterMark() 
PROCLineGotoEnd() PROCCharacterMark()   // variation: PROCLineGotoBegin
() MarkColumn() PROCLineGotoEnd()

 s = FNTextMarkGetS()

 PROCBlockPop()

 PROCPositionPop()

 RETURN( s )

END



// library: message: via 2 strings [kn, ri, su, 29-07-2001 18:24:52]

PROC PROCMessageCons( STRING s1, STRING s2 )

 PROCMessage( FNConsS( s1, s2 ) )

END



// library: file: block: write/save (Saves Current File to Disk Under 
its Current Name) N    * [kn, zoe, fr, 20-10-2000 20:19:03]

INTEGER PROC FNFileWriteBlockB()

 RETURN( FNFileSaveB() )

END



// library: file: quit: abandon the given file (without saving). You 
must give the full path, or else it will not work [kn, ni, ma, 10-08-
1998 06:06:57]

PROC PROCFileAbandonWithoutAsking( STRING filenameS )

 // e.g. <F12> PROCFileAbandonWithoutAsking( "myfile" )

 // Message( 'abandoning file: ', filenameS )

 // IF NOT FNFileInRingB( filenameS ) RETURN() ENDIF // put '//' in 
front [kn, ri, we, 04-07-2001 12:18:15]

 PROCFileEdit( filenameS ) // make the involved file the current file

 FNFileAbandonB()

END



// library: push/pop: position: restore: pop [kn, zoe, vr, 04-06-1999 
23:01:00]

PROC PROCPositionPop()

 // e.g. <F12> PROCPositionPop()

 PopPosition()

 // pushpopGT = pushpopGT - 1 // for checking purposes on the end of 
your routines. This must give 0 (as there as as many +1 as -1 in the OK 
case)

END



// library: push/pop: block: pop: use this when you want to restore 
your old block position: get old (Unmarks Current Block and Marks Block 
From Stack) [kn, zoe, vr, 04-06-1999 22:22:42]

PROC PROCBlockPop()

 // e.g. <F12> PROCBlockPop()

 PopBlock()

END



// library: file: size: disk: return true if the total amount of bytes 
the 2 files takes on disk are equal [kn, ri, tu, 02-01-2001 03:32:03]

INTEGER PROC FNFileSizeDiskEqualB( STRING filename1S, STRING 
filename2S )

 // e.g. <F12> Message( FNFileSizeDiskEqualB
( "c:\bbc\taal\initglob.mac", "c:\i.m" ) ) // gives TRUE if both 
filesizes is equal

 RETURN( FNMathNumberEqualB( FNFileSizeDiskI( filename1S ), 
FNFileSizeDiskI( filename2S ) ) )

END



// library: (Displays Pop-Up Menu on Screen and Prompts User) R    YesNo
(STRING title)* [kn, zoe, wo, 16-06-1999 01:07:13]

INTEGER PROC FNInputYesNoCancelI( STRING infoS )

 RETURN( YesNo( infoS ) )

END



// library: file: copy: copy file1 to file2: wait for keypress [kn, 
zoe, th, 02-11-2000 18:00:15]

PROC PROCFileCopyKeypressYes( STRING filename1S, STRING filename2S )

 PROCFileCopyCentral( filename1S, filename2S, _DEFAULT_ )

END



// library: file: copy: copy file1 to file2: do not wait for keypress 
[kn, zoe, th, 02-11-2000 18:00:15]

PROC PROCFileCopyKeypressNo( STRING filename1S, STRING filename2S )

 PROCFileCopyCentral( filename1S, filename2S, _DONT_PROMPT_ )

END



// library: string: convert an integer to a string [kn, ni, ma, 03-08-
98 00:34:05] / [number to string]

STRING PROC FNIntegerToStringS( INTEGER i )

 RETURN( Str( i ) )

END



// library: line: position: linenumber: return the current linenumber 
(Get the Number of Current Line) [kn, ni, ma, 02-08-1999 00:46:42]

INTEGER PROC FNLineNumberCurrentT()

 RETURN( CurrLine() )

END



// library: string: concatenation: concatenation 2 words tot 1 word 
(separated by a comma) [kn, ri, wo, 25-11-1998 20:15:03]

STRING PROC FNConsS( STRING s1, STRING s2 ) // version with test if 
string empty

 // e.g. <F12> PROCMessage( FNConsS( "knud", "van" ) )

 RETURN( FNStringConcatSeparatorS( s1, s2, " " ) )

END



// library: string: concatenation: 4 strings [kn, zoe, fr, 17-11-2000 
13:54:56]

STRING PROC FNCons4S( STRING s1, STRING s2, STRING s3, STRING s4 )

 RETURN( FNConsS( FNCons3S( s1, s2, s3 ), s4 ) )

END



// library: string: concatenation: 3 strings [kn, zoe, fr, 17-11-2000 
13:52:07]

STRING PROC FNCons3S( STRING s1, STRING s2, STRING s3 )

 RETURN( FNConsS( FNConsS( s1, s2 ), s3 ) )

END



// library: file: movement: begin: move cursor to row 1, column 1 of 
current file. Zero is returned if the cursor position does not change. 
For example, if the cursor is already at the beginning of the first 
line of the file, zero is returned. If a column block is currently open 
(it is still in the process of being marked), the cursor goes to the 
first line of the file, without changing the current cursor column. See 
also: EndFile() [kn, zoe, wo, 16-06-1999 01:06:30]

INTEGER PROC FNFileGotoBeginB()

 // e.g. <F12> PROCMessage( FNFileGotoBeginB() )

 RETURN( BegFile() )

END



// library: block: mark: unmark: (Unmarks Marked Block) N    * [kn, 
zoe, wo, 16-06-1999 01:07:12]

PROC PROCBlockUnMark()

 // e.g. <F12> PROCBlockUnMark()

 UnMarkBlock()

END



// library: line: mark: mark all the characters in the current line 
(e.g. 2040 characters) [kn, zoe, ma, 14-06-1999 22:07:35]

PROC PROCLineMark()

 // e.g. <F12> PROCLineMark()

 PROCBlockUnMark() // unmark any existing block, as it is overruled by 
the current marking anyhow

 IF NOT FNLineMarkB()

  PROCWarn( "Marking the line was not successful" )

 ENDIF

END



// library: line: movement: begin: goto begin of line (=column 1 of the 
current line). If the cursor is already at the beginning of the current 
line, zero is returned. See also: EndLine() [kn, zoe, do, 17-06-1999 
00:12:52]

PROC PROCLineGotoBegin()

 IF NOT FNLineGotoBeginB()

  // PROCWarn( "Could not go to the beginning of the current line" )

 ENDIF

END



// library: string: character: current: mark: mark the current 
character [kn, zoe, ma, 11-09-2000 17:54:36]

PROC PROCCharacterMark()

 // e.g. <F12> PROCCharacterMark()

 IF NOT FNCharacterMarkB()

  PROCWarn( "current character could not be marked" )

  RETURN()

 ENDIF

END



// library: movement: line: goto the end of the line [kn, ni, ma, 03-08-
98 13:36:32]

PROC PROCLineGotoEnd()

 // Message( "Goto the end of the line" )

 IF NOT FNLineGotoEndB()

  // PROCWarn( "could not go to the end of the line" )

 ENDIF

END



// library: text: mark: get: (Copies Marked Block into String) N    * 
[kn, zoe, wo, 16-06-1999 01:06:55]

STRING PROC FNTextMarkGetS()

 // e.g. <F12> PROCMessage( FNTextMarkGetS() ) // gives the currently 
marked text

 RETURN( GetMarkedText() )

END



// library: (Write Specified Expression(s) on Editor Status Line) R    
Message(expr [, expr2]...)* [kn, zoe, wo, 16-06-1999 01:07:07]

PROC PROCMessage( STRING s )

 Message( s )

END



// library: file: save [kn, zoe, mo, 20-11-2000 14:47:50]

INTEGER PROC FNFileSaveB()

 RETURN( SaveFile() )

END



// library: file: edit: edit a file, with test of problems [kn, ri, za, 
02-01-1999 19:28:37]

PROC PROCFileEdit( STRING filenameS )

 // e.g. <F12> PROCFileEdit( "myfile" )

 // variation: IF NOT FNFileEditB( "" ) // opens a prompt box for a 
filename

 // variation: IF NOT FNFileEditB( "*.*" ) // opens a prompt box with 
filename to choose from

 // variation: IF NOT FNFileEditB( filenameS, _DONT_PROMPT_ ) // does 
not display any warnings

 // variation: IF NOT FNFileEditB( filenameS, _DONT_LOAD_ )

 IF NOT FNFileEditB( filenameS )

  PROCErrorFileNotFound( filenameS )

 ENDIF

END



// library: file: quit: abandon: (Exit File--No Save. Removes the 
current or specified buffer from the editor, without any prompt, 
discarding all unsaved changes). Syntax: AbandonFile( [ INTEGER 
buffer_id ] ). See also: FileChanged(), QuitFile(), SaveAndQuitFile(), 
EmptyBuffer() [kn, zoe, wo, 16-06-1999 01:06:25]

INTEGER PROC FNFileAbandonB()

 // e.g. <F12> PROCMessage( FNFileAbandonB() ) // gives non zero number 
if successful, zero (FALSE) on failure

 RETURN( AbandonFile() )

END



// library: file: size: disk: return the total amount of bytes the file 
takes on disk / TSE for DOS only [kn, ri, tu, 02-01-2001 03:32:03]

INTEGER PROC FNFileSizeDiskI( STRING filenameS )

 #IFDEF WIN32

  RETURN( FNFileSizeDiskWindowsI( filenameS ) )

 #ELSE

  RETURN( FNFileSizeDiskDosI( filenameS ) )

 #ENDIF

END



// library: file: copy: copy file1 to file2: central [kn, ri, th, 01-03-
2001 00:56:33]

PROC PROCFileCopyCentral( STRING filename1S, STRING filename2S, INTEGER 
flagB )

 PROCDos( FNCons3S( "copy", filename1S, filename2S ), flagB )

END



// library: line: mark: mark the current line [kn, zoe, ma, 14-06-1999 
22:07:35]

INTEGER PROC FNLineMarkB()

 // e.g. <F12> PROCMessage( FNLineMarkB() ) // gives e.g. TRUE, and 
marks

 RETURN( MarkLine() )

END



// library: movement: line: goto the beginning of the line [kn, ni, ma, 
03-08-98 13:36:31]

INTEGER PROC FNLineGotoBeginB() // version not central

 // Message( "Goto the beginning of the line" )

 RETURN( BegLine() )

END



// library: string: character: current: mark: mark the current 
character [kn, zoe, ma, 11-09-2000 17:54:36]

INTEGER PROC FNCharacterMarkB()

 // e.g. <F12> PROCMessage( FNCharacterMarkB() ) // gives ...

 RETURN( FNBlockMarkStreamB() )

END



// library: movement: line: goto the beginning of the line [kn, ni, zo, 
09-08-1998 18:00:41]

INTEGER PROC FNLineGotoEndB()

 // Message( "Goto the end of the line" )

 RETURN( EndLine() )

END



// library: file: size: disk: return the total amount of bytes the file 
takes on disk / TSE for DOS only [kn, ri, tu, 02-01-2001 03:32:03]

INTEGER PROC FNFileSizeDiskDosI( STRING filenameS )

 STRING dtaS[80] = FNInitializeNewStringS()

 STRING s[50] = FNInitializeNewStringS()

 SetDTA( dtaS )

 IF NOT FindFirst( filenameS, _READONLY_ | _HIDDEN_ | _SYSTEM_)

  PROCErrorFileNotFound( filenameS )

  RETURN( 0 )

 ENDIF

 s = DecodeDTA( dtaS )

 RETURN( FNStringToIntegerI( Trim( s[16:9] ) ) )

END



// library: file: size: disk: return the total amount of bytes the file 
takes on disk / TSE for Windows only [kn, ri, we, 29-08-2001 01:59:13]

INTEGER PROC FNFileSizeDiskWindowsI( STRING filenameS )

 // e.g. PROC Main()

 // e.g.  Message( FNFileSizeDiskWindowsI( "c:\autoexec.nt" ) ) // 
gives ...

 // e.g. END

 // e.g.

 // e.g. <F12> Main()

 #IFDEF WIN32

  INTEGER filesizeI = FNInitializeNewIntegerI()

  IF FindThisFile( filenameS, _HIDDEN_ | _SYSTEM_ | _READONLY_ )

   filesizeI = FFSize()

  ELSE

   PROCWarnCons3( "total size of filename", filenameS, "could not be 
determined" )

   filesizeI = 0

  ENDIF

  RETURN( filesizeI )

 #ELSE

  // do nothing

 #ENDIF

END



// library: system: operating system: dos: passes a command to the 
operating system [kn, zoe, wo, 16-06-1999 01:06:53]

PROC PROCDos( STRING s, INTEGER optionT )

 // e.g. <F12> PROCDos( "dir", _DONT_PROMPT_ )

 // e.g. <F12> PROCDos( "dir", _DEFAULT_ )

 // e.g. <F12> PROCDos( "dir", _DONT_CLEAR_ )

 // e.g. <F12> PROCDos( "dir", _TEE_OUTPUT_ )

 // e.g. <F12> PROCDos( "dir", _RETURN_CODE )

 IF NOT FNDosB( s, optionT )

  PROCWarn( "DOS: child process: not succesful" )

 ENDIF

 PROCVideoResizeCheckWindows2000()

END



// library: block: mark: stream [kn, zoe, fr, 24-11-2000 19:08:32]

INTEGER PROC FNBlockMarkStreamB()

 // e.g. <F12> PROCMessage( FNBlockMarkStreamB() ) // gives ...

 RETURN( MarkStream() )

END



// library: error: warning: give a warning message via 3 strings [kn, 
ri, su, 29-07-2001 18:24:52]

PROC PROCWarnCons3( STRING s1, STRING s2, STRING s3 )

 PROCWarn( FNCons3S( s1, s2, s3 ) )

END



// library: string: convert a string to an integer [kn, ni, ma, 03-08-
98 00:32:54] [string to number]

INTEGER PROC FNStringToIntegerI( STRING s )

 RETURN( Val( s ) )

END



// library: system: operating system: dos: passes a command to the 
operating system [kn, zoe, wo, 16-06-1999 01:06:53]

INTEGER PROC FNDosB( STRING inS, INTEGER optionS )

 STRING s[255] = inS

 STRING dosS[255] = FNProgramRun4DosS() // default: run 4nt in 
Windows2000

 STRING exitS[255] = FNWordExitPipeS() // default: pipe '<exit' file in 
the input stream, to stop waiting for your key press input, and further 
automating

 IF FNNameGlobalComputerWindows2000B() // variation #IFDEF WINNT2000XP

  IF FNProgramRun4DosNotB( s )

   s = FNCdrS( s ) // remove first word

   dosS = FNStringEmptyS()

  ENDIF

  IF FNWordExitPipeNotB( s )

   s = FNCdrS( s ) // remove first word

   exitS = FNStringEmptyS() // no exit string

  ENDIF

  s = FNCons3S( dosS, s, exitS ) // make sure 4DOS or 4NT is your 
command processor, instead of MSDOS

 ENDIF

 RETURN( Dos( s, optionS ) )

END



// library: system: operating system: Windows2000: dos: when returning 
from a DOS session you have to manually reset the video screen size 
[kn, ri, sa, 07-07-2001 20:19:21]

PROC PROCVideoResizeCheckWindows2000()

 // e.g. <F12> PROCVideoResizeCheckWindows2000()

 IF FNNameGlobalComputerWindows2000B() // variation #IFDEF WINNT2000XP

  PROCVideoSizeDefault()

 ENDIF

END



// library: system: operating system: Windows2000: When going to the 
DOS command line in the TSE v2.5 for DOS version, the system waits 
anyhow until the user types 'exit'. Here the word 'exit' is piped from 
a file [kn, ri, we, 22-08-2001 23:35:36]

STRING PROC FNProgramRun4DosS()

 RETURN( "c:\4dos\4nt.exe" )

END



// library: system: operating system: Windows2000: When going to the 
DOS command line in the TSE v2.5 for DOS version, the system waits 
anyhow until the user types 'exit'. Here the word 'exit' is piped from 
a file [kn, ri, we, 22-08-2001 23:35:36]

STRING PROC FNWordExitPipeS()

 RETURN( "<keybexit.bat" )

END



// library: file: do: is the name of the current computer the Dell 
Latitude C600? [kn, ri, sa, 07-07-2001 19:57:14]

INTEGER PROC FNNameGlobalComputerWindows2000B()

 RETURN( FNNameGlobalComputerDell_LatitudeC600B() )

END



// library: system: operating system: Windows2000: When going to the 
DOS command line in the TSE v2.5 for DOS version, the system waits 
anyhow until the user types 'exit'. Here the word 'exit' is piped from 
a file [kn, ri, we, 22-08-2001 23:35:36]

INTEGER PROC FNProgramRun4DosNotB( STRING s )

 RETURN( FNWordFrontEqualB( s, FNProgramRun4DosNotS() ) )

END



// library: string: word: token: get: rest: FNCdr(): Get a string, 
without the first word (words delimited by a space " "). E.g. Message( 
FNCarS( "Knud is the best" ) ) gives "Knud" // [kn, ni, zo, 02-08-98 
15:54:17]

STRING PROC FNCdrS( STRING s )

 RETURN( LTrim( FNStringWordDeleteFrontS( LTrim( s ), FNCarS( 
s ) ) ) ) // Remove trailing spaces, determine the First word. Delete 
the first word (=FNCarS), and finally remove the trailing spaces from 
the result

END



// library: system: operating system: Windows2000: When going to the 
DOS command line in the TSE v2.5 for DOS version, the system waits 
anyhow until the user types 'exit'. Here the word 'exit' is piped from 
a file [kn, ri, we, 22-08-2001 23:35:36]

INTEGER PROC FNWordExitPipeNotB( STRING s )

 RETURN( FNWordFrontEqualB( s, FNWordExitPipeNotS() ) )

END



// library: video: screen: lines: default [kn, ri, su, 25-03-2001 
03:52:20]

PROC PROCVideoSizeDefault()

 // e.g. <F12> PROCVideoSizeDefault()

 #IFDEF WIN32

  PROCVideoLinesCentral( "-1,-1" ) // video.mac wants no spaces between 
rows and columns

  // PROCVideoLinesCentral( "35,110" ) // video.mac wants no spaces 
between rows and columns

  // PROCVideoLinesCentral( FNIntegerToStringS( FNIntegerGlobalGetI
( "videomaxrowGT" ) ) + "," + FNIntegerToStringS( FNIntegerGlobalGetI
( "videomaxcolGT" ) ) ) // video.mac wants no spaces between rows and 
columns

 #ELSE

  PROCVideoLinesCentral( FNIntegerToStringS( FNIntegerGlobalGetI
( "videomaxrowGT" ) ) )

 #ENDIF

END



// library: file: do: is the name of the current computer the Dell 
Latitude C600? [kn, ri, sa, 07-07-2001 19:57:14]

INTEGER PROC FNNameGlobalComputerDell_LatitudeC600B()

 // e.g. <F12> Message( FNNameGlobalComputerDell_LatitudeC600B() ) // 
gives TRUE when running Dell Latitude

 RETURN( FNNameGlobalComputerCentralB( FNComputerDellLatitudeC600S() ) )

END



// library: string: token: word: get: first: get the first word of a 
string (separated by spaces) and test if equal to given string)

INTEGER PROC FNWordFrontEqualB( STRING s, STRING firstS )

 // e.g. PROC Main()

 // e.g.  Message( FNWordFrontEqualB( "Knud van Eeden" , "Knud" ) ) // 
gives TRUE

 // e.g. END

 // e.g.

 // e.g. <F12> Main()

 RETURN( FNStringEqualB( FNCarS( s ), firstS ) )

END



// library: system: operating system: Windows2000: When going to the 
DOS command line in the TSE v2.5 for DOS version, the system waits 
anyhow until the user types 'exit'. Here the word 'exit' is piped from 
a file [kn, ri, we, 22-08-2001 23:35:36]

STRING PROC FNProgramRun4DosNotS()

 RETURN( FNStringConcatS( "no", FNProgramRun4DosS() ) )

END



// library: string: word: token: delete: first: delete 1 occurence of a 
given other string in front of a given string. E.g. 
StringWordDeleteFront( "00001234567", "0" ) gives "0001234567". 
Possible application: deleting the '0' in front of a phonenumber (e.g. 
when dialling internationally). [kn, ni, zo, 02-08-98 16:30:45]

STRING PROC FNStringWordDeleteFrontS( STRING s, STRING deleteS )

 // e.g. <F12> PROCMessage( FNStringWordDeleteFrontS( "this 
is", "this" ) ) // gives " is"

 // e.g. <F12> PROCMessage( FNStringWordDeleteFrontS( "the 
girl", "the" ) ) // gives " girl"

 // STRING PROC FNStringWordDeleteFirstS( STRING s, STRING deleteS )

 INTEGER lengthdeleteI = FNStringLengthI( deleteS )

 RETURN( SubStr( s, lengthdeleteI + 1, FNStringLengthI( s ) - 
lengthdeleteI ) )

END

http://www.faqts.com/knowledge_base/view.phtml/aid/12673/fid/900