FileWrite

  • Hi
    Ich habe ein Problem.
    Und zwar möchte ich online was in eine Datei speichern lassen. Wenn ich etwas auslese funktioniert alles also die Verbindung ist da. Doch wenn ich etwas hineinschreiben möchte funktioniert nichts die Datei bleibt leer.

    Hier mein Code dafür

    Spoiler anzeigen
    [autoit]

    InetGet("meine adresse",@TempDir & "\test.txt", 1, 0)
    $file = FileOpen(@TempDir & "\test.txt", 0)
    FileWrite(@TempDir & "\test.txt", $test)
    FileClose($file)

    [/autoit]

    Weiß jemand was falsch läuft? Es muss ja am FileWrite Befehl liegen doch mir fällt auch nichts mehr ein.

    Grüße

  • versuchs mal so ;)


    Spoiler anzeigen
    [autoit]

    InetGet("meine adresse",@TempDir & "\test.txt", 1, 0)
    $file = FileOpen(@TempDir & "\test.txt", 1)
    FileWrite(@TempDir & "\test.txt", $test)
    FileClose($file)

    [/autoit]
  • Gib bei FileWrite nicht den Dateinamen an, sondern hier $file, den zurückgegebenen Handle von FileOpen, also:

    [autoit]

    $file = FileOpen(@TempDir & "\test.txt", 0)
    FileWrite($file, $test)
    FileClose($file)

    [/autoit]

    Noch was anderes. Was ist bitteschön $test? Du hast der Variable garnichts zugewiesen?

  • es geht immer noch nicht -.-
    $test hab ich weiter oben den wert hallo zugewiesen^^

  • so getestet
    sollte funktionieren:

    Spoiler anzeigen
    [autoit]

    $test = "hallo"

    [/autoit] [autoit][/autoit] [autoit]

    InetGet("deine url", @TempDir & "\test.txt", 1, 0)
    $file = FileOpen(@TempDir & "\test.txt", 1)
    FileWrite($file, $test)
    FileClose($file)

    [/autoit]
  • mal ohne FileOpen und ohne Fileclose versucht?
    Oder mal ein Sleep eingebaut? Denn InetGet dauert ziemlich sicher keiner Tausendstelsekunde, einfach mal warten bis es wirklich da ist

    InetGet wartet mit dem script so lange bis die datei fertig geladen ist
    fileopen und -close sollte schon funktionieren es gibt auch andere möglichkeiten aber das wurde ja nicht gefragt..

    könnte mir vorstellen das die datei die er runter läd keine *.txt ist er sie aber als solche abspeichert und darin was schreiben möchte ?(

  • [autoit]


    InetGet("deine url", @TempDir & "\test.txt", 1, 0)
    $file = FileOpen(@TempDir & "\test.txt", 0)
    ConsoleWrite($file & @CRLF)

    [/autoit]

    Wird in der Konsole -1 ausgegeben ist die Datei entweder nicht vorhanden oder dir fehlen möglicherweidse die nötigen Zugriffsrechte. In dem Fall schaust du im TEMP-Ordner ob du die Datei dort überhaupt findest.


  • $file = FileOpen(@TempDir & "\test.txt", 0)

    warum immer 0 am ende? ich dachte 1
    er will doch etwas in die file schreiben 0 ist doch lesemodus oder irre ich da?

  • Zitat


    warum immer 0 am ende? ich dachte 1
    er will doch etwas in die file schreiben 0 ist doch lesemodus oder irre ich da?

    Nein, du irrst nicht. Wenn ich aber testen will ob auf die Datei zugegriffen werden kann dann muss ich sie im Lesemodus öffnen. Öffne ich sie im Schreibmodus dann wird sie, fall's nicht vorhanden, erstellt und 1 wird zurückgegeben. Damit wär der Test sinnlos.

  • Hi
    Ich habe ein Problem.
    Und zwar möchte ich online was in eine Datei speichern lassen. Wenn ich etwas auslese funktioniert alles also die Verbindung ist da. Doch wenn ich etwas hineinschreiben möchte funktioniert nichts die Datei bleibt leer.


    mach es so und es wird etwas lokal an die Datei angehängt:

    [autoit]

    HttpSetUserAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.6) Gecko/20100625 Firefox/3.6.6")
    InetGet("http://www.autoit.de/index.php?page=Thread&threadID=21538", @TempDir & "\test.txt", 1, 0)
    $file = FileOpen(@TempDir & "\test.txt", 0)
    $Test =FileReadLine($file,-1)
    FileClose($file)
    ConsoleWrite("Letzte Zeile (InetGet) " & $Test & @CRLF)
    $file = FileOpen(@TempDir & "\test.txt", 1) ;im Schreibmodus mit anhängen öffnen
    FileWrite($file, "Das ist angehängter Text")
    FileClose($file)
    $file = FileOpen(@TempDir & "\test.txt", 0)
    $Test =FileReadLine($file,-1)
    FileClose($file)
    ConsoleWrite($Test @CRLF)

    [/autoit]

    diese must du dann mit FTP funktionen wieder online stellen

    mfg (Auto)Bert

  • Bert du hast in der letzten Zeile ein & vergessen xD
    öhn naja jetzt steht unten wenn ich das script ausführe LLetzte Zeile (InetGet)
    Das ist angehängter Text
    aber mehr passiert auch nicht
    wie meinst du das mit den ftp funktionen
    jetzt versteh ich gar nichts mehr o,O

  • wie meinst du das mit den ftp funktionen
    jetzt versteh ich gar nichts mehr o,O

    Zitat

    Und zwar möchte ich online was in eine Datei speichern lassen.


    das soll doch wohl heissen, dass du die Daten wieder online haben möchtest, oder habe ich da etwas falsch verstanden?

    mfg (Auto)Bert

  • ja die datei ist ja im prinzip schon auf meinem server
    ich führe das aus stoppe es dann nach 10 sek
    lade die datei runter und sie ist leer

    also ja die soll online sein

  • ja die datei ist ja im prinzip schon auf meinem server
    ich führe das aus stoppe es dann nach 10 sek
    lade die datei runter und sie ist leer

    Dann führe einmal das von mir gepostete Skript (mit AutoIt.de ....) aus, Fehlendes & vorher ersetzen, danach musst du folgendes in der Konsole stehen haben

    Code
    Letzte Zeile (InetGet) </html>
    </html>Das ist angehängter Text.

    Danach änderst du das Skript auf deine INet-Seite und startest es. Das File darf auch jetzt nicht leer sein, ausser falsche URL oder Seite verlangt Authentifizierung

    also ja die soll online sein

    nach InetGet ist sie erst einmal lokal bei dir,

    Spoiler anzeigen

    falls der Server auf dem gleichen Rechner läuft kannst du ja auch

    [autoit]

    FileCopy;oder
    FileMove

    [/autoit]

    verwenden um sie ins richtige Verzeichnis zu stellen. Dann ist aber InetGet überflüssig.

    Das heist du musst die Datei wieder online stellen. Dazu kann man Funktionen aus der FTPEx.au3 verwenden, übrigens gibt es dort auch ein Funktionen zum Downloaden von Dateien. Da ich aber keinen (FTP-)Server habe kenne ich mich damit auch nicht aus.

    mfg (Auto)Bert

    Einmal editiert, zuletzt von AutoBert (5. Juli 2010 um 21:12) aus folgendem Grund: Formatierung uund TAG 's