# txt File erstellen lassen



## Cthulhu (2. September 2003)

Hallo

ich habe wieder ein Prob. Und zwar will ich, wenn das Programm geöffnet wird, dass automatisch ein txt File erstellt wird. Ohne das der User den Pfad auswählen kann. Wie kann ich das machen?

Danke im voraus

Cthulhu


----------



## Oeuf (2. September 2003)

also ich brauche am meisten diese Funktion:

    Open "C:\Test.txt" For Binary As #1
    Put #1, 1, "Kontakt"
    Close #1


----------



## Dario Linsky (2. September 2003)

> Open "C:\Test.txt" For Binary As #1


Damit öffnest Du die Datei aber für Binärzugriff, nicht als Textdatei.
Versuchs einfach mal mit den folgenden Zeilen:

```
Open "C:\text.txt" For Output As #1
Print #1, "text"
Close #1
```
(Syntaxfehler vorbehalten, ich kanns nicht ausprobieren.)

Ansonsten gibt es AFAIK noch eine entsprechende Methode im Win API namens "CreateFile" - oder zumindest ähnlich.
Ausserdem solltest Du mal hier im Board suchen, zu Textdateien gibt es inzwischen nämlich schon eine Menge Infos.

Gruss, Dario


----------



## Cthulhu (2. September 2003)

Hallo Dario

Danke für deine Hilfe. Ich kannte diesen Code schon:


```
Open "C:\text.txt" For Output As #1
Print #1, "text"
Close #1
```
Ich hätte aber nicht gedacht, dass der ein File erstellt. Jetzt klappt aber alles. 

Merci

Cthulhu


----------



## Dario Linsky (2. September 2003)

Natürlich wird dazu ein File erstellt, irgendwohin muss der Text ja auch geschrieben werden, gell? 
Aber logischerweise wird das File nur erstellt, wenn es noch nicht vorhanden ist.


----------



## Zorck (2. September 2003)

Ich will zwar nichts sagen, klappt ja so auch. Aber wenn mich nicht alles täuscht, kann es mit der Dateinummer Probleme geben. Besser wäre, wenn du dir erst eine freie Dateinummer holst. Also so:

           DateiNr = FreeFile
           Open "C:\text.txt" For Output As #DateiNr
           Print #DateiNr, "text"
           Close #DateiNr


----------



## Dario Linsky (2. September 2003)

Klar, das mit FreeFile ist grundsätzlich schon sinnvoll, um eventuelle Fehler zu vermeiden. Aber AFAIK ist das nicht unbedingt notwendig, wenn man nur eine einzige Datei öffnet und diese auch gleich wieder schliesst. Ausserdem ist in dem Beispiel wohl sichergestellt, dass zu dem Zeitpunkt definitiv nur eine einzige Datei von der eigenen Anwendung blockiert ist.


----------



## Cthulhu (2. September 2003)

Hallo

Das mit der Dateinummer bräuchte ich nicht unbedingt, bin Dir aber dankbar, da ich das nicht wusste und ich sicher irgendwann brauchen werde.


Das automatisch ein Outputfile erstellt wird, ist nicht unbedingt logisch, bei COBOL muss das File auch im JCL-Job erstellt werden.  . Spass beiseite, hatte gar nicht wirklich daran gedacht, es auszuprobieren.

Gruss 

Cthulhu


----------



## aspmario (3. September 2003)

diese lösung ist einfach:

verwende WSH (windows scripting host). mann kann es auch unter vb6 einbinden, aber das wissen wenige

beispiel:
dim FSObj as object
dim File as object
Set FSObj = CreateObject("Scripting.FileSystemObject")
set File = FSObj.OpenTextFile ("C:\Winnt\System32\Upd\radmin.log", ForWriting, True)

siehe: http://www.devguru.com

lg


----------



## Cthulhu (3. September 2003)

Danke für die Hilfe, habe noch nie was davon gehört.  Aber danke für den Code. Ich werde es gleich ausprobieren. 


Grusss 

Cthulhu


----------



## aspmario (3. September 2003)

bitte gerne,

hab jetzt noch mal nachgeschaut und die quell resource wiedergefunden wo die genaue beschreibung vorhanden ist (einbinden der wsh objekte)

http://www.activevb-archiv.net/

unter tutorials nach WSH suchen. es gibt nur einen treffer. daraus kannst du dir den rest ablesen.

lg


----------



## Dario Linsky (3. September 2003)

Zur Verwendung von FileSystemObject und TextStream sollte man hier in der Boardsuche auch was brauchbares finden - und so obskur ist die Scripting Runtime eigentlich auch nicht wirklich.


----------

