(* Saving a list of mushrooms in a history folder *) maintainHistory := ( Print["----- Running maintainHistory ..."]; lines = Table[ yrpics = picSet[name]; yrpics = Prepend[#, toyear[#[[1]]]] & /@ yrpics; StringReplace[name, " " -> "_"] <> " " <> packyrpics[yrpics], {name, namesListSort}]; lines = Append[lines, "Fungi <" <> ToString[Length[picsList]] <> ">"]; dirhist = ToFileName[{dirwork, "history"}]; ifwrite = True; filesold = Sort[FileNames["*-*-*.txt", {dirhist}, 2]]; If[filesold =!= {}, fileold = Last[filesold]; linesold = Import[fileold, "Lines"]; If[Sort[lines] === Sort[linesold], ifwrite = False]]; If[ifwrite, ymd = DateString[{"Year", "-", "Month", "-", "Day"}]; ye = StringSplit[ymd, "-"][[1]]; dirhisty = ToFileName[{dirwork, "history", ye}]; checkdir1[dirhisty]; file = ToFileName[dirhisty, ymd <> ".txt"]; Print["Writing list of mushrooms to a file ", file]; Export[file, lines, "Lines"]; ];); (* Shortens printed form of list of pictures like: {{2020,2776,04},{2020,2776,05},{2020,2792,02},{2020,2792,03},{2020,2792,04},{2020,2792,05},{2021,2957,21},{2022,3099,15},{2023,3426,02},{2023,3426,03},{2023,3426,04},{2023,3426,11},{2023,3426,12},{2023,3426,33}} -> "2020-2776-04 05 2792-02 03 04 05 2021-2957-21 2022-3099-15 2023-3426-02 03 04 11 12 33" *) packyrpics[yrpics_List] := Module[{year0, roll0, year, roll, pic, y, r, yrpic, yrpics1}, {year0, roll0} = {"Undefined", "Undefined"}; yrpics1 = Table[ If[! MatchQ[yrpic, {_String, _String, _String}], Print["Fatal error: packyrps: ", yrpics, ": not 3 strings: ", yrpic]; "UNDEFINED", {year, roll, pic} = yrpic; y = If[year =!= year0, year <> "-", ""]; year0 = year; r = If[roll =!= roll0 || year =!= year0, roll <> "-", ""]; roll0 = roll; y <> r <> pic], {yrpic, yrpics}]; StringJoin[Riffle[yrpics1, " "]] ];