DMUG-Archiv 2001

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

Re: Exportieren in ein Text (TeX) File?

Hallo,

> Ich habe mich nun f?r den Befehl EXPORT entschieden! 

was vielleicht nicht das g"unstigste ist.

> Bis jetzt habe ich nun eine Funktion definiert, die mein Ergebnis m.H.v. d. Export-Befehls in eine andere Datei 
> schreibt! (Die anderen Befehle habe ich
> auch ausprobiert! Doch dieses Mal an den richtigen Stellen :)  Vorher habe ich immer versucht, mit den Befehlen 
> OpenAppend - Write -Close zu arbeiten, dabei habe ich immer meinen ganzen Funktionsaufruf
> versucht, in Write einzuarbeiten! Das hat allerdings nie funktioniert! :) )

Wie "uberraschend ...

> 
> So, aber hier nun eine neue Frage (wobei ich nicht weiss, ob ich es einfach zu kompliziert mache. Vielleicht sollte 
> ich mein Programm so lassen, wie es ist, und nicht versuchen, es "sch?n" zu machen! 

Ich bef"urchte das wird lange dauern.

>?hm, lange
> Rede - kurzer Sinn?) :
> 
> Also, hier erst mal mein Beispiel. 
> Ein kleines Testprogramm von mir 
> (mit Fehler, aber immerhin habe ich eine Ausgabe nach meinem Sinn) :
> 
> In[]:= v:={}
>        u:={}
>        w:={u,v}
>        n=3;
>        vers[ n_ ]  :=  
           Module[{},    
             For[ i=1, i <= n, i++,
>              If[ EvenQ[i],  
                 v=Table[ StringForm[" `` Mal `` " , i ],    {i , n}] ,
>                w=Table[ StringForm[" `` Mal `` " , i^2 ],    {i , n}]
>               ]
>             ] ;
>           Export["hallo.txt"  ,  
              Prepend[ w, {"Erste Spalte",  "Zweite Spalte "} ] ,
"Table"]
>         ]
> 

Also `1` , `2` wird in StringForm[] als Platzhalter f"ur ein Argument
verstanden, fehlen die Zahlen so wird bei jedem `` Paar weiter gez"ahlt.
StringForm[" `` Mal `` " , i ]  entspricht also
StringForm[" `1` Mal `2` " , i ]  allerdings fehlt das zweite Argument
und
das gibt einen Fehler.

Sollen die beiden Listen w, v der Nachwelt erhalten werden ? oder warum
stehen die nicht *in* der Variablen Liste des Module[] ?  

vers[file_String, n_Integer ]  :=  
           Module[{w,v},
             w=v={};    
             For[ i=1, i <= n, i++,
              If[ EvenQ[i],  
                 v=Table[ StringForm["  Mal `1` " , i ],    {i , n}] ,
                w=Table[ StringForm["  Mal `1` " , i^2 ],    {i , n}]
               ]
             ] ;
           Export[file  ,  
              Prepend[ w, {"Erste Spalte",  "Zweite Spalte "} ] ,
"Table"]
         ]

Wieso werden n/2-mal die selben Listen w und v erzeugt ? 
Wozu ist die For[]-Schleife "uberhaupt gut (?) und wieso wird
v "uberhaupt nicht mehr verwendet?

Es ist zwar erlaubt, innerhab einer Schleife die Schleifenvariable
in einer Table[] zu benutzen, das ist aber *sehr* schlechter 
Programmier-Stil, in den meisten anderen Sprachen f"uhrt sowas
in ein Desaster. Wenn man dass nach 2 Monaten anguckt gr"ubelt man
ewig wieso der erste Durchlauf von Table[] nicht auch die For[]
Schleife terminiert.

> So, mit dem Aufruf vers[2]  erhalte ich nun eine recht nette (geschummelte :) )  Tabelle!
> 
> Was ich jetzt gern machen w?rde, ist:
> 
> Statt n w?rde ich gern den Dateien Name,
> wo ich also meine Daten hinschicke (momentan hallo.txt) , eingeben k?nnen:

Echt ? *statt* n ? oder so wie oben *ausser* n

> 
> Bsp:
> 
> vers[ dateiname_ ] := Module[{}, (......)
> 
>                                                Export["  dateiname.txt" ,    .........] ]
> 
> damit ich einen Aufruf starten kann und sofort sagen kann, in welche Datei meine Ergebnisse geschrieben werden sollen:
> 
> In[]:=  vers[ michaela ]
> 
> Out[]:= michaela.txt
> 
> Ist das m?glich! Oder muss man so etwas manuell gestalten????

Was heisst "manuell gestalten" ?
Wenn schon, dann sollte der Aufruf vers["michaela"] heissen,
und wenn man die Extension automatisch anh"angen will, dann
w"are 


vers[pre_String]:=Module[{dateiname},
                  
dateiname=If[!StringMatchQ[pre,"*.*"],pre<>".txt",pre];
                   (* der ganze Unsinn von oben ... *)
                   Export[dateiname  ,  
                     Prepend[ w, {"Erste Spalte",  "Zweite Spalte "} ] ,
"Table"]
                  ]

nicht schlecht.

Gruss
  Jens


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

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