Hallo,
was ist falsch ???
SCHNIPP SCHNAPP SCHNIPP SCHNAPP
>
> In[58]:=
> Remove[schaareStreams];
> schaareStreams[i_Integer, filen_String] := Module[{o, l0, fn, f1},
> SetDirectory["C:\output of Gehirnzelle\Abteilung_skrot"];
> l0 = Table[{o, o o}, {o, 1, i}];
> f1 = If[StringMatchQ[filen, "*.txt"], filen,
> filen <> ".txt"];
> fn = f1;
> While[Length[FileNames[fn]] != 0,
> fn = f1 <> "_" <> ToString[Unique[]]
> ];
> wstr = OpenWrite[fn];
> Write[wstr,
> OutputForm[
> TableForm[l0,
> TableHeadings -> {None, {"Erste Spalte", "Zweite Spalte"}}]]];
> Close[wstr]
> ] /; i > 0 && StringLength[filen] > 0
Genau, auf einem Windoofs/Dosen System werden Verzeichnisse mit
doppelten
Backslash angegeben also
> SetDirectory["C:\\output of Gehirnzelle\\Abteilung_skrot"];
ein einzelner Backslash wird C-m"assig als
\n Wagenr"ucklauf
\t Tabulator
\" "
u.s.w.
Interpretiert. Da es aber \A und \o garnicht gibt fehlt im Original
dann ein Zeichen.
Was aus der "Ausgabe der Gehirnzelle Abteilung_skrot"
eine
c:utput of Gehirnzellebteilung_skrot
macht die es auch nicht gibt.
Die einzige *portable* Form ist
?ToFileName
ToFileName["directory", "name"] assembles a full file name from a
directory name and a file name. ToFileName[{dir1, dir2, ... }, name]
assembles a full file name from a hierarchy of directory names.
ToFileName[{dir1, dir2, ... }] assembles a single directory name from a
hierarchy of directory names
dann setzt Mathematica den $DirectorySeparator selbst ein also auf einem
Mac en ":", auf einer Dose "\\" und unter Unix ein "/".
Aus praktischen Gr"unden ist es *nicht* g"unstig auf einem
Windoofs Rechner die Dateiextension ".txt" mit
> fn = f1 <> "_" <> ToString[Unique[]]
irgendwas.txt_$i
zu verst"ummeln. Da Windoofs an der Extension den Datei-Typ "erkennt",
und beim Doppel-Klick auf *.txt Dateien einen Editor "offnet, ist
es recht ratlos, wenn es eine Datei vom Typ ".txt_$1" bekommt,
wenn schon, dann sollte der Dateiname
irgenwas.1.txt, irgenwas.2.txt heissen.
Letzteres l"asst sich mit
SplitExtension[fname_String] /; StringMatchQ[fname, "*.*"] :=
Module[{pos},
pos = StringPosition[fname, "."];
{StringTake[fname, First[First[pos]] - 1],
StringTake[fname, Last[First[pos]] - StringLength[fname] - 1]}
]
UniqueFileName[dir_, fname_String] :=
Module[{post, , pre = fname, i = 1},
If[StringMatchQ[pre, "*.*"],
{pre, post} = SplitExtension[fname],
post = ".txt"
];
If[{}===FileNames[ToFileName[dir, pre <> post]],
Return[pre<>post]
];
While[{} =!=
FileNames[ToFileName[dir, pre <> "." <> ToString[i] <> post]],
i++];
pre <> "." <> ToString[i] <> post
]
erreichen, dann ist
schaareStreams[i_Integer, filen_String] := Module[{o, l0, fn},
> SetDirectory["C:\\output of Gehirnzelle\\Abteilung_skrot"];
> l0 = Table[{o, o o}, {o, 1, i}];
fn=UniqueFilenName[{},filen];
> wstr = OpenWrite[fn];
> Write[wstr,
> OutputForm[
> TableForm[l0,
> TableHeadings -> {None, {"Erste Spalte", "Zweite Spalte"}}]]];
> Close[wstr]
> ] /; i > 0 && StringLength[filen] > 0
auch gleich vieeeeeelll "ubersichtlicher.
Gruss
Jens
PS: Sag mal, hast Du wirklich eine Verzeichnis "output of Gehirnzelle"
und sollte das nicht "OutputOfBrainCell",
"OutputOfBrainCellCluster" oder "OutputOfCortex" heissen ?