File extension is in extensions list: Difference between revisions

new D version
(new D version)
Line 435:
=={{header|D}}==
 
}</lang d>
{{update|D}}
import std.stdio;
import std.string;
import std.range;
import std.algorithm;
 
<lang d>void main() {
{
import std.stdio, std.string, std.path, std.algorithm;
immutableauto exts = [".txtzip", ".gzrar", ".bat7z", ".c", ".c++gz", ".exearchive", ".pdfA##"];
auto filenames = ["MyData.a##",
"MyData.tar.Gz",
"MyData.gzip",
"MyData.7z.backup",
"MyData...",
"MyData"];
 
writeln("extensions: ", exts);
immutable exts = [".txt", ".gz", ".bat", ".c", ".c++", ".exe", ".pdf"];
writeln;
 
foreach(filename; filenames)
immutable fileNames =
{
"text.txt
string extension = filename.drop(filename.lastIndexOf(".") + 1).toLower;
text.TXT
 
test.tar.gz
test/test2.exebool found;
foreach (fNameext; fileNames.splitexts)
test\\test2.exe
test{
if (extension == ext.toLower)
a/b/c\\d/foo
foo.c {
found = true;
foo.C
foo.C++ break;
foo.c# }
foo.zkl}
 
document.pdf";
writeln(filename, " : ", found);
}
 
 
</lang>
 
foreach (fName; fileNames.split)
writeln(fName, ": ", exts.canFind(fName.extension.toLower));
}</lang>
{{out}}
<pre>text.txt: true
extensions: ["zip", "rar", "7z", "gz", "archive", "A##"]
text.TXT: true
 
test.tar.gz: true
test/test2MyData.exea## : true
test\test2MyData.exetar.Gz : true
testMyData.gzip : false
a/b/c\d/fooMyData.7z.backup : false
fooMyData.c#.. : false
foo.c: true
foo.zklMyData : false
foo.C: true
 
foo.C++: true
</pre>
foo.c#: false
foo.zkl: false
document.pdf: true</pre>
 
=={{header|Fortran}}==
Anonymous user