* ------------[ BLED merge (c) Ken Goosens ]------------- * Merge this against RBBSSUB5.BAS to produce RBBSSUB5.NEW * RBBSSUB5.BAS: Date 5-21-1990 Size 88881 bytes * ------------[ Created 06-23-1990 23:40:38 ]------------ * REPLACING old line(s) by new 63300 ' $SUBTITLE: 'BreakFileName - sub to split file name into components' ' $PAGE ' ' NAME -- BreakFileName ' ' INPUTS -- PARAMETER MEANING ' FileSpec$ FULL NAME OF FILE ' ForJoining True IF WANT PARTS FORMATTED FOR ' FORMING FILE NAMES ' OUTPUTS -- DrvPath$ DRIVE AND PATH ' Prefix$ PREFIX OF FILE NAME ' Extension$ EXTENSION OF FILE NAME ' ' (E.G. "C:\RBBS\ARCE.COM" HAS "C:\RBBS" AS DRIVE AND PATH, ' "ARCE" AS PREFIX OF THE FILE NAME, AND ' "COM" AS THE EXTENSION OF THE FILE NAME. ' ' JOINED FORMAT IS C:\RBBS\,ARCE,.COM ' ' PURPOSE -- To break a file name into its component parts ' of drive/path, prefix, and extension ' ' SUB BreakFileName (FileSpec$,DrvPath$,Prefix$,Extension$,ForJoining) STATIC CALL AllCaps (FileSpec$) DrvPath$ = "" Prefix$ = "" Extension$ = "" CALL TrimTrail (FileSpec$,"\") WasL = LEN(FileSpec$) IF WasL < 1 THEN _ EXIT SUB CALL FindLast (FileSpec$,"\",WasX,WasY) IF WasX < 1 THEN _ IF MID$(FileSpec$,2,1) = ":" THEN _ DrvPath$ = LEFT$(FileSpec$,1) : _ ZWasS = 3 _ ELSE ZWasS = 1 _ ELSE DrvPath$ = LEFT$(FileSpec$,WasX-1) : _ ZWasS = WasX + 1 : _ IF WasY = 1 THEN _ DrvPath$ = DrvPath$ + "\" * ------[ first line different ]------ WasX = INSTR(ZWasS,FileSpec$ + ".",".") ' EC061301 IF WasX < WasL THEN _ Extension$ = MID$(FileSpec$,WasX + 1) IF ZWasS <= WasL THEN _ IF WasX >= ZWasS THEN _ Prefix$ = MID$(FileSpec$,ZWasS,WasX - ZWasS) IF NOT ForJoining THEN _ EXIT SUB IF LEN(DrvPath$) = 1 THEN _ IF DrvPath$ <> "\" THEN _ DrvPath$ = DrvPath$ + _ ":" IF INSTR(DrvPath$,"\") > 0 AND RIGHT$(DrvPath$,1) <> "\" THEN _ DrvPath$ = DrvPath$ + _ "\" IF LEN(Extension$) > 0 THEN _ Extension$ = "." + _ Extension$ END SUB