[futurebasic] STR#

Message: < previous - next > : Reply : Subscribe : Cleanse
Home   : December 1997 : Group Archive : Group : All Groups

From: "Terrald J. Smith" <tjsmith@...>
Date: Sun, 28 Dec 1997 06:23:02 -0600
Ok guys....appreciate your ideas.  Here are some answers.

Yes I am using PG.
The largest resource has about 15000 strings and the size is 47.
I only have three STR# resources that my code creates.  One is destroyed
anytime I quit the application or have an update (which is everytime it
is used) the other two are only killed and updated when the source text
file is modified, otherwise they stay in the application.  The need is
to try and keep the network as unabused as possible.
I tried to look at the resources with ResEdit but two  of them (the two
that have to be saved) cannot be observed because resedit says too many,
although one of them only has about 900, size 118 each string.

The code that affects the resources is:

LOCAL FN CHECKRES
  INC(CHECKRES)
  LONG IF CHECKRES=>20
    CHECKRES=0:CALL UPDATERESFILE(gResRef)
  END IF
END FN

LOCAL FN killdiagnosis
  DIM resHndl&
  resHndl& = FN NEWHANDLE _clear(2)
  FN pGreplaceRes(resHndl&,_"STR#",_diagnosislistSTR,"")
  CALL UPDATERESFILE(gResRef)
END FN

CLEAR LOCAL MODE
DIM 255 ParamBlock$,pbPtr&,T2$,T2,D2$,MODIFIED$
DIM fsVRefNum%, 63 fsName$
LOCAL FN GetFileData$(fsName$, fsVRefNum%)
  pbPtr& = @ParamBlock$
  pbPtr&.ioCompletion&   = 0
  pbPtr&.ioNamePtr&      = @fsName$
  pbPtr&.ioVRefNum%      = fsVRefNum%
  pbPtr&.ioFDirIndex%    = 0
  GET FILE INFO ParamBlock$
  CALL IUDATESTRING(pbPtr&.ioFlMdDat&,1,D2$)
  MODIFIED$=RIGHT$(D2$,4)
  CALL IUDATESTRING(pbPtr&.ioFlMdDat&,0,D2$)
  IF VAL(LEFT$(D2$,2))<10 THEN D2$="0"+D2$
  IF VAL(MID$(D2$,4,2))<10 THEN D2$=LEFT$(D2$,3)+"0"+MID$(D2$,4)
  MODIFIED$=MODIFIED$+LEFT$(D2$,2)+MID$(D2$,4,2)
  CALL IUTIMESTRING(pbPtr&.ioFlMdDat&,0,T2$)
  IF VAL(LEFT$(T2$,2))<10 THEN T2$="0"+T2$
  T2$=LEFT$(T2$,2)+MID$(T2$,4)
  T2=VAL(T2$):IF RIGHT$(T2$,2)="PM" THEN T2=1200+VAL(T2$)
  T2$=STR$(T2):T2$=RIGHT$(T2$,LEN(T2$)-1):T2$="0"+T2$:T2$=RIGHT$(T2$,4)
  MODIFIED$=MODIFIED$+T2$
END FN=MODIFIED$


LOCAL FN GETDIAG(FILENUMBER,DIAGNOSIS)
  DIM DATAFILE$,MODIFIED$,itemnumber$
  LONG IF CHECKDX=0
    MODIFIED$=STR#(_filedataSTR,2)
    DATAFILE$="DXFILE"
    itemnumber$=FN GetFileData$(DATAFILE$, MYFOLDER%)
    IF FN countStr(_diagnosislistSTR)=1 THEN FN killdiagnosis
    LONG IF itemnumber$<>MODIFIED$
      FN killdiagnosis:FN repElement(2,_filedataSTR,itemnumber$)
    END IF
    CHECKDX=1
  END IF
  WHILE DIAGNOSIS>FN countStr(_diagnosislistSTR)
    RECORD FILENUMBER,FN
countStr(_diagnosislistSTR):READ#FILENUMBER,AZ$;47
    FN apndElement(_diagnosislistSTR,AZ$)
    FN CHECKRES
  WEND
  AZ$=STR#(_diagnosislistSTR,DIAGNOSIS)
END FN

Thanks,
TJS