unfassbar.
Obwohl, könnte meinen Allerwertesten verwetten, das ich bei allen meinen Versuchen das auch dabei hatte....
Funktioniert aber auf jeden Fall.
Danke
Beiträge von vel2000
-
-
-
Also ich da was gefunden...
[autoit]ConsoleWrite(currentUTCtimestamp())
[/autoit]
Func currentUTCtimestamp()
TCPStartUp()
$socket = TCPConnect( '64.90.182.55', 37 )
While 1
If $socket > 0 Then
$recv = TCPRecv( $socket, 512 )
EndIf
If $recv <> "" Then
$a = Asc(StringMid($recv,1,1))*256^3+Asc(StringMid($recv,2,1))*256^2+Asc(StringMid($recv,3,1))*256+Asc(StringMid($recv,4,1))
ExitLoop
EndIf
WEnd
TCPCloseSocket ( $socket )
TCPShutdown ( )
$time = ($a - 2208985230)
MsgBox(0, "", $time)
EndFunc
Eine Messagebox zeigt mir die gewünschte Zeit an.ABER: wie mache ich die Variable $time jetzt für den Rest des Scripts verfügbar
Und das "consolewrite" brauch ich eigentlich auch nicht...
Erledigt -
-
Wie füge ich die aktuelle UTC Zeit (unabhängig von der aktuellen Computerzeit), als Unix Timestamp ein?
[autoit]
Momentan behelfe ich mir folgendermassen:
Erklärung:
Ich befinde mich zur Zeit in Asien (UTC +6 Stunden)$iDateCalc = _DateDiff( 's',"1970/01/01 06:00:00",_NowCalc())
[/autoit]
Diese Lösung funktioniert natürlich nur in meiner Zeitzone....
Ich brauche aber was "universelles", das in jeder Zeitzone (unabhängig von der eingestellten Uhrzeit) funktioniert -
@ScriptDir Messagebox, zeigt den richtigen Pfad an.
[autoit]
es scheint sich eher um ein Timing Problem zu handeln.Run("wget1 -O file.txt " & $wget1 & $wget2.......)
[/autoit]
ProcessWaitClose("wget.exe") ;<-- nach dem einfügen dieser Zeile "scheints jetzt zu laufen
$s_String = FileRead(@ScriptDir & "\file.txt")
$sPattern = 'http://[^"]*'
$aURL = StringRegExp($s_String, $sPattern, 3)
; _ArrayDisplay($aURL)
_FileWriteFromArray(@ScriptDir & "\link.txt", $aURL)
Run("test.bat") ;<--wurde wohl zu früh gestartet, bevor das andere abgearbeitet war,
;wie kann man das verhindern ohne Sleep(irgendwas) Also Run("test.bat") soll erst dann gestartet werden,
;wenn link.txt existiert/aktualisiert worden ist ? -
Hi,
FileRead:
Liest eine bestimmte Anzahl von Zeichen aus einer zuvor geöffneten Textdatei (FileOpen()) !das hat wohl damit nichts zu tun, denn generell gehts ja, nur eben nicht mit "@ScriptDir".
Wenn ich stattdessen den kompletten Pfad angebe, funktionierts doch -
kleines Problem wieder mal
[autoit]
Kurze Erklärung:
Die autoittest.exe liegt in c:\test, die Datei "file.txt" ebenfalls.
Mein nicht funktionierender Teil des kompilierten Scriptes, sieht folgendermassen aus:$s_String = FileRead(@ScriptDir & "\file.txt")
[/autoit]
$sPattern = 'http://[^"]*'
$aURL = StringRegExp($s_String, $sPattern, 3)
_ArrayDisplay($aURL)
_FileWriteFromArray(@ScriptDir & "\link.txt", $aURL)
Aber file.txt wird nicht gelesen
Wenn ich nun aber "@ScriptDir & "\file.txt", durch "c:\test\file.txt" ersetze, funktioniert es einwandfrei.
Was läuft falsch? -
-
Hmm, das funktioniert bei mir nicht...
[autoit]
Mein Script sieht folgendermaßen aus.#include <Array.au3> ;Only for _ArrayDisplay
[/autoit][autoit][/autoit][autoit]
#include <File.au3>$s_String = FileRead("c:\zats\a.txt")
[/autoit]
$s_String &= FileRead("c:\zats\b.txt")
$s_String &= FileRead("c:\zats\c.txt")
$sPattern = '((?:http://|ftp://|shttp://)?(?:www\.)?.+?\.(?:de|com|org|net)(?:/\S*)?)'
$aURL = StringRegExp($sString, $sPattern, 3)
;_ArrayDisplay($aURL)
und das ergibt folgende Fehlermeldung:
und -
Zitat
Zuerst liest du alle Dateien ein, und packst ihren Inhalt in eine Variable. Dann durchsuchst du diese Variable mit StringRegExp, aber verwende die Flag 3 um alle Ergebnisse in ein Array zu speichern. Danach schreibst du das ganze mit _FileWriteFromArray in eine Datei.
thanks für die Antwort, aber gibts da irgendwo ein Beispiel?
Ich bin jetzt nicht sooo der Crack. -
-
wenn es um das auslesen von Links geht, hätte ich vielleicht noch eine andere Variante...
Was brauchst Du denn aus dem Cache? -
Zitat
Irgendwie verstehe ich nicht wo dein Problem noch ist.
Die beiden zu ersetzenden Strings hast du ja und musst sie eigentlich nur noch in ein StringReplace einbauen und dann in die Datei schreiben.
Aber da ich auch des öfteren mal nen Knoten im Hirn hab hier mal mein Vorschlag das zu lösen:SUPER, das funktioniert. Vielen Dank.
Und naja, die Strings hatte ich schon....aber das ganze so zusammen zu bauen, daran hats gehapert :wacko: -
Die Strings sind alle gleiche, haben aber keinen festen Wert? Ich versteh nur Bahnhof.
Ein kleines Beispiel wie die Dateien aussehen wäre hilfreich gewesen. AUf deinem Screenshot
ist es immer der selbe String.Hab mich vielleicht ein bischen unglücklich ausgedrückt..
Es ist eine Datei mit 20 html Links. Der Rest um die Strings ist halt unterschiedlich, wird aber auch nicht geändertCodehttp://homepage.com/test&ticket%5Fid=abcdefghij&f=1304558530171&channel=1 http://homepage.com/test&ticket%5Fid=abcdefghij&f=1304558559617&channel=2 http://homepage.com/test&ticket%5Fid=abcdefghij&f=1304558574046&channel=3 http://homepage.com/test&ticket%5Fid=abcdefghij&f=1304558588829&channel=5 .............................
1. ALLE 20 zu ersetzenden Strings sind generell immer gleich. in diesem Beispiel halt. "abcdefghij"
d.h. die zu ersetzenden Strings sind immer alle "Fid=abcde" oder "Fid=12345" oder "Fid=wasauchimmer".
ABER diese (alle) Strings ändern sich halt. Spätestens beim ersetzen.
Ich kann also nicht generell sagen: ersetze Fid=abcde mit Fid=12345, sondern beide Werte müssen zuerst gefunden werden!
Das finden und auch anzeigen der Strings mittels "StringRegExp" ist kein Problem, aber das ersetzen. -
Das funktioniert so nicht, da sich die Strings öfter ändern...
Es ist also nicht möglich, mit "festen Werten" zu arbeiten.
Es müsste quasi so laufen:
1. finde zuerst den neuen String mittels StringRegExp "Fid=[^&]*" in Datei 2
2. ersetze alle mittels StringRegExp "Fid=[^&]*" gefundenen Strings in Datei1, mit dem vorher gefundenen, aus Datei2
Die Strings in Datei1, die ersetzt werden sollen, sind alle gleich, haben aber keinen "festen Wert", sondern ändern sich. -
kurzes Beispiel:
[autoit]
Text in Datei 1, siehe Bild::
Sorry, aber ich kann den Text weder als Code, Zitat oder sonstwas einfügen...Der Editor verwurstet dann alles..WARUM?
Dann sollen ALLE Strings Fid=abcdefghjkll aus Datei1 mit z.B.:Fid=xyzqwertz aus Datei 2 ersetzt werden.
Die Strings finde und lese ich aus, mit z.B. mit folgender Regular Expression:$sRead = FileRead($sFilein) ;Datei2 c:\new.txt
[/autoit]
Sleep(3000)
$array = StringRegExp($sRead, 'Fid=[^&]*', 3)
_ArrayDisplay($array)
_FileWriteFromArray($sFileout, $array) ; Erstellt neue Datei $fileout und schreibt die gefundenen Strings hinein
Jetzt fehlt nur noch der Teil mit dem ersetzen.. -
erstmal danke für eure Antworten, aber ich habs aufgegeben.
Nach einigem testen, wäre das interessante an Autoit, das automatische anklicken von Links gewesen, ohne ein neues Fenster/Tab zu öffnen. (zu lange Ladezeiten)
Das habe ich aber weder mit IE.au3 noch FF.au3 hinbekommen...
Von daher ist der Thread-Titel jetzt eigentlich nicht mehr passend.
Vielleicht eröffne ich einen neuen Thread. -
Ich habs jetzt mal mit der FF.au3 probiert, automatisches Link klicken funktioniert damit leider auch nicht.
Hmm, scheint also keine Möglichkeit zu geben, die zattoo links automatisch "anzuklicken"
Schade eigentlich -
Das funktioniert bei mir nicht, es wird Zattoo aufgerufen und dann gehts nicht weiter. Hatte ich aber auch schon ausprobiert. Liegts vielleicht am IE9?
ZitatIch vermute du willst an die Stream Links rankommen um sie jederzeit auch extern nutzen zu können?
Richtig, ich habe mir eine kleine Batch geschrieben, über die ich die Programme im externen Programm (TvBrowser) umschalten und mit VLC abspielen kann. Und damit den unsäglichen Flash Mist loswerden kann.
Würde das channel switching vielleicht mit FF einfacher gehen? Man könnte FF im Debug-Modus starten, dann landet eh alles in einer .log Datei. Die Logdatei mit grep auslesen...fertig
Habe ich allerdings erst vor kurzem gefunden, daher meine vorherigen Versuche mit dem IE