A-M baby
This commit is contained in:
parent
764da6cbbb
commit
db842d013d
19005 changed files with 197040 additions and 7 deletions
|
|
@ -0,0 +1,52 @@
|
|||
DECLARE FUNCTION commonPath$ (paths() AS STRING, pathSep AS STRING)
|
||||
|
||||
DATA "/home/user2", "/home/user1/tmp/covert/operator", "/home/user1/tmp/coven/members"
|
||||
|
||||
DIM x(0 TO 2) AS STRING, n AS INTEGER
|
||||
FOR n = 0 TO 2
|
||||
READ x(n)
|
||||
NEXT
|
||||
|
||||
PRINT "Common path is '"; commonPath$(x(), "/"); "'"
|
||||
|
||||
FUNCTION commonPath$ (paths() AS STRING, pathSep AS STRING)
|
||||
DIM tmpint1 AS INTEGER, tmpint2 AS INTEGER, tmpstr1 AS STRING, tmpstr2 AS STRING
|
||||
DIM L0 AS INTEGER, L1 AS INTEGER, lowerbound AS INTEGER, upperbound AS INTEGER
|
||||
lowerbound = LBOUND(paths): upperbound = UBOUND(paths)
|
||||
|
||||
IF (lowerbound) = upperbound THEN 'Some quick error checking...
|
||||
commonPath$ = paths(lowerbound)
|
||||
ELSEIF lowerbound > upperbound THEN 'How in the...?
|
||||
commonPath$ = ""
|
||||
ELSE
|
||||
tmpstr1 = paths(lowerbound)
|
||||
|
||||
FOR L0 = (lowerbound + 1) TO upperbound 'Find common strings.
|
||||
tmpstr2 = paths(L0)
|
||||
tmpint1 = LEN(tmpstr1)
|
||||
tmpint2 = LEN(tmpstr2)
|
||||
IF tmpint1 > tmpint2 THEN tmpint1 = tmpint2
|
||||
FOR L1 = 1 TO tmpint1
|
||||
IF MID$(tmpstr1, L1, 1) <> MID$(tmpstr2, L1, 1) THEN
|
||||
tmpint1 = L1 - 1
|
||||
EXIT FOR
|
||||
END IF
|
||||
NEXT
|
||||
tmpstr1 = LEFT$(tmpstr1, tmpint1)
|
||||
NEXT
|
||||
|
||||
IF RIGHT$(tmpstr1, 1) <> pathSep THEN
|
||||
FOR L1 = tmpint1 TO 2 STEP -1
|
||||
IF (pathSep) = MID$(tmpstr1, L1, 1) THEN
|
||||
tmpstr1 = LEFT$(tmpstr1, L1 - 1)
|
||||
EXIT FOR
|
||||
END IF
|
||||
NEXT
|
||||
IF LEN(tmpstr1) = tmpint1 THEN tmpstr1 = ""
|
||||
ELSEIF tmpint1 > 1 THEN
|
||||
tmpstr1 = LEFT$(tmpstr1, tmpint1 - 1)
|
||||
END IF
|
||||
|
||||
commonPath$ = tmpstr1
|
||||
END IF
|
||||
END FUNCTION
|
||||
Loading…
Add table
Add a link
Reference in a new issue