Page 1 of 1

Server routine

Posted: Mon Sep 21, 2015 9:55 am
by vamsi_4a6
I am using below routine to calculate the no of records in a file but it is throwing compilation error

Code: Select all

Function CheckFileRecords(Arg1,Arg2)

vParamFile = Arg1 : "/" : Arg2
vCountVal = 0

OpenSeq vParamFile To FileVar Else
	Call DSLogWarn("Cannot open ":vParamFile , "Cannot Open ParamFile")
End

Loop
	ReadSeq Dummy From FileVar Else Exit ;* at end-of-file
	vCountVal = vCountVal + 1
Repeat

CloseSeq FileVar

Ans=vCountVal
Return (vCountVal)

Error:

Compiling: Source = 'DSU_BP/DSU.CheckFileRecords', Object = 'DSU_BP.O/DSU.CheckFileRecords'

0002 Function CheckFileRecords(Arg1,Arg2)

^
"FUNCTION" unexpected, Was expecting: Array Name, Variable name,
New variable name, ';', Statement label, "ABORT", "ABORTE", "ABORTM",
"BEGIN", "BREAK", "CALL", "CHAIN", "CLEAR", "CLEARCOM", "CLEARDATA",
"CLEARFILE", "CLEARPROMPTS", "CLEARSELECT", "CLOSE", "CLOSESEQ",
"COM", "COMMON", "CONVERT", "CREATE", "CRT", "DATA", "DEBUG",
"DEL", "DELETE", "DELETEU", "DIMENSION", "ECHO", "ERRMSG", "ENTER",
"EQUATE", "EXECUTE", "EXIT", "FILELOCK", "FILEUNLOCK", "FLUSH",
"FOOTING", "FOR", "GET", "GETX", "GOSUB", "GOTO", "GROUPSTORE",
"HEADING", "HEADINGE", "HEADINGN", "IF", "INPUT", "INPUTDP",
"INPUTCLEAR", "INPUTERR", "INPUTIF", "INPUTNULL", "INPUTTRAP", "INS",
"KEYEDIT", "KEYTRAP", "LET", "LOCATE", "LOCATEP", "LOCK", "LOOP",
"MAT", "MATBUILD", "MATPARSE", "MATREAD", "MATREADU", "MATWRITE",
"MATWRITEU", "NAP", "NOBUF", "NULL", "ON", "OPEN", "OPENDEV",
"OPENPATH", "OPENSEQ", "PAGE", "PERFORM", "PRECISION", "PRINT",
"PRINTER", "PRINTERIO", "PRINTERR", "PRINTERRX", "PROCREAD",
"PROCWRITE", "PROMPT", "RANDOMIZE", "READ", "READBLK", "READNEXT",
"READSEQ", "READT", "READU", "READV", "READVU", "RELEASE", "REMOVE",
"RETURN", "REWIND", "SEEK", "uSEEK", "SELECT", "SELECTN", "SELECTV",
"SELECTE", "SLEEP", "SSELECT", "SSELECTN", "SSELECTV", "STATUS",
"STOP", "STOPE", "STOPM", "STORAGE", "TABSTOP", "TTYCTL", "UNLOCK",
"WEOF", "WEOFSEQ", "WRITE", "WRITEBLK", "WRITESEQ", "WRITET",
"WRITEU", "WRITEV", "WRITEVU", "TPRINT", "INPUTDISP", "KEYEXIT",
"TIMEOUT", "FIND", "FINDSTR", "GETLIST", "DELETELIST", "READLIST",
"WRITELIST", "DECLARE", "TTYGET", "TTYSET", "HUSH", "ASSIGN",
"SELIND", "LOOPEOL", "uINPUT", "uINPUTDP", "CONTINUE", "DEFFUN",
"TRANSACTION", "OPENCHECK", "READL", "BSCAN", "REVREMOVE", "SETREM",
"AUTHORIZATION", "PCDRIVER", "READVL", "MATREADL", "RECORDLOCKL",
"RECORDLOCKU", "WRITESEQF", "WORDSIZE", "RECIO", "SETIT", "SEND",
"UPRINT", "AUXMAP"

1 Errors detected, No Object Code Produced.

Posted: Mon Sep 21, 2015 10:01 am
by chulett
Ditch the first line.

You also don't need the Return as the routine will automatically return Ans back to the caller.

Posted: Mon Sep 21, 2015 5:33 pm
by ray.wurlod
Also ditch the RETURN function. RETURN(Ans) is automatically created.

Posted: Mon Sep 21, 2015 5:34 pm
by chulett
As noted. :wink: