Time for an 2014 update…
This commit is contained in:
parent
372c577f83
commit
09687c4926
2520 changed files with 34227 additions and 7318 deletions
|
|
@ -1,15 +1,14 @@
|
|||
import std.stdio, std.string, std.algorithm, std.path, std.array;
|
||||
|
||||
string commonDirPath(in string[] paths, in string sep = "/")
|
||||
/*pure nothrow*/ {
|
||||
string commonDirPath(in string[] paths, in string sep = "/") pure {
|
||||
if (paths.empty)
|
||||
return null;
|
||||
return paths.map!(p => p.split(sep)).reduce!commonPrefix.join(sep);
|
||||
}
|
||||
|
||||
void main() {
|
||||
auto paths = ["/home/user1/tmp/coverage/test",
|
||||
"/home/user1/tmp/covert/operator",
|
||||
"/home/user1/tmp/coven/members"];
|
||||
immutable paths = ["/home/user1/tmp/coverage/test",
|
||||
"/home/user1/tmp/covert/operator",
|
||||
"/home/user1/tmp/coven/members"];
|
||||
writeln(`The common path is: "`, paths.commonDirPath, '"');
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,31 @@
|
|||
' Read the list of paths (newline-separated) into an array...
|
||||
strPaths = Split(WScript.StdIn.ReadAll, vbCrLf)
|
||||
|
||||
' Split each path by the delimiter (/)...
|
||||
For i = 0 To UBound(strPaths)
|
||||
strPaths(i) = Split(strPaths(i), "/")
|
||||
Next
|
||||
|
||||
With CreateObject("Scripting.FileSystemObject")
|
||||
|
||||
' Test each path segment...
|
||||
For j = 0 To UBound(strPaths(0))
|
||||
|
||||
' Test each successive path against the first...
|
||||
For i = 1 To UBound(strPaths)
|
||||
If strPaths(0)(j) <> strPaths(i)(j) Then Exit For
|
||||
Next
|
||||
|
||||
' If we didn't make it all the way through, exit the block...
|
||||
If i <= UBound(strPaths) Then Exit For
|
||||
|
||||
' Make sure this path exists...
|
||||
If Not .FolderExists(strPath & strPaths(0)(j) & "/") Then Exit For
|
||||
strPath = strPath & strPaths(0)(j) & "/"
|
||||
|
||||
Next
|
||||
|
||||
End With
|
||||
|
||||
' Remove the final "/"...
|
||||
WScript.Echo Left(strPath, Len(strPath) - 1)
|
||||
Loading…
Add table
Add a link
Reference in a new issue