Clear lcStr = filetostr('1021337392.ps') lnPOS = At("%%Pages:",lcStr) lcPageCount = alltrim(substr(lcStr, lnPOS, 12)) lnPageCount = VAL(STRTRAN(lcPageCount,'%%Pages:','')) IF lnPageCount>2 DIMENSION occoupiedrange(lnPageCount) DIMENSION unoccoupiedrange(lnPageCount) Local lcFile, lcText m.lcFile = [1021337392.ps] Create Cursor Dummy (PS c(254), pos i,pageno n(2),recordnum i) Append From (m.lcFile) Sdf Scan IF Getwordnum(PS, Getwordcount(PS)) = [x] .OR. ; Getwordnum(PS, Getwordcount(PS)) = [y] .OR. ; Getwordnum(PS, Getwordcount(PS)) = [w] m.lcText = Getwordnum(PS, Getwordcount(PS) - 1) && The second last word IF Len(Chrtran(m.lcText, [1234567890], [])) = 0 && lcText contains only digits Replace pos With Val(m.lcText) Endif ENDIF ENDSCAN FOR I= 1 TO lnPageCount PGNO=I NEXTPGNO=PGNO+1 PGNO=ALLTRIM(STR(PGNO)) NEXTPGNO=ALLTRIM(STR(NEXTPGNO)) CURTEXT='%%Page: '+PGNO+' '+PGNO NeXTTEXT='%%Page: '+NEXTPGNO+" "+NEXTPGNO LOCATE FOR ALLTRIM(PS)=curtext IF FOUND() SCAN WHILE ALLTRIM(ps)<>nexttext OR EOF()=.T. REPLACE pageno WITH I ENDSCAN ENDIF ENDF FOR I=1 TO lnPageCount SELECT MIN(Pos) FROM Dummy WHERE Pageno=I AND Pos>30 INTO ARRAY X SELECT MAX(Pos) FROM Dummy WHERE Pageno=I INTO ARRAY Y STORE Y-X+1 TO Occoupiedrange(I) STORE (x-30) TO unoccoupiedrange(I) ENDFOR FOR I=2 TO (lnPageCount-1) IF unoccoupiedrange(I)> occoupiedrange(I+1) NeXTTEXT='%%Page: '+ALLTRIM(STR(I+1))+" "+ALLTRIM(STR(I+1)) LOCATE FOR ps=NeXTTEXT Skip-1 Replace ps WITH NeXTTEXT && U1 Removed by Page No SKIP Replace ps WITH '0 -72 6 mul translate' && Insert Post Script Page Break command i=i+1 ENDIF ENDFOR ENDIFI don't want to disturb Page Number-1.
SELECT Dummy set textmerge to Myfile.ps on noshow scan for ix = 1 to fcount() \<< EVALUATE(alltrim(field(m.ix))) >> endfor endscan set textmerge to set textmerge offKinldy Help on My above problems.