home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / clipper / err52b.zip / ERR1210.PRG next >
Text File  |  1993-07-24  |  2KB  |  89 lines

  1.  
  2. FIELD tape_show
  3. FIELD t_producer
  4.  
  5.  
  6. PROCEDURE err1210(sortf)
  7. LOCAL subpass
  8. LOCAL passnum
  9. LOCAL mt_producer
  10.  
  11. SET UNIQUE OFF
  12.  
  13. IF .NOT. sortf==NIL
  14.     ?"Sort & Reindex the Database"
  15.     i_s_mast()
  16. ENDIF
  17.  
  18. FOR passnum:=0 TO 5
  19.     ?"Test Pass "+LTRIM(STR(passnum,3,0))
  20.     SELECT 1
  21.     USE i_tape ALIAS i_tape EXCLUSIVE
  22.     SET INDEX TO i_tape,i_tapep
  23.     GO TOP
  24.     FOR subpass:=0 to 2
  25.         ?"Test Pass "+LTRIM(STR(passnum,3,0))+", SubPass "+LTRIM(STR(subpass,3,0))
  26.         RLOCK()
  27.         mt_producer:=t_producer
  28.         chgfield(@mt_producer,passnum,subpass)
  29.         REPLACE t_producer WITH mt_producer
  30.         @24,45 SAY LTRIM(STR(LEN(mt_producer)))+" "+mt_producer
  31.         SKIP
  32.     NEXT
  33.     CLOSE DATABASES
  34. NEXT
  35. RETURN
  36.  
  37. STATIC PROCEDURE chgfield(fld,passnum,subpass)
  38. LOCAL x
  39. LOCAL which:=(passnum+subpass)
  40. DO CASE
  41.    CASE which==0
  42.        x:="SSS"
  43.    CASE which==1
  44.        x:="AAA"
  45.    CASE which==2
  46.        x:="TTT"
  47.    CASE which==3
  48.        x:="BBB"
  49.    CASE which==4
  50.        x:="XXX"
  51.    CASE which==5
  52.        x:="CCC"
  53.    CASE which==6
  54.        x:="AAA"
  55.    CASE which==7
  56.        x:="SSS"
  57. END CASE
  58. fld:=STUFF(fld,1,3,x)
  59. RETURN
  60.  
  61.  
  62. STATIC PROCEDURE i_s_mast
  63. SELECT 1
  64. USE i_tape ALIAS i_tape EXCLUSIVE
  65. mfilesize:=((RECCOUNT() * RECSIZE()) + 8000)
  66. IF DISKSPACE() < (mfilesize*2)
  67.     ?"Not enough disk for sort"
  68.     QUIT
  69. ELSE
  70.     ERASE I_Temp.dbf
  71.     SORT TO I_Temp.dbf ON tape_show FOR .NOT. DELETED()
  72.     CLOSE DATABASES
  73.     ERASE I_tape.dbf
  74.     RENAME I_temp.dbf TO I_tape.dbf
  75.     USE i_tape ALIAS i_tape EXCLUSIVE
  76.  
  77.     ERASE I_tape.ntx
  78.     INDEX ON tape_show TO i_tape
  79. //  INDEX ON tape_show TO i_tape for .T.
  80.  
  81.     ERASE i_tapep.ntx
  82.     INDEX ON t_producer TO i_tapep
  83. //  INDEX ON t_producer TO i_tapep  for .T.
  84.  
  85.     CLOSE DATABASES
  86. ENDIF
  87. RETURN
  88.  
  89.