DMUG-Archiv 2001

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Exportieren in ein Text (TeX) File?

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 ?


Antworten:
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html