home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 3 / PDCD_3.iso / pocketbk / utilsm / move / MOVE.OPL next >
Text File  |  1993-01-13  |  1KB  |  84 lines

  1. PROC move:
  2.     local zn%,chan%,choose%,ret%
  3.     local adr&,n$(240),x%,laen%,yn%
  4.     local header$(12)
  5.         header$=chr$(155)+"1M0        "
  6.     dinit
  7.     dtext "","Copy or Paste",$202
  8.     dbuttons "Copy",%c,"Paste",%p
  9.     choose%=dialog
  10.     if choose%=%p 
  11.         ret%=ioopen(chan%,"m:\npbuf31",$0020)
  12.         if ret%>0
  13.             Fehler:(ret%)
  14.             return
  15.         endif
  16.         adr&=addr(n$)
  17.         while ret%<>-36
  18.         ret%=ioread(chan%,adr&+1,240)
  19.         if ret%>0
  20.             pokeb adr&,ret%
  21.             d.n$=header$+n$
  22.             append
  23.             c:
  24.         endif
  25.     endwh
  26.     ret%=ioclose(chan%)
  27.         if ret%>0
  28.             Fehler:(ret%)
  29.             return
  30.         endif
  31.     elseif choose%=%c
  32.         dinit 
  33.         dtext "","Should the marked items be",$202
  34.         dbuttons "Deleted",%d,"Unmarked",%u,"Left",%l
  35.         yn%=dialog
  36.         ret%=ioopen(chan%,"m:\npbuf31",$0122)
  37.         if ret%>0
  38.             Fehler:(ret%)
  39.             return
  40.         endif
  41.         first
  42.         x%=1
  43.         do
  44.         if mid$(d.n$,13,1)=chr$(250)
  45.             n$=mid$(d.n$,15,240)
  46.             adr&=addr(n$) :laen%=len(n$)
  47.             ret%=iowrite(chan%,adr&+1,laen%)
  48.             if ret%>0
  49.                 Fehler:(ret%)
  50.                 return
  51.             endif
  52.             if yn%=%d
  53.                 position x%
  54.                 erase
  55.                 c:
  56.                 x%=x%-1
  57.                 position x%
  58.             elseif yn%=%u
  59.                 position x%
  60.                 d.n$=left$(d.n$,12)+n$
  61.                 update
  62.                 x%=x%-1
  63.                 position x%
  64.             endif
  65.         endif
  66.         x%=x%+1 :next
  67.         until eof
  68.         ret%=ioclose(chan%)
  69.         if ret%>0
  70.             Fehler:(ret%)
  71.             return
  72.         endif
  73.     endif
  74.     pos%=1 :realpos%=1 :redraw%=1
  75.     giprint "Done"
  76. ENDP
  77.  
  78. proc fehler:(wert%)
  79.     dinit "Fehler"
  80.     dtext num$(wert%,4),err$(wert%)
  81.     dialog
  82. endp
  83.  
  84.