(* Generate listing of common names from data for added names *) maintainCnamesAdded := Module[{}, dirAdd = FileNameJoin[{dirwork, "data", "search", "added"}]; checkdir[dirAdd]; SetDirectory[dirAdd]; namesAdded = FileNames[]; n0 = Length[namesAdded]; namesAdded = StringReplace[#, {".txt" -> "", "_" -> " "}] & /@ namesAdded; namesAdded = Select[namesAdded, StringMatchQ[#, matchName2] &]; n1 = Length[namesAdded]; Print["maintainCnamesAdded: ", n0, " files in directory ", dirAdd, ". ", n1, " valid names (namesAdded): ", namesAdded]; (* Reading common names *) cdata = {}; Do[ nameul = StringReplace[name, " " -> "_"]; file = FileNameJoin[{dirAdd, nameul <> ".txt"}]; lines = Import[file, "Lines"]; tag = "COMMONNAMES"; match = WhitespaceCharacter ... ~~ tag ~~ ":" ~~ WhitespaceCharacter ... ~~ x__ ~~ WhitespaceCharacter ...; data = Select[lines, StringMatchQ[#, match] &]; If[data =!= {}, data = StringReplace[Last[data], match :> x]; cdata = Append[cdata, {name, data}]; ], {name, namesAdded}]; (* Writing to a file *) source = "added"; cdataSave[cdata, source]; (* see functions.m *) ];