home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1993 #2 / Image.iso / clipper / bcklib2.zip / ELIDUP.PRG < prev    next >
Text File  |  1993-01-16  |  2KB  |  55 lines

  1. /*
  2.     The source code contained within this file is protected under the
  3.     laws of the United States of America and by International Treaty.
  4.     Unless otherwise noted, the source contained herein is:
  5.  
  6.     Copyright (c)1990, 1991, 1992 BecknerVision Inc - All Rights Reserved
  7.  
  8.     Written by John Wm Beckner        THIS NOTICE MUST NOT BE REMOVED
  9.     BecknerVision Inc
  10.     PO Box 11945                      DISTRIBUTE ONLY WITH SHAREWARE
  11.     Winston-Salem NC 27116            VERSION OF THIS PRODUCT.
  12.     Fax: 919/760-1003
  13.  
  14. */
  15.  
  16. #include "beckner.inc"
  17.  
  18. FUNCTION EliDup(cFilename, cDupExpr)
  19.    LOCAL aRC, cOld := Chr(255), cTemp, nCount := 0
  20.    fSaveRecord()
  21.    vCursSave()
  22.    cDupExpr  := iif(cDupExpr=NIL, Space(200), sSetLength(cDupExpr, 200))
  23.    cFilename := iif(cFilename=NIL, Space(64), sSetLength(cFilename, 64))
  24.    vSave(2, 70)
  25.    aRC := vWindow(2, 70, .y., "")
  26.    @ aRC[1], aRC[2] say "Filename ..............." get cFilename picture "@!K"
  27.    @ Row()+1, aRC[2] say "Duplicate expression ..." get cDupExpr
  28.    READ
  29.    vRestore()
  30.    vMessageOn("Creating temporary index...")
  31.    USE (cFilename := Trim(cFilename)) EXCLUSIVE NEW
  32.    INDEX on (cDupExpr := Trim(cDupExpr)) to (cTemp := fUnique())
  33.    vMessageOff()
  34.    vMessageOn("Eliminating duplicate records")
  35.    GO TOP
  36.    vSave(MaxRow())
  37.    @ MaxRow(), 0
  38.    WHILE !eof()
  39.       cTemp := &(cDupExpr)
  40.       @ MaxRow(), 6 say cTemp
  41.       IF cTemp=cOld
  42.          nCount++
  43.          @ MaxRow(), 0 say nCount picture "9,999"
  44.          DELETE
  45.       ENDIF
  46.       cOld := cTemp
  47.       SKIP
  48.    ENDWHILE
  49.    vRestore()
  50.    vMessageOff()
  51.    vCursRest()
  52.    CLOSE
  53.    fRestoreRecord()
  54. ENDFUNCTION
  55.