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. nwmbd

Beiträge von nwmbd

  • Berechnung von mehreren Einträgen

    • nwmbd
    • 18. November 2017 um 21:03

    Hallo zusammen,

    ich habe eine SQL Datenbank wo jeder Mitarbeiter eine Tabelle mit Diensten hat.

    Ich filtere mir nun die Dienste raus und wandel den Text in Stunden um, diese addiere ich und füge Sie wieder in die Datenbank ein.

    Es klappt alles, ich habe nur 2 "Probleme".

    A:

    Habe ich für jede Berechnung eine extra Abfrage der Datenbank nach der jeweiligen ID, Ich habe demzufolge unendlich viele Zeilen und muss diese bei jedem neuen Mitarbeiter in der Datei hinzufügen.

    B:

    Wird eine neue Schicht hinzugefügt muss ich ebenfalls die ganze Datei ändern.

    Das geht doch sicher eleganter und einfacher.

    Danke vorab.

    Code:

    PHP
    <?php 
    include('functions.php');
    
    // Verbindung prüfen 
    if (!$db) {
        die("Keine Verbindung: " . mysqli_connect_error());
    }
    // Daten auslesen
    $sql = "SELECT * FROM mitarbeiter WHERE ID=1"; 
    $result = mysqli_query($db, $sql);
    
    // Inhalt auslesen
    
    $row = mysqli_fetch_array($result, MYSQLI_NUM);
    
    // Schichten
    
    $Schicht = ['Tag', 'Nacht', 'U'];
    $Stunden = ['12', '12', '8'];
    $Summe = '0';
    
    // Berechnung, geht bei 2 los!
    
    if ($row[2] == $Schicht[0]) {
    $Summe = $Summe + $Stunden[0];
    } elseif ($row[2] == $Schicht[1]) {
    $Summe = $Summe + $Stunden[1];
    }elseif ($row[2] == $Schicht[2]) {
    $Summe = $Summe + $Stunden[2];
    }
    
    if ($row[3] == $Schicht[0]) {
    $Summe = $Summe + $Stunden[0];
    } elseif ($row[3] == $Schicht[1]) {
    $Summe = $Summe + $Stunden[1];
    }elseif ($row[3] == $Schicht[2]) {
    $Summe = $Summe + $Stunden[2];
    }
    
    if ($row[4] == $Schicht[0]) {
    $Summe = $Summe + $Stunden[0];
    } elseif ($row[4] == $Schicht[1]) {
    $Summe = $Summe + $Stunden[1];
    }elseif ($row[4] == $Schicht[2]) {
    $Summe = $Summe + $Stunden[2];
    }
    
    echo $Summe;
    mysqli_close($db);
    ?>
    Alles anzeigen
  • Ping überwachen

    • nwmbd
    • 28. August 2017 um 12:34

    bin auch sehr zufrieden, wurde alles genau so umgesetzt wie gewünscht.

    Immer wieder gern.

  • Ping überwachen

    • nwmbd
    • 24. August 2017 um 08:42

    Hallo Alpines,

    nimmt immer mehr Form an :)

  • Ping überwachen

    • nwmbd
    • 23. August 2017 um 21:11

    Alles klar mache Ich gleich.

    EDIT:

    Abgeschlossen

    PS: Rote und Grüne LEDs sind aber nicht drin :)

    Achja und in der Übersicht stehen auch die IPs nicht die Namen :(

    Er schickt mir jede Minute die Mail, fasst quasi keine 10 Minuten zusammen :(

  • Ping überwachen

    • nwmbd
    • 23. August 2017 um 20:44

    Hallo Alpines,

    SQL ist vorhanden, Tabellen könnten erstellt werden / kann Ich nach deinen Wünschen erstellen.

    Von welchem Betrag reden wir den?

    Wer bekommt das Geld von dem jetzt? Kannst es mir auch per pn senden.

    MFG

  • Ping überwachen

    • nwmbd
    • 23. August 2017 um 20:23

    Hallo alpines,

    ne stimmt, dass mit den Prozessen lassen wir bei 1 Minute.


    Das mit dem Namen und den LEDs wäre nett.

    Das mit dem SQL oder wie auch immer du das machen würdest, von welchem Betrag reden wir hier?

    MFG

  • Ping überwachen

    • nwmbd
    • 23. August 2017 um 20:08

    Hallo Alpines,

    das sieht doch gut aus.

    3 Sachen hätte Ich:

    - Bitte anstatt der IP einen hinterlegten Namen ach und eine grüne / rote LED wäre sehr nett, damit man das auch vom weiten sieht.
    - eine Überprüfung der Prozesse bitte alle 10 Sekunden
    - Wenn ich ein Prozess hinzufüge zB C:\Test\Test.exe (gibt es nicht) schreibt er trotzdem das er den Prozess gestartet hat

    Kann man wirklich nicht auf dem PC A ein Programm laufen lassen was die Prozesse überwacht und wenn nicht in eine SQL oder was auch immer einen Wert hinterlegt und PC C greift die Daten einfach nur ab?

    PS:

    Sie haben das Programm erstellt, demzufolge legen natürlich auch Sie fest wer das Geld bekommt.

    MFG

  • Ping überwachen

    • nwmbd
    • 23. August 2017 um 12:01

    Hallo Alpines,

    es kommt ein Fehler:

    Spoiler anzeigen


    Pinger.au3" (91) : ==> Unbalanced brackets in expression.:
    $sMessageBuilder &= @CRLF & @CRLF & "Intervall beträgt: " & Int($iSleepInterval / (60 * 1000)) & " Minuten.")
    $sMessageBuilder &= ^ ERROR
    >Exit code: 1 Time: 14.12

    Es macht glaube doch Sinn das alles direkt drin steht und das Script demzufolge nach dem Laden automatisch starten kann, wichtig wäre noch das es nicht geschlossen werden kann.


    PS:

    Erhalten Sie oder die Community nach Fertigstellung das Geld?

    MFG

    EDIT:

    Ich habe mich nachdem ich nun alles betrachtet habe wohl doch falsch ausgedrückt, sorry vorab.

    Wenn man das Programm startet darf niemand etwas ändern können, weder Zeit einstellen noch sonst etwas.

    Quasi Standalone, es wird gestartet und darf nicht geschlossen werden, man sieht hinter den IPS (wäre nett wenn man dort Namen statt IPs sehen könnte) nur ob es online oder offline ist.

    Man darf auch nicht aussuchen ob eine Mail rausgeht, dass muss immer der Fall sein.

    Es ist eine Anzeige vom Status.

    Kann man auch den Status von Prozessen von anderen Rechnern übertragen? zB in eine SQL Datenbank die der "Server" abfragt und anzeigt.

    PC A (nicht im selben Netzwerk) hat mehrere Prozesse die sehr wichtig sind.
    PC B (nicht im selben Netzwerk) hat auch mehrere Prozesse die sehr wichtig sind.
    PC C soll alle PCs und den Status der Prozesse sehen

    Im Endeffekt eine Client / Serverlösung

    EDIT2:

    Die Pingzeiten sind auch nicht notwendig.

    Prozess / Adresse Status
    google Grüne LED
    autoit Grüne LED
    Firefox Rote LED
    eBay Rote LED


    EDIT3:

    Eine Logdatei wäre vielleicht nicht schlecht, dort soll aber nur etwas gespeichert werden wenn etwas nicht erreichbar/der Prozess nicht offen war, mit Datum + Uhrzeit.

  • Ping überwachen

    • nwmbd
    • 23. August 2017 um 09:35

    Hallo BugFix,

    das ist mehr als unschön, es soll aber unter keinen Umständen änderbar sein, sonst macht das ganze leider kein Sinn.

    MFG

  • Ping überwachen

    • nwmbd
    • 23. August 2017 um 09:20

    Hallo alpines,

    das ging jetzt sehr schnell :)

    EDIT:

    Ja in einer Mail alle die nicht erreicht wurden, es macht vielleicht Sinn das wir die Zeit von 5 minuten auf 10 erhöhen.

    MFG

  • Ping überwachen

    • nwmbd
    • 23. August 2017 um 09:07

    Hallo zusammen,

    auf der Suche nach einem Script bin ich leider nicht fündig geworden, leider habe Ich für das Thema Autoit, was mich sehr fasziniert sogut wie keine Zeit.

    Hier nun die eigentliche Frage:

    Ich suche ein Script welche im Hauptverzeichnis eine Datei hat (zB txt) wo man IP Adressen eintragen kann (zB google.de) diese werden im Intervall von 5 Minuten angepingt.

    Diese ganzen Adressen sollen in der GUI in einer Übersicht dargestellt und mit einer grünen LED / roten LED neben der IP angezeigt werden, sollte nun eine IP nicht erreichbar sein soll die LED auf rot wechseln.

    Zusätzlich soll eine E-Mail an eine bestimmte Mailadresse abgesetzt werden.

    Es wäre sehr nett wenn mir hier jemand weiterhelfen könnte.

    Vielen vielen Dank.

    Wäre bereit hierfür 10 € für die Community zu spenden (Ich hoffe das ist nicht zu wenig)

    EDIT:

    Das Programm sollte zusätzlich Prozesse überwachen. (zB firefox.de) Damit diese Einträge niemand ändern kann, ist es hier nicht ratsam dies in einer Datei abzulegen, sollte wohl im Programm hinterlegt werden.

    Sollte ein Programm geschlossen werden soll es automatisch wieder geöffnet werden und eine Mail versenden, zusätzlich wenn das Programm wieder läuft.

    Danke

  • Inhalt einer Textdatei überprüfen

    • nwmbd
    • 12. Juli 2017 um 20:54

    man kann es auch einfach _GetIP2 nennen ;)

    Wenn ich die IP über _GetIP hole zeigt er Sie richtig an, schalte ich nun WLAN aus kommt das keine IP da ist, aktiviere ich nun wieder das WLAN passiert gar nichts mehr :(

  • Inhalt einer Textdatei überprüfen

    • nwmbd
    • 12. Juli 2017 um 20:36

    Hallo Alpines,

    da sah es doch, bis auf ein Fehler, gar nicht so schlecht aus.

    _GetIP kann man nicht nutzen, da es diese Funktion schon gibt.

    Die Webseite von dir gibt mir immer die IPV6 IP wieder. :(

    EDIT:

    Ausserdem ist die Seite bei meinem Virenscanner auf der Blacklist, warum auch immer.

  • Inhalt einer Textdatei überprüfen

    • nwmbd
    • 12. Juli 2017 um 16:35

    Hallo Alpines,

    da hast du natürlich voll Recht :)

    irgendwie funzt es nicht, er wenn ich mein WLAN zum test deaktiviere schreibt er dann permanent Ihr IP lautet: Leeresfeld

    Wo ist der Fehler?! :)

    Code
    #include <Inet.au3>
    
    
    $OldIP = "aktuelleip"
    
    
    While 1
    $NewIPCheck = _GetIP()
    if Not $NewIPCheck = $OldIP Then
    MsgBox(0,"ACHTUNG NEUE IP", "IP lautet:" & $NewIPCheck)
    $NewIPCheck = $OldIP
    	EndIf
    Sleep(10000)
    WEnd
    Alles anzeigen
  • Inhalt einer Textdatei überprüfen

    • nwmbd
    • 12. Juli 2017 um 13:59

    Hallo zusammen,

    ich möchte das bei einer Veränderung des letzten Eintrages in einer Text eine MSGBOX geöffnet wird.

    Das Speichern der Externen IP in der TXT erfolgt ohne Probleme, ich möchte nun aber eine Information wenn sich diese IP ändert mit einer MSGBOX der neue.

    Falls es einen anderen viel elegantern Weg gibt bitte ich auch um Information.

    Wenn diese dann "neu" ist wieder das ganze von vorn.

    Vielen Dank wie immer an alle vorab.


    Code
    #include <Inet.au3>
    
    
    While 1
    $PublicIP = _GetIP()
    FileWrite("C:/Test/ip.txt", $PublicIP & @CRLF)
    Sleep(600)
    WEnd
  • Fernzugriff mit Updatefunktion

    • nwmbd
    • 14. Juni 2017 um 16:14

    Hallo zusammen,

    ich suche ein Weg um bei verschiedenen PC's die Software upzudaten (Java, Flash ...)

    Ich habe im Forum schon nachgesehen, leider bin ich nicht fündig geworden.

    Geht sowas überhaupt?

    Ich habe mir das so vorgestellt:

    Der "Client" schickt von allen hinterlegten Programmen die Version an den "Serverversion", je nach Bedarf soll diese dann geupdatet werden. (mir noch unklar wie er an die ganzen Infos kommt und das dann umsetzt)

    Ein Bildschirmzugriff ist nicht nötig.

    Adminkennwort ist von allen PC's vorhanden, diese sind aber in verschiedenen Räumen/teilweise Orten und dürfen nur zu bestimmten Zeiten 01:00 - 03:00 Uhr neugestartet / bedient werden, zu den anderen Zeiten wird der PC aktiv genutzt.

    Vielen Dank an alle vorab.

  • Auswertung txt

    • nwmbd
    • 11. Januar 2017 um 23:13

    Hallo alpines,

    in dem Fall soll nur geschrieben werden was da steht, genau wie bei der Zahl hinten.

    Was wäre wenn er auch das zählen sollte?

    Ist der Rest von meiner Änderung richtig?

    Vielen Dank.

  • Auswertung txt

    • nwmbd
    • 11. Januar 2017 um 22:49

    Hallo Alpines,

    ich habe das mal angepasst, irgendwie komme ich jetzt aber nicht weiter.

    Wie erkläre ich Ihm das er unten die Einträge einfügen soll?

    Vielen Dank.

    Code
    #include <Array.au3>
    
    
    $sFile = FileRead("Datum2.txt")
    $aRegEx = StringRegExp($sFile, "(\d+\.\d+\.\d+ \d+:\d+ \w+ \d+)", 3)
    
    
    Local $aDates[0][25]
    
    
    For $i = 0 To UBound($aRegEx) - 1
    	$aCurrentData = StringSplit($aRegEx[$i], " ", 3)
    	$aCurrentTime = StringSplit($aCurrentData[1], ":", 3)
    
    
    	$bFound = False
    
    
    	For $j = 0 To UBound($aDates) - 1
    		If $aDates[$j][0] = $aCurrentData[0] Then ;Wenn das Datum übereinstimmt
    			$aDates[$j][$aCurrentTime[0] + 1] += 1
    			$bFound = True
    			ExitLoop
    		EndIf
    	Next
    
    
    	If Not $bFound Then
    		ReDim $aDates[UBound($aDates) + 1][25]
    		$aDates[UBound($aDates) - 1][0] = $aCurrentData[0]
    		$aDates[UBound($aDates) - 1][$aCurrentTime[0] + 1] = 1
    	EndIf
    Next
    
    
    _ArraySort($aDates)
    
    
    $sFile = ""
    
    
    For $i = 0 To UBound($aDates) - 1
    	For $j = 1 To 24
    		;Wenn kein Eintrag vorhanden dann auslassen (kannst du auskommentieren)
    		If Not $aDates[$i][$j] Then ContinueLoop
    
    
    		$sFile &= $aDates[$i][0] & " " & ($j < 11 ? "0" : "") & ($j - 1) & ":00 - " & ($j < 11 ? "0" : "") & ($j - 1) & ":59 " & $aDates[$i][$j] & " " & "mal" &  " " & "von" & " " & "XXX" & " " & "Dauer" & " " & "XXX" &@CRLF
    	Next
    Next
    
    
    FileDelete("auswertung.csv")
    FileWrite("auswertung.csv", $sFile)
    Alles anzeigen
  • Auswertung txt

    • nwmbd
    • 11. Januar 2017 um 21:52
    Zitat von alpines

    Das hättest du aber auch von Anfang an schon sagen können!

    Ich wollte nun noch verstehen wie dies funktioniert, nicht mehr und nicht weniger.

  • Auswertung txt

    • nwmbd
    • 11. Januar 2017 um 20:50
    Zitat von autoiter

    Hey @nwmbd,
    wie soll das denn gemacht werden? Was soll da zusammengefasst werden? Alles aus einer Stunde in eine Zeile, neue Spalte mit Anzahl und neue Spalte mit kommagetrennten weiteren ursprünglichen Zeileneinträgen oder jeweile eine neue Spalte, oder was?

    Hallo Autoiter,

    ich wollte auf dem Weg verstehen wie dies funktioniert, wenn etwas noch dahinter stehen würde.

    Beispiel:

    01.01.2017 10:01 Wecker

    01.01.2017 10:01 Wecker 29

    soll dann zum Beispiel zu:

    01.01.2017 10:00 -0 10:59 1 mal von Wecker
    01.01.2017 10:00 -0 10:59 1 mal von Wecker Dauer 29

    Vielen Dank.

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™