DMUG-Archiv 2001

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

Re: Exportieren in ein Text (TeX) File?

Hallo Michaela,

Ich versuche mich mal an einer Antwort auf deine Fragen
1 bis 3 - für die anderen weiß ich keine ...

Es gibt einen dem »Print[...]«-Befehl äquivalenten Befehl
für das Schreiben von Daten in eine Datei, und zwar
»WriteString[...]«

Dazu musst du als erstes die Datei, in die geschrieben
werden soll, als »OutputStream« öffnen: »OpenWrite[...]«
oder »OpenAppend[...]«. (»OpenWrite[...]« überschreibt
eine eventuell bestehende Datei gleichen Namens,
»OpenAppend[...]« fügt einer bestehenden Datei Neues
am Ende an.)

Nun kannst du mit »WriteString[...]« beliebigen Output
in Textform in diese Datei schreiben, und abschließend
musst du sie mit »Close[...]« wieder schließen:

Das ganze könnte z. B. so aussehen:

   In[1]:=  f[x_] := x^2 - 1

   In[2]:=  xFile = OpenWrite["D:\Eigene Dateien\Test.txt"]

            For[x = 1, x <= 5, x++,
               WriteString[xFile,
                  "Das Ergebnis lautet: f(", x, ") = ",
                  x, "^2 - 1 = ", f[x], ".\n"
               ]
            ]

            Close[xFile]

Dies erzeugt in der Datei »Test.txt« folgende Ausgabe:

   Das Ergebnis lautet: f(1) = 1^2 - 1 = 0.
   Das Ergebnis lautet: f(2) = 2^2 - 1 = 3.
   Das Ergebnis lautet: f(3) = 3^2 - 1 = 8.
   Das Ergebnis lautet: f(4) = 4^2 - 1 = 15.
   Das Ergebnis lautet: f(5) = 5^2 - 1 = 24.

"\n" am Ende des obigen »WriteString[...]«-Befehls sorgt
für den Beginn einer neuen Zeile (wie es das auch inner-
halb des »Print[...]«-Kommandos tut). Der OutputStream
muss selbstverständlich nicht »xFile« heißen, sondern
kann beliebig benannt werden.

Verwandte und deshalb nachschlagenswerte Befehle sind:

   »Write[...]« und »Export[...]« sowie »Save[...]«,
   »DumpSave[...]«, »Put[...]« (bzw. »>>«), »Get[...]«
   (bzw. »<<«) und »PutAppend[...]« (bzw. »>>>«).

Viele studentische Grüße von der HU aus Berlin

Holger



-----Ursprüngliche Nachricht-----
Von: "Michaela Schaare" <mjsch@XXXXXXX.de>
An: <dmug@XXXXXXX.ch>
Gesendet: Freitag, 9. November 2001 17:59
Betreff: Exportieren in ein Text (TeX) File?


Hallo,

ich bin Studentin an der TU-Braunschweig und schreibe gerade an
meiner Diplomarbeit.
Dabei sollte ich ein Programm unter Mathematica erstellen.
Nach langer Zeit habe ich es nun geschafft, mein Programm zu Ende
zu schreiben.
Ich habe mit dem Notebook gearbeitet und habe haupts"chlich mit
Modulen gearbeitet.

Nun stehe ich vor folgendem Problem:

Meine Hauptfunktion gibt mir meine Berechnungen ?ber einen Print
Befehl auf den Bildschirm aus.
Allerdings m"chte ich die Ausgabe in eine Datei geschrieben habe!
In eine einfache Textdatei w?rde
vollkommen ausreichen. :)

Was ich bis jetzt ?ber den PrintBefehl herausbekommen habe, ist:

1. Ich kann meine Ausgabe mit keinem der folgenden Befehle in
eine Datei umleiten:  Put, >> .
    Noch kann ich mit den Befehlen OpenWrite, Write arbeiten.
(Also mit Str"men!)

In beiden F"llen wird zwar eine Datei erstellt, aber in der Datei
steht h"chstens eine Null.

2. Print schickt seine Daten direkt auf den Bildschirm (Standard
Output Kanal) und unterscheidet sich somit von anderen
    Mathematica Ausgabe Funktionen.

Bsp.:

[In]  Expand[x^2 + x - 1]

[Out]   x^2 + x - 1

w"hrend Print folgende Ausgabe erzeugt:

[In] Print[x^2 + x - 1]

x^2 +x - 1

[Out] 0                  (<- daher auch die Null in der externen
Datei ...)


Nun meine Fragen:

1. Kann man dem Print einen anderen Output Kanal zuweisen?

2. Kann ich meine Daten, von Print erzeugt, ?berhaupt in eine
externe Datei schreiben lassen???
    Wenn ja, wie???

3. Gibt es einen Befehl, der wie Print arbeitet, nur dass er mit
den Befehlen Put bzw. mit Streams arbeitet???


Ausserdem habe ich noch weitere Fragen:

4. Mein Programm hat ungef"hr 50 Zeilen (Kommentare nicht
mitgez"hlt) , aufgeteilt in mehrer Cells.
   Wenn ich mein Programm auf eine Cell reduziere und es dann
evaluiere, dann l"uft mein Programm nicht mehr.
   Wenn ich aber alle Cells einzeln evaluiere, dann l"uft auch
mein Programm!
   Ich verstehe aber nicht wieso!!!

5. Ist es notwendig, bei dem Befehl Module[{},   ] die
geschweiften Klammern zu f?llen????
    Ich habe in meinem Programm die Klammern alle leer. K"nnen
dadurch Fehler entstehen???

Ich glaube, hier bin ich am Ende.

Ich m"chte mich noch entschuldigen f?r meine lange mail, aber
weder in meinem Freundeskreis noch an der Uni,
kenne ich jemanden, der jemals unter Mathematica ein Programm
geschrieben hat. In den wenigen F"llen wurde
Mathematica ausschliesslich als einen komfortablen grossen
Taschenrechner gebraucht.
Und die Fragen, die ich jetzt noch habe, konnte mir das dicke
Mathematica Handbuch auch nicht beantworten.
Nun habe ich diese "Forum" gefunden, und hoffe, dass mir jemand
weiterhelfen kann.

Liebe Gr?sse, Michaela Schaare



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

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