Download text file
#if 1
#COMPILE EXE
#DIM ALL
DECLARE FUNCTION fParseInsert ALIAS "fParseInsert" (BYVAL M$,BYVAL D$,BYVAL P&,BYVAL N$) AS STRING
'
'------------------------------------------------------------------------------
'
FUNCTION PBmain ()
DIM Del AS LOCAL STRING
DIM Disp AS LOCAL STRING
DIM NewStr AS LOCAL STRING
DIM P AS LOCAL LONG
DIM Pass AS LOCAL LONG
DIM Txt AS LOCAL STRING
MSGBOX fParseInsert("",".",7,"Hello")
FOR Pass = 1 TO 4 STEP 3
Txt = READ$(Pass)
Del = READ$(Pass+1)
NewStr = READ$(Pass+2)
Disp = Disp & Txt & $CRLF & $DQ & Del & $DQ & $CRLF & $DQ & NewStr & $DQ & $CRLF
FOR P = 1 TO 7
Disp = Disp & $CRLF & $DQ & fParseInsert(Txt,Del,P,NewStr) & $DQ
NEXT
IF Pass = 1 THEN
Disp = Disp & $CRLF & $CRLF & STRING$(40,"-") & $CRLF & $CRLF
END IF
NEXT
#IF %DEF(%PB_WIN32)
MSGBOX Disp, 0, "fParseInsert()"
#ELSE
COLOR 0, 15
PRINT " fParseInsert() " : PRINT
COLOR 15, 0
FOR P = 1 TO PARSECOUNT(Disp,$CRLF)
PRINT PARSE$(Disp,$CRLF,P)
NEXT
MOUSE 7, UP
MOUSE ON
INPUT FLUSH
WAITKEY$
#ENDIF
DATA "ONE| |TWO| |THREE| |FOUR| |FIVE", "| |", "x....x"
DATA "ONE.TWO.THREE.FOUR.FIVE", ".", ""
END FUNCTION
#endif
'
'------------------------------------------------------------------------------
'
FUNCTION fParseInsert ALIAS "fParseInsert" (BYVAL MainStr AS STRING, _
BYVAL Del AS STRING, _
BYVAL Pos AS LONG , _
BYVAL NewStr AS STRING ) EXPORT AS STRING
DIM Dl AS LOCAL LONG
DIM P AS LOCAL LONG
DIM P1 AS LOCAL LONG
DIM P2 AS LOCAL LONG
Dl = LEN(Del)
IF Dl = 0 THEN GOTO ExitFunction
P1 = 1
DO
INCR P
P2 = INSTR(P1,MainStr,Del)
IF P = Pos THEN
DECR P1
MainStr = LEFT$(MainStr,P1) & NewStr & MID$(MainStr,P2)
EXIT LOOP
ELSEif P2 = 0 THEN
P = Pos - P
MainStr = MainStr & REPEAT$(P,Del) & NewStr
EXIT LOOP
END IF
P1 = P2 + Dl
LOOP
ExitFunction:
FUNCTION = MainStr
END FUNCTION