1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. AnMa

Beiträge von AnMa

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 10. September 2013 um 17:24

    OK, ich weiß jetzt wo das Problem liegt. Die Downloads sind schneller abgeschlossen als die Progressbar den Ladebalken animiert.

    Bevor ich mich hier jetzt weiter reinsteigere .... habe ich nochmal eine wichtige Frage.

    Die geladenen Audio-Files sollen ja im Laufe des Projektes noch normalisiert und am Ende zu einem File zusammengeführt werden.

    Ist es denn möglich den Download, das Normalisieren und die Zusammenführung usw. alles unter einer Progressbar laufen zu lassen?

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 9. September 2013 um 23:16

    Jetzt hab ich bei dem Script-Schnipsel nur noch ein Problem, aber nur eine optische Angelegenheit.

    Im Progress Fenster zählt er zwar schön von 0 auf 100% hoch und auch der Ladebalken bewegt sich. Aber irgendwie kommt der Ladebalken nur bis zur Hälfte, dann stehen unten schon 100% und der DL ist abgeschlossen. Ich finde aber den Denkfehler nicht. :(

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 9. September 2013 um 14:31

    So, jetzt habe ich zwischendurch mal neue Fliegengitter aufgezogen :D

    Das hat wohl dann den Wald gelichtet und ich habe wieder die Bäume gesehen ... *lach*

    Spaß bei Seite, so wie es aussieht habe ich jetzt eine funktionierende Lösung gefunden.

    Spoiler anzeigen
    [autoit]

    Local $media_server = "server.de"
    Local $media_user = "user"
    Local $media_passwd = "XXXXXX"
    Local $ews = "Nachrichten.mp3"

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

    Local $_S2_Conn = ("http://" & $media_user & ":" & $media_passwd & "@" & $media_server)
    ProgressOn ( "News Download", "Aktuelle News wird geladen")
    Local $hDownload = InetGet($_S2_Conn & "/News/News.mp3", "..\temp" & $news, 1, 1)
    Local $aDataSize = InetGetSize($_S2_Conn & "/News/News.mp3", "..\temp")
    Sleep(250)

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

    Do
    Local $aDataState = InetGetInfo($hDownload, 0)
    Local $aDataProzent = Round(($aDataState / $aDataSize) * 100)

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

    #cs
    ; ### TESTBOX ###
    MsgBox(0, "Blöööck", "Prozente: " & $aDataProzent & @CRLF & _
    "aData State: " & $aDataState & @CRLF & _
    "aData Size: " & $aDataSize)
    #ce
    _UpdateProgress($aDataProzent)
    Until InetGetInfo($hDownload, 2) ; Check if the download is complete.

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

    ProgressOff ( )

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

    MsgBox(0, "ENDE", "Prozente: " & $aDataProzent & @CRLF & _
    "aData State: " & $aDataState & @CRLF & _
    "aData Size: " & $aDataSize)

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

    Exit

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

    Func _UpdateProgress($percent)
    ProgressSet($percent, int($percent) & "%")
    return 1
    EndFunc ;==>_UpdateProgress

    [/autoit]
  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 9. September 2013 um 12:31

    Ja, das habe ich beides versucht.

    Was ich fstgestellt habe ist, dass die While-Schleife nur läuft wenn der Eingangswert "True" ist, aber mit der Abfrage bekomme ich den Wert "False" und die schleife wird garnicht erst gestartet.

    Des weiteren scheint es so, dass über InetGetInfo(1) ... also der Gesamtgröße des Files erst nach abgeschlossenem Download ausgegeben wird. Was ja wiederum nicht helfen würde.

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 8. September 2013 um 23:46

    Ich habe nochmal etwas rumexperimentiert.

    So wie es aussieht, geben die Variablen $DL_state und $DL_size keine Werte aus.

    [autoit]


    $DL_size = InetGetInfo($DL_Get, 1)
    $DL_state = InetGetInfo($DL_Get, 0)
    MsgBox(64, "TEST", $DL_size & $DL_state)

    [/autoit]

    Dabei gibts nur ne leere Box

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 8. September 2013 um 21:49

    Also zu sehen bekomme ich nur zwei Progress Anzeigen.

    Die erste läuft von 0 - 100 % durch

    Die zweite wird nur angezeigt, aber es passiert nix.

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 8. September 2013 um 20:49

    Das heißt der erste Progress zeigt schon alle vier Downloads an und der Zweite springt nur noch auf weil er muß?

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 8. September 2013 um 20:06

    Kann es sein, dass sich die zwei Downloads ins Gehege kommen?

    Dass ich irgendeine Warteschleife einbauen muß, bevor der zweite Download auf die selbe Funktion zugreift?

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 8. September 2013 um 19:53

    Nein, das passt schon :) Ich bin ganz zufrieden ein wenig kniffeln zu können. Meiner Meinung nach setzt man sich dann intensiver damit auseinander und das Verständnis wird besser.

    Also eigentlich ist alles wie es sein soll .. Denke ich. ... Aber anscheinend wohl nicht :)

    Spoiler anzeigen
    [autoit]


    #Region ### INCLUDES ###
    #include <FTPEx.au3>
    #include <Debug.au3>
    #include <..\data\config.ini>
    #EndRegion ### INCLUDES ###

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

    #Region ### DOWNLOAD ###
    Local $_S1_Open = _FTP_Open('MyFTP Control')
    Local $_S1_Conn = _FTP_Connect($_S1_Open, $ftp_server, $ftp_user, $ftp_passwd, 0, $INTERNET_DEFAULT_FTP_PORT, $INTERNET_SERVICE_FTP, 0)
    ProgressOn ( "News Download", "Aktuelles OnAirDesign wird geladen")
    _FTP_ProgressDownload($_S1_Conn, "..\temp" & $newsopener, "News/" & $newsopener, "_UpdateProgress")
    _FTP_ProgressDownload($_S1_Conn, "..\temp" & $newscloser, "News/" & $newscloser, "_UpdateProgress")
    _FTP_ProgressDownload($_S1_Conn, "..\temp" & $zugang, "News/" & $zugang, "_UpdateProgress")
    _FTP_Close($_S1_Open)
    #EndRegion ### DOWNLOAD ###

    $media_server = IniRead("..\temp\zugang.ini", "sektion1", "media_server", "Nicht gefunden")
    $media_user = IniRead("..\temp\zugang.ini", "sektion1", "media_user", "Nicht gefunden")
    $media_passwd = IniRead("..\temp\zugang.ini", "sektion1", "media_passwd", "Nicht gefunden")

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

    #Region ### DOWNLOAD ###
    Local $_S2_Conn = ("http://" & $media_user & ":" & $media_passwd & "@" & $media_server)
    ProgressOn ( "News Download", "Aktuelle News wird geladen")
    Local $DL_Get = InetGet($_S2_Conn & "/_News/News.mp3", "..\temp" & $news, Default, 0)
    $DL_size = InetGetInfo($DL_Get, 1)
    While InetGetInfo($DL_Get, 2)
    $DL_state = InetGetInfo($DL_Get, 0)
    $DL_percent = ($DL_state / $DL_size) * 100
    $DL_Func = _UpdateProgress($DL_percent)
    WEnd
    InetClose($DL_Get)
    #EndRegion ### DOWNLOAD ###

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

    Exit

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

    Func _UpdateProgress($percent)
    ProgressSet($percent, int($percent) & "%")
    return 1
    EndFunc ;==>_UpdateProgress

    [/autoit]
  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 8. September 2013 um 19:30

    WOW .. ich hab sogar alles verstanden was Du geschrieben hast :) *schulterklopf*

    Mir kommt es so vor, als würde die "While-Schleife" garnicht erst durchlaufen.

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 8. September 2013 um 18:45

    omg .. :) ... naja, das kommt davon wenn man bis in die Nacht werkelt :)

    Bei der Abfrage der InetGetInfo habe ich schlichtweg vergessen bei 0 zu beginnen und habe eben anstatt 0 und 1, 1 und 2 als Indexwert genommen. Sorry ... peinlicher Fehler
    Und dann auch noch verdreht ... Also wo (2) war sollte eigentlich (0) sein.

    Was ich nun aber garnicht verstehe ich Deine Aussage "Eigene Funktionen lassen sich übrigens genauso aufrufen wie alle anderen, d.h. Call ist nicht nötig." Das mit dem Aufrufen der Funktionen entzieht sich mir.

    Ich hoffe aber, dass ich gerade einen Lichtblick hatte.

    Am Anfang der Schleife prüfe ich ob der geladene Teil kleiner ist als die Datei groß ist. Wenn dem nicht so ist, müßte das Programm ja die Schleife ignorieren und direkt weiter zum Exit-Befehl gehen?
    Dann frage ich den aktuellen Download-Status ab.
    In den ächsten beiden Zeilen berechne ich wieviel Prozent der bisherige Download von der gesamt Größe hat.
    Dann wird die Variable für den Aufruf der Funktion und der Übergabewert festgelegt.
    Am Ende wird dann die Funktion aufgerufen

    Aber irgendwo liege ich noch falsch.

    Spoiler anzeigen
    [autoit]

    $DL_size = InetGetInfo($DL_Get, 1)
    $DL_state = InetGetInfo($DL_Get, 0)
    ; $DL_percent = $DL_size / 100
    While $DL_state < $DL_size
    $DL_state = InetGetInfo($DL_Get, 0)
    $DL_1percent = $DL_size / 100
    $DL_percent = $DL_state / $DL_1percent
    $DL_Func = _UpdateProgress($DL_percent)
    $DL_percent = $DL_Func
    WEnd
    InetClose($DL_Get)
    #EndRegion ### DOWNLOAD ###

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

    Exit

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

    Func _UpdateProgress($percent)
    ProgressSet($percent, int($percent) & "%")
    return 1
    EndFunc ;==>_UpdateProgress

    [/autoit]
  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 8. September 2013 um 16:06

    Also schwierig ist nicht das Problem :)

    Ich liebe es mich an solchen Dingen fest zu beißen und freu mich dann umso mehr, wenn ich es geschafft habe.

    AntiSpeed:
    Ich versteh nicht was Du mit "...würde Server nie in AutoIt machen ...." meinst.


    Ich habe mich die letzte Nacht nochmal intensiv in die betroffenen Bereiche eingelesen, Aber ich komme bei der "While-Schleife" nicht weiter.

    Der Ablauf im zweiten Downloadsegment:
    - Bestimmen einer Variablen für die Verbindung
    - Start des Progress
    - Der eigentliche Download (inkl. Zuweisung einer Variablen)
    - Auslesen der Dateigröße über InetGetInfo (1)
    - Auslesen der geladenen Datenmenge über InetGetInfo (2)
    - Starten der While-Schleife (inkl. Vergleich geladene Daten zu den zu ladenden Daten)
    - Auslesen der geladenen Datenmenge über InetGetInfo (2) innerhalb der Schleife
    - Aufrufen der Progress-Frunktion
    - Beenden der Schleife
    - Schließen der Inet-Verbindung

    Im Prinzip funktioniert auch alles, aber die Progressbar läuft nicht, sondern wird nur angezeigt.


    Spoiler anzeigen
    [autoit]

    #Region ### DOWNLOAD ###
    Local $_S1_Open = _FTP_Open('MyFTP Control')
    Local $_S1_Conn = _FTP_Connect($_S1_Open, $ftp_server, $ftp_user, $ftp_passwd, 0, $INTERNET_DEFAULT_FTP_PORT, $INTERNET_SERVICE_FTP, 0)
    ProgressOn ( "News Download", "Aktuelles OnAirDesign wird geladen")
    _FTP_ProgressDownload($_S1_Conn, "..\temp" & $newsopener, "News/" & $newsopener, "_UpdateProgress")
    _FTP_ProgressDownload($_S1_Conn, "..\temp" & $newscloser, "News/" & $newscloser, "_UpdateProgress")
    _FTP_ProgressDownload($_S1_Conn, "..\temp" & $zugang, "News/" & $zugang, "_UpdateProgress")
    _FTP_Close($_S1_Open)
    #EndRegion ### DOWNLOAD ###
    ; #ce

    $media_server = IniRead("..\temp\zugang.ini", "sektion1", "media_server", "Nicht gefunden")
    $media_user = IniRead("..\temp\zugang.ini", "sektion1", "media_user", "Nicht gefunden")
    $media_passwd = IniRead("..\temp\zugang.ini", "sektion1", "media_passwd", "Nicht gefunden")

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

    #Region ### DOWNLOAD ###
    Local $_S2_Conn = ("http://" & $media_user & ":" & $media_passwd & "@" & $media_server)
    ProgressOn ( "News Download", "Aktuelle News wird geladen")
    Local $DLGet = InetGet($_S2_Conn & "/News/News.mp3", "..\temp" & $news, Default, 0)
    $DLsize = InetGetInfo($DLGet, 1)
    $DLstate = InetGetInfo($DLGet, 2)
    While $DLstate < $DLsize
    $DLstate = InetGetInfo($DLGet, 2)
    Call("_UpdateProgress", $percent)
    WEnd
    InetClose($DLGet)
    #EndRegion ### DOWNLOAD ###

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

    Exit

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

    Func _UpdateProgress($percent)
    ProgressSet($percent, int($percent) & "%")
    return 1
    EndFunc ;==>_UpdateProgress

    [/autoit]

    Die Reihenfolge müßte doch stimmen oder?

    Ich habe nochmal die Variablen etwas angepasst umsie für später übersichtlicher zu bekommen.

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 7. September 2013 um 23:09

    Also ich habe jetzt nochmal einiges gelesen und gegoogelt und und und :D

    Ist folgendes richtig?
    - Eine Funktion steht normal nach dem Exit ?
    - Die Funktion kann über ihre Bezeichnung (in meinem Fall "_UpdateProgress") auch öfter aufgerufen werden?

    Das ganze würde dann wie folgt aussehen:

    Spoiler anzeigen
    [autoit]

    #Region ### DOWNLOAD ###
    Local $Open = _FTP_Open('MyFTP Control')
    Local $Conn = _FTP_Connect($Open, $ftp_server, $ftp_user, $ftp_passwd, 0, $INTERNET_DEFAULT_FTP_PORT, $INTERNET_SERVICE_FTP, 0)
    ProgressOn ( "News Download", "Aktuelles OnAirDesign wird geladen")
    _FTP_ProgressDownload($Conn, "..\temp" & $newsopener, "News/" & $newsopener, "_UpdateProgress")
    _FTP_ProgressDownload($Conn, "..\temp" & $newscloser, "News/" & $newscloser, "_UpdateProgress")
    _FTP_ProgressDownload($Conn, "..\temp" & $zugang, "News/" & $zugang, "_UpdateProgress")
    Local $Ftpc = _FTP_Close($Open)

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

    ProgressOn ( "News Download", "Aktuelle News wird geladen")
    Local $DLGet = InetGet("http://" & $media_user & ":" & $media_passwd & "@" & $media_server & "/News/News.mp3", "..\temp" & $news, Default, 0)
    While Local $DLstate = InetGetInfo($DLGet, 1)
    ; ?????
    WEnd
    Local InetClose($DLGet)
    #EndRegion ### DOWNLOAD ###

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

    Exit

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

    Func _UpdateProgress($percent)
    ProgressSet($percent, int($percent) & "%")
    return 1
    EndFunc ;==>_UpdateProgress

    [/autoit]

    Was mir aber noch gänzlich unklar ist, wie ruf ich in der Schleife die Funktion auf? (siehe ????)

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 7. September 2013 um 18:09

    Ich habe vermutlich noch eine falsche Denkweise aus cmd.

    Das heißt eine Funktion wird nur ausgeführt, wenn sie an einer anderen Stelle aufgerufen wurde?

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 7. September 2013 um 17:25

    OK das versteh ich soweit.

    Das heißt ich Starte den Progress, anschließend den Download. Danach kommt eine While-Schleife in der mittels InetGetInfo solange der Status des Downlods abgefragt wird bis die 100% erreicht wurden. Und bei jedem Durchlauf wird die Progress-Anzeige erhöht. Erst dann wird die Schleife beendet?

    Spoiler anzeigen
    [autoit]

    #Region ### DOWNLOAD ###
    ProgressOn ( "News Download", "Aktuelle News wird geladen")
    InetGet("http://" & $media_user & ":" & $media_passwd & "@" & $media_server & "/News/News.mp3", "..\temp" & $news, Default, 0)
    Local $DLstate = InetGetInfo(Default, 1)
    While $DLstate not True
    Func _UpdateProgress($percent)
    ProgressSet($percent, int($percent) & "%")
    return 1
    EndFunc ;==>_UpdateProgress
    WEnd
    #EndRegion ### DOWNLOAD ###

    [/autoit]
  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 7. September 2013 um 13:57

    Inzwischen habe ich mich durch einiges gelesen und gearbeitet.

    Nach dem Motto gut geklaut ist besser als schlecht selbst gemacht, konnte ich inzwischen den ersten Teil des FTP-Bereichs erstellen und zum größten Teil verstehe ich auch was ich tue :)

    Wichtig an dem Programm ist eben auch, dass der Moderator immer ein Feedback über den Stand und Erfolg des Downloads erhält. Dazu soll zum Beipiel für den Download eine Progress-Anzeige laufen.

    Für den FTP ist mir das auch gelungen:

    Spoiler anzeigen
    [autoit]

    #Region ### DOWNLOAD ###
    Local $Open = _FTP_Open('MyFTP Control')
    Local $Conn = _FTP_Connect($Open, $ftp_server, $ftp_user, $ftp_passwd, 0, $INTERNET_DEFAULT_FTP_PORT, $INTERNET_SERVICE_FTP, 0)
    ProgressOn ( "News Download", "Aktuelles OnAirDesign wird geladen")
    _FTP_ProgressDownload($Conn, "..\temp" & $newsopener, "News/" & $newsopener, "_UpdateProgress")
    _FTP_ProgressDownload($Conn, "..\temp" & $newscloser, "News/" & $newscloser, "_UpdateProgress")
    _FTP_ProgressDownload($Conn, "..\temp" & $zugang, "News/" & $zugang, "_UpdateProgress")
    Local $Ftpc = _FTP_Close($Open)
    Func _UpdateProgress($percent)
    ProgressSet($percent, int($percent) & "%")
    return 1
    EndFunc ;==>_UpdateProgress
    #EndRegion ### DOWNLOAD ###

    [/autoit]

    Aber für den HTTP-Download vom Anbieter häge ich noch fest.

    Spoiler anzeigen
    [autoit]

    #Region ### DOWNLOAD ###
    ProgressOn ( "News Download", "Aktuelle News wird geladen")
    InetGet("http://" & $media_user & ":" & $media_passwd & "@" & $media_server & "/News/News.mp3", "..\temp" & $news, Default, "_UpdateProgress")
    Func _UpdateProgress($percent)
    ProgressSet($percent, int($percent) & "%")
    return 1
    EndFunc ;==>_UpdateProgress
    #EndRegion ### DOWNLOAD ###

    [/autoit]

    Irgendwo habe ich hier einen Denkfehler?

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 6. September 2013 um 09:30

    Ich glaube zu wissen was ihr meint.

    Vor vielen vielen Jahren, habe ich zur Erstellung von Homepages FrontPage benutzt. Das war zu Zeiten als es noch Dinosa..... :rofl: ... nein Spaß bei Seite.

    Heute schreibe ich all meine HTML's nd PHP's usw. über das Notepad++, da es für mich schneller und fehlerfreier lläuft. Aber die Arbeit mit FP hat mir in der Anfangsphase in einigen Punkten weitergeholfen und Richtungen und Lösungen aufgezeigt. So lief das mit Koda inzwischen auch.

    Die Codes von Coda habe ich eh schon wieder per hand manipuliert :)

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 5. September 2013 um 23:58

    Nein, bisher habe ich Koda direkt gestartet. Da hakt es eben schon, dass ich das mit AutoIt garnicht in Verbindung bekomme.

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 5. September 2013 um 22:24

    So, nachdem ich mich mal in Ruhe durch einen großen Teil durch geackert habe, habe ich festgestellt, dass ich mich doch schon mit vielem auskenne. Ich kenne die Theorie, aber in der Praxis sind eben doch einige Kleinigekeiten anders. Ein Komma hier und eine Klammer da und schon funktioniert nichts mehr :)

    Aber jetzt habe ich eine andere Frage. Es gibt dieses Zusatzprogramm "Koda" womit ich anscheinend sehr gut klar komme, jedenfalls ist es mir gelungen sehr schnell eine, für den ersten Versuch, brauchbare Oberfläche zu generieren. Allerdings habe ich den Code über die Zwischenablage in den AutoIt-Editor übernommen. nun kann manaber laut Tutorial das Programm auch direkt in AutoIt integrieren, jedoch findet das blinde Huhn nicht heraus wie?

    Vieleicht weiß ja jemand wo ich da nachsehen kann?

  • [PROJEKT] Automatisierter Download und Verarbeitung von Audiodateien

    • AnMa
    • 4. September 2013 um 17:10

    Klasse - Genau sowas hab ich gesucht :)

    Das hilftmir weiter erstmal zu verstehen was ich tue.

    Damit werde ich mich die nächsten Tage dann wohl ausgiebig beschäftigen. Das Buch ist extrem verständlich geschrieben ...

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™