Ich glaube ich drehe Durch, kann ja überhaupt nichts mehr... Update funktion

  • Hallo Leute Tut mir leid das ich schon wieder störe

    aber ich versuche gerade dafür zu sorgen das ein script von mir nur ausgeführt wird wenn in einer (auf nem server liegende) datei eine Veränderung stattfand

    ich versuche daran seit 3 stunden und komme nicht weiter
    es ist sonst nicht meine Art aber kann bitte jemand den fehler ersetzen ?

    das Prinzip ist Folgendes :

    Datei auf server : UpdateVersion.txt diese enthält z.B. die zahlenfolge "1111"
    Wird jetzt heruntergeladen ins script dir
    soll mit der gleichen datei nur eben unter C:\ verglichen Werden, wenn in dieser auch "1111" steht soll gar nichts passieren
    steht da jetzt aber "111" oder "11111" oder so in der art dann soll meine Funkztion ausgeführt werden wenn diese ausgeführt wird soll die im scriptdir liegende UpdateVersion.txt bzw.deren Inhalt in der
    C:\UpdateVersion.txt gespeichert werden also

    Sozusagen

    wenn sich die auf dem server liegende datei ändert soll eine Funktion ausgeführt werden die änderung wieder unter C:\ gespeichert werden damit beim nächsten mal wieder Überprüft wird
    ich Hoffe ich habe es Verständlich erklärt und entschuldige mich dafür euch schon wieder zu belästigen

    Mfg Eistee

    P.S. anbei mein Bisheriger Script

    Spoiler anzeigen
    [autoit]

    #include<Array.au3>
    #include<File.au3>
    #NoTrayIcon

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

    Global $txt2

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

    $Ip2 = ("http://127.0.0.1/yourhost.com/updater")
    InetGet($Ip2 &"/UpdateVersion.txt",@ScriptDir &"\UpdateVersion.txt")
    Sleep(200)

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

    If FileExists("C:\UpdateVersion.txt") Then
    _FileReadToArray("C:\UpdateVersion.txt", $txt2)
    Else
    FileWrite("C:\UpdateVersion.txt", "1")
    Sleep(500)
    _FileReadToArray("C:\UpdateVersion.txt", $txt2)
    EndIf

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

    $txt1 = FileRead("UpdateVersion.txt") ;
    ;Prüfung
    If $txt1 <> $txt2 Then _Func () ;

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

    Func _Func ()
    FileMove("UpdateVersion.txt", "C:\UpdateVersion.txt")
    $Ip = ("http://127.0.0.1/yourhost.com/updater")
    Local $meinarray
    InetGet($Ip &"/file.list",@ScriptDir &"\file.list")
    $filename = (@ScriptDir &"\file.list")
    $FILEPATH = (@ScriptDir &"\file.txt")
    $hFile = FileOpen($filename,0)
    _FilereadToArray($filename, $meinarray)
    _FileWriteFromArray($FILEPATH, $meinarray)
    $split = StringRegExp(FileRead(FileOpen(@ScriptDir & '\file.txt', 0)), '(?<=\n|\A).*(?=,)', 3)
    $file = FileOpen("UpdInf.txt",2)
    For $i = 0 To Ubound($split) -1
    FileWrite("UpdInf.txt", $split[$i] & @crlf)
    Next
    $filename1 = @ScriptDir & '\UpdInf.txt'
    $filename2 = @ScriptDir & '\UpdInf2.txt'
    Local $meinarray1
    Local $nLfd
    _FileReadToArray($filename1,$meinarray1)
    For $nLfd = 1 To $meinarray1[0]
    $meinarray1[$nLfd] = StringRegExpReplace($meinarray1[$nLfd],'\\','\/')
    $meinarray1[$nLfd] = StringRegExpReplace($meinarray1[$nLfd],'\./','/')
    Next
    _FileWriteFromArray($filename1,$meinarray1,1,$meinarray1[0])
    $filename1 = @ScriptDir & '\UpdInf.txt'
    $filename2 = @ScriptDir & '\UpdInf2.txt'
    Local $meinarray1
    Local $nLfd
    _FileReadToArray($filename1,$meinarray1)
    For $nLfd = 1 To $meinarray1[0]
    $meinarray1[$nLfd] = StringRegExpReplace($meinarray1[$nLfd],'\/','\\')
    $meinarray1[$nLfd] = StringRegExpReplace($meinarray1[$nLfd],'\.\','\\')
    Next
    _FileWriteFromArray($filename2,$meinarray1,1,$meinarray1[0])
    ProgressOn("Updating KalOnline", "KalOnline-Update in Progress", "Update")
    $filename0 = FileOpen("UpdInf.txt",0)
    $filename3 = FileOpen("UpdInf2.txt",0)
    ProgressSet(0,"0%")
    for $i = 1 to 2000
    $1 = FileReadLine($filename0,$i)
    $2 = FileReadLine($filename3,$i)
    Inetget($Ip&$1,@ScriptDir &$2)
    If $i = 20 Then ProgressSet(1,"1 %")
    If $i = 40 Then ProgressSet(2,"2 %")
    If $i = 60 Then ProgressSet(3,"3 %")
    If $i = 80 Then ProgressSet(4,"4 %")
    If $i = 100 Then ProgressSet(5,"5 %")
    If $i = 120 Then ProgressSet(6,"6 %")
    If $i = 140 Then ProgressSet(7,"7 %")
    If $i = 160 Then ProgressSet(8,"8 %")
    If $i = 180 Then ProgressSet(9,"9 %")
    If $i = 200 Then ProgressSet(10,"10 %")
    If $i = 220 Then ProgressSet(11,"11 %")
    If $i = 240 Then ProgressSet(12,"12 %")
    If $i = 260 Then ProgressSet(13,"13 %")
    If $i = 280 Then ProgressSet(14,"14 %")
    If $i = 300 Then ProgressSet(15,"15 %")
    If $i = 320 Then ProgressSet(16,"16 %")
    If $i = 340 Then ProgressSet(17,"17 %")
    If $i = 360 Then ProgressSet(18,"18 %")
    If $i = 380 Then ProgressSet(19,"19 %")
    If $i = 400 Then ProgressSet(20,"20 %")
    If $i = 420 Then ProgressSet(21,"21 %")
    If $i = 440 Then ProgressSet(22,"22 %")
    If $i = 460 Then ProgressSet(23,"23 %")
    If $i = 480 Then ProgressSet(24,"24 %")
    If $i = 500 Then ProgressSet(25,"25 %")
    If $i = 520 Then ProgressSet(26,"26 %")
    If $i = 540 Then ProgressSet(27,"27 %")
    If $i = 560 Then ProgressSet(28,"28 %")
    If $i = 580 Then ProgressSet(29,"29 %")
    If $i = 600 Then ProgressSet(30,"30 %")
    If $i = 620 Then ProgressSet(31,"31 %")
    If $i = 640 Then ProgressSet(32,"32 %")
    If $i = 660 Then ProgressSet(33,"33 %")
    If $i = 680 Then ProgressSet(34,"34 %")
    If $i = 700 Then ProgressSet(35,"35 %")
    If $i = 720 Then ProgressSet(36,"36 %")
    If $i = 740 Then ProgressSet(37 ,"37 %")
    If $i = 760 Then ProgressSet(38,"38 %")
    If $i = 780 Then ProgressSet(39,"39 %")
    If $i = 800 Then ProgressSet(40,"40 %")
    If $i = 820 Then ProgressSet(41,"41 %")
    If $i = 840 Then ProgressSet(42,"42 %")
    If $i = 860 Then ProgressSet(43,"43 %")
    If $i = 880 Then ProgressSet(44,"44 %")
    If $i = 900 Then ProgressSet(45,"45 %")
    If $i = 920 Then ProgressSet(46,"46 %")
    If $i = 940 Then ProgressSet(47,"47 %")
    If $i = 960 Then ProgressSet(48,"48 %")
    If $i = 980 Then ProgressSet(49,"49 %")
    If $i = 1000 Then ProgressSet(50,"50 %")
    If $i = 1020 Then ProgressSet(51,"51 %")
    If $i = 1040 Then ProgressSet(52,"52 %")
    If $i = 1060 Then ProgressSet(53,"53 %")
    If $i = 1080 Then ProgressSet(54,"54 %")
    If $i = 1100 Then ProgressSet(55,"55 %")
    If $i = 1120 Then ProgressSet(56,"56 %")
    If $i = 1140 Then ProgressSet(57,"57 %")
    If $i = 1160 Then ProgressSet(58,"58 %")
    If $i = 1180 Then ProgressSet(59,"59 %")
    If $i = 1200 Then ProgressSet(60,"60 %")
    If $i = 1220 Then ProgressSet(61,"61 %")
    If $i = 1240 Then ProgressSet(62,"62 %")
    If $i = 1260 Then ProgressSet(63,"63 %")
    If $i = 1280 Then ProgressSet(64,"64 %")
    If $i = 1300 Then ProgressSet(65,"65 %")
    If $i = 1320 Then ProgressSet(66,"66 %")
    If $i = 1340 Then ProgressSet(67,"67 %")
    If $i = 1360 Then ProgressSet(68,"68 %")
    If $i = 1380 Then ProgressSet(69,"69 %")
    If $i = 1400 Then ProgressSet(70,"70 %")
    If $i = 1420 Then ProgressSet(71 ,"71 %")
    If $i = 1440 Then ProgressSet(72,"72 %")
    If $i = 1460 Then ProgressSet(73,"73 %")
    If $i = 1480 Then ProgressSet(74,"74 %")
    If $i = 1500 Then ProgressSet(75,"75 %")
    If $i = 1520 Then ProgressSet(76,"76 %")
    If $i = 1540 Then ProgressSet(77,"77 %")
    If $i = 1560 Then ProgressSet(78,"78 %")
    If $i = 1580 Then ProgressSet(79,"79 %")
    If $i = 1600 Then ProgressSet(80,"80 %")
    If $i = 1620 Then ProgressSet(81,"81 %")
    If $i = 1640 Then ProgressSet(82,"82 %")
    If $i = 1660 Then ProgressSet(83,"83 %")
    If $i = 1680 Then ProgressSet(84,"84 %")
    If $i = 1700 Then ProgressSet(85,"85 %")
    If $i = 1720 Then ProgressSet(86,"86 %")
    If $i = 1740 Then ProgressSet(87,"87 %")
    If $i = 1760 Then ProgressSet(88,"88 %")
    If $i = 1780 Then ProgressSet(89,"89 %")
    If $i = 1800 Then ProgressSet(90,"90 %")
    If $i = 1820 Then ProgressSet(91,"91 %")
    If $i = 1840 Then ProgressSet(92,"92 %")
    If $i = 1860 Then ProgressSet(93,"93 %")
    If $i = 1880 Then ProgressSet(94,"94 %")
    If $i = 1900 Then ProgressSet(95,"95 %")
    If $i = 1920 Then ProgressSet(96,"96 %")
    If $i = 1940 Then ProgressSet(97,"97 %")
    If $i = 1960 Then ProgressSet(98,"98 %")
    If $i = 1980 Then ProgressSet(99,"99 %")
    Next
    ProgressSet(100,"100 %")
    Sleep(200)
    ProgressOff()
    MsgBox(0,"Updates", "All Updates Finished", 1)
    EndFunc

    [/autoit]
    • Offizieller Beitrag

    Und wieder der Verweis auf die Suchfunktion... irgendwann werde ich auch ärgerlich X( .

    Wir haben EXAKT (!) diese Fragestellung zweimal in den letzten 14 Tagen langatmig ausdiskutiert...

    peethebee

    p.s. die IF-Abfragen brauchst du nicht, mal drüber nachdenken, wie sich der Prozentwert allgemein berechnet...

  • @ Eisteee:

    $i/20 = ...% ;)

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)

  • ich hab Dir mal die ganzen If's für den Progress gekürzt...

    Spoiler anzeigen
    [autoit]

    #include<Array.au3>
    #include<File.au3>
    #NoTrayIcon

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

    Global $txt2

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

    $Ip2 = ("http://127.0.0.1/yourhost.com/updater")
    InetGet($Ip2 &"/UpdateVersion.txt",@ScriptDir &"\UpdateVersion.txt")
    Sleep(200)

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

    If FileExists("C:\UpdateVersion.txt") Then
    _FileReadToArray("C:\UpdateVersion.txt", $txt2)
    Else
    FileWrite("C:\UpdateVersion.txt", "1")
    Sleep(500)
    _FileReadToArray("C:\UpdateVersion.txt", $txt2)
    EndIf

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

    $txt1 = FileRead("UpdateVersion.txt") ;
    ;Prüfung
    If $txt1 <> $txt2 Then _Func () ;

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

    Func _Func ()
    FileMove("UpdateVersion.txt", "C:\UpdateVersion.txt")
    $Ip = ("http://127.0.0.1/yourhost.com/updater")
    Local $meinarray
    InetGet($Ip &"/file.list",@ScriptDir &"\file.list")
    $filename = (@ScriptDir &"\file.list")
    $FILEPATH = (@ScriptDir &"\file.txt")
    $hFile = FileOpen($filename,0)
    _FilereadToArray($filename, $meinarray)
    _FileWriteFromArray($FILEPATH, $meinarray)
    $split = StringRegExp(FileRead(FileOpen(@ScriptDir & '\file.txt', 0)), '(?<=\n|\A).*(?=,)', 3)
    $file = FileOpen("UpdInf.txt",2)
    For $i = 0 To Ubound($split) -1
    FileWrite("UpdInf.txt", $split[$i] & @crlf)
    Next
    $filename1 = @ScriptDir & '\UpdInf.txt'
    $filename2 = @ScriptDir & '\UpdInf2.txt'
    Local $meinarray1
    Local $nLfd
    _FileReadToArray($filename1,$meinarray1)
    For $nLfd = 1 To $meinarray1[0]
    $meinarray1[$nLfd] = StringRegExpReplace($meinarray1[$nLfd],'\\','\/')
    $meinarray1[$nLfd] = StringRegExpReplace($meinarray1[$nLfd],'\./','/')
    Next
    _FileWriteFromArray($filename1,$meinarray1,1,$meinarray1[0])
    $filename1 = @ScriptDir & '\UpdInf.txt'
    $filename2 = @ScriptDir & '\UpdInf2.txt'
    Local $meinarray1
    Local $nLfd
    _FileReadToArray($filename1,$meinarray1)
    For $nLfd = 1 To $meinarray1[0]
    $meinarray1[$nLfd] = StringRegExpReplace($meinarray1[$nLfd],'\/','\\')
    $meinarray1[$nLfd] = StringRegExpReplace($meinarray1[$nLfd],'\.\','\\')
    Next
    _FileWriteFromArray($filename2,$meinarray1,1,$meinarray1[0])
    ProgressOn("Updating KalOnline", "KalOnline-Update in Progress", "Update")
    $filename0 = FileOpen("UpdInf.txt",0)
    $filename3 = FileOpen("UpdInf2.txt",0)
    ProgressSet(0,"0%")
    for $i = 20 to 2000 Step 20
    $1 = FileReadLine($filename0,$i)
    $2 = FileReadLine($filename3,$i)
    Inetget($Ip&$1,@ScriptDir &$2)
    ProgressSet($i/20,$i/20&" %")
    Next
    ProgressSet(100,"100 %")
    Sleep(200)
    ProgressOff()
    MsgBox(0,"Updates", "All Updates Finished", 1)
    EndFunc

    [/autoit]

    MfG Schnuffel

    "Sarkasmus ist die niedrigste Form des Witzes, aber die höchste Form der Intelligenz."
    Val McDermid

    ein paar Infos ...

    Wer mehr als "nur" Hilfe benötigt, kann sich gern im Forum "Programmieranfragen" an uns wenden. Wir helfen in allen Fällen, die die Forenregeln zulassen.

    Für schnelle Hilfe benötigen wir ein ! lauffähiges ! Script, dass wir als Demonstration des Problems testen können. Wer von uns erwartet ein Teilscript erstmal lauffähig zu bekommen, der hat
    1. keine wirkliche Not
    2. keinen Respekt vor Menschen die ihm in ihrer Freizeit Ihre Hilfe anbieten
    3. oder ist einfach nur faul und meint wir coden das für ihn

    In solchen Fällen erlaube ich mir, die Anfrage einfach zu ignorieren. ;)