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

Beiträge von wuff100

  • Array Summe berechnen

    • wuff100
    • 17. Januar 2024 um 19:46

    AspirinJunkie , schon mal sehr gut!

    Zitat

    Jetzt nochmal gaaanz konkret: Wo kommt die 2 her? Ist das nun die 2, welche an 4. Stelle steht (du schreibst ja 3. Zahl = 2.... :/).

    Nein, ein Zufall, dass gerade an vierter Stelle eine 2 steht. Ist die Summe 8 von der ersten Stelle an erreicht, dann die vierte Stelle leer.

    Wenn es nur 2 oder 3 Stellen sind muss die Summe 8 ergeben.

    z.B. bei drei Stellen "7,5,3" ergibt "7,1,leer"bei drei Stellen.

    05.10. alles richtig.

  • Array Summe berechnen

    • wuff100
    • 17. Januar 2024 um 18:08
    Zitat

    1. Zahl = 2 -> bleibt stehen

    Richtig!

    Zitat

    2. Zahl = 4 -> Summe = 6 -> 4 bleibt stehen

    Richtig!

    Zitat

    3. Zahl = 10 -> Summe = 16 -> es steht da nun eine 2 - warum? ist das die 2 die danach kommt und die 10 wird stattdessen einfach "gelöscht"?

    Nein!

    Summe= 16, also muss die 3. Zahl = 10, durch die 3. Zahl = 2 ersetzt werden. Dann Summe 8 erreicht!

    Zitat

    4. Zahl = 2 -> leer, da wohl vorher bereits die Summe von 8 erreicht wurde

    Richtig!

    Zitat

    Verstehst du, dass ich da noch Probleme habe deine Berechnungsvorschrift nachzuvollziehen?

    Sehr gut sogar. Ich habe schon mehrere Ansätze, aber immer wieder Probleme.

    Zitat

    Wenn ich die Logik vom 5.10. auf den 11.10. übertrage, würde bei mir 2 und 2 stehen bleiben.
    Wie entscheidest du also welche der möglichen Kombinationen am Ende stehen bleibt.
    Einfach von vorn durchgehen scheint es ja offensichtlich nicht zu sein.

    Richtig! War mein Fehler. Sorry

  • Array Summe berechnen

    • wuff100
    • 17. Januar 2024 um 17:35

    AspirinJunkie , danke erstmal für deine Hilfe.

    Zitat

    Was passiert wenn an einem Tag nur zwei 2en stehen oder nur zwei 7en?

    Bei zwei 2en, bleiben die Werte stehen.

    Bei zwei 7en: Summe = 14. Also erste zeile 7, zweite Zeile 1

    Die Gesumme darf < 8 sein, aber nicht > 8.

    Zitat

    Mir sind auch nicht klar wie die Lücken in deinem $aResultValue entstehen:

    Die Zeilen sollen ab Erreichung der Summe 8, keine Inhalte mehr haben.

  • Array Summe berechnen

    • wuff100
    • 17. Januar 2024 um 15:16

    Moin,

    ich habe ein$aDate mit gleichen Tagen.

    Mit 4x 05.10. und der 3x 11.10.

    Das $aValueenthält die Zahlen, parallel zum Date Array.


    Aufgabe:

    Das $aResultValue muss errechnet werden.

    Es darf an den gleichen Tagen die Summe "8" nicht überschreiten, so wie im $aResultValuedargestellt.

    Es muss dynamisch sein. Die Zahlen können in der Höhe variieren.

    Aber immer Summe "8" als Ergebnis, bei den gleichen Tagen.

    Könnt ihr mir helfen?

    Gruß


    C
    #include <Array.au3>
    #include <MsgBoxConstants.au3>
    
    ;$aDate
    Local $aDate[16] = ["01.10", "02.10", "03.10", "04.10", "05.10", "05.10", "05.10", "05.10", "06.10", "07.10", "08.10", "09.10", "10.10", "11.10", "11.10", "11.10"]
    _ArrayDisplay($aDate, "$aDate")
    
    For $i = 0 To UBound($aDate) - 1
    	Local $aIndex = _ArrayFindAll($aDate, $aDate[$i], Default, Default, Default, Default)
    	If @error Then
    	Else
    		If UBound($aIndex, $UBOUND_ROWS) > 1 Then
    			_ArrayDisplay($aIndex, "$aIndex")
    		EndIf
    	EndIf
    Next
    
    ;$aValue
    Local $aValue[16] = ["8", "8", "8", "6", "2", "4", "10", "2", "6", "6", "6", "6", "6", "2", "8", "2"]
    _ArrayDisplay($aValue, "$aValue")
    
    ;$aResultValue
    Local $aResultValue[16] = ["8", "8", "8", "6", "2", "4", "2", "", "6", "6", "6", "6", "6", " ", "8", " "]
    _ArrayDisplay($aResultValue, "$aResultValue")
    Alles anzeigen
  • ArrayFindAll 2DArray

    • wuff100
    • 12. Dezember 2023 um 14:22

    BugFix , Dankeschön. :klatschen:

  • ArrayFindAll 2DArray

    • wuff100
    • 12. Dezember 2023 um 13:00

    BugFix

    Das Beispiel war nur mit 5 Spalten.


    Mein Array hat 30 Spalten.

    Fehlermeldung: Array variable has incorrect number of subscripts or subscript dimension range exceeded

  • ArrayFindAll 2DArray

    • wuff100
    • 12. Dezember 2023 um 12:37

    AspirinJunkie, BugFix , vielen lieben Dank.

    Eure beiden letzten Ansätze sind die Lösung. :)

  • ArrayFindAll 2DArray

    • wuff100
    • 12. Dezember 2023 um 11:19

    Alle Spalten mit 2x 27, 1x28, 2x 29

  • ArrayFindAll 2DArray

    • wuff100
    • 12. Dezember 2023 um 10:39

    Moin,

    ich möchte aus einem 2D Array von der Spalte 2 drei neue Array's in Schleife erzeugen.

    Also, 2 Zeilen mit 27, eine Zeile mit 28 und zwei Zeilen mit 29., jeweils mit 5 Spalten.

    Könnt ihr mir helfen?

    Gruß

    Code
    #include <Array.au3>
    
    Local $aArray[5][5] = [[0, "Test1", 27, 1, 0], _
    		[1, "Test1", 27, 4, 2], _
    		[2, "Test2", 28, 1, 3], _
    		[3, "Test3", 29, 1, 0], _
    		[4, "Test4", 29, 4, 1]]
    _ArrayDisplay($aArray, "2D Array")
    
    Dim $aResultFindAll[5][5]
    For $i = 1 To 30 Step +1
    	Local $aResult = _ArrayFindAll($aArray, $i, Default, Default, Default, Default, 2)
    	_ArrayDisplay($aResult)
    
    	For $f = 0 To UBound($aResult) - 1
    		$aResultFindAll = $aArray[$aResult[$f]][1]
    		$aResultFindAll = $aArray[$aResult[$f]][2]
    		_Arraydisplay($aResultFindAll)
    	Next
    Next
    Alles anzeigen
  • Zeiten subtrahieren

    • wuff100
    • 20. November 2023 um 10:34

    Oscar , water, viele lieben Dank euch beiden.

    Funktioniert hervorragend! :klatschen:

  • Zeiten subtrahieren

    • wuff100
    • 19. November 2023 um 13:58

    water, mir fiel noch ein Fehler auf.

    Gebe bitte mal " $aInput[] = ["01:00:00", "-00:30:00"]" ein.

  • Zeiten subtrahieren

    • wuff100
    • 15. November 2023 um 07:30

    water, vielen Dank. Funktioniert super!

    Zitat von water
    • Was soll rauskommen, wenn die Stunden über 99 gehen?
    • Was soll rauskommen, wenn der Gesamtwert negativ wird?

    Das wird in meiner Anwendung nicht vorkommen.

  • Zeiten subtrahieren

    • wuff100
    • 14. November 2023 um 22:05

    water, erstmal vielen Dank.

    Versuche das mal.

    Local $aInput[2] = ["02:30:00", "-01:30:00"]

    MsgBox(1, "", _TimeAdd($aInput))

    Der Wert müsste 01:00:00 ergeben.

  • Zeiten subtrahieren

    • wuff100
    • 14. November 2023 um 19:13

    Moin,

    diese Funktion addiert Zeiten in beliebiger Menge.

    Ich möchte aber gern eine beliebige Menge Zeiten subtrahieren.

    Könnt ihr mir helfen?

    AutoIt
    #include <GUIConstantsEx.au3>
    #include <WindowsConstants.au3>
    #include <Array.au3>
    
    Local $aInput[3] = ["01:30:00", "01:00:00", "01:00:00" ]
    ;~ _ArrayDisplay($aInput)
    
    Local $Summe = _Timeradd($aInput)
    Msgbox(1,"",$Summe)
    
    Func _Timeradd($aInput)
        Local $aTemp
        Local $aTime[4]
        Local $sData, $iSec, $iMinCarry, $iMin, $iHrsCarry, $iHrs, $iDayCarry, $aTemp, $Sum
            For $i = 0 To UBound($aInput) - 1
            $sData = $aInput[$i]
            If $sData <> "" Then
    ;~             MsgBox(1, "", $sData)
                ;$aTemp = StringRegExp($sData, "(?:(\d*)\h)?(\d*):(\d*):(\d*)", 3); <- Alternative to StringSplit & _ArrayInsert below.
                $aTemp = StringSplit($sData, " :", 2)         ;   $STR_CHRSPLIT (0)  + $STR_NOCOUNT (2)
                If UBound($aTemp) = 3 Then _ArrayInsert($aTemp, 0, 0)
    ;~             _ArrayDisplay($aTemp)
                For $j = 0 To 3
                    $aTime[$j] += Int($aTemp[$j])         ; Add all days, all hours, all mins, and, all secs.
                Next
            EndIf
        Next
    ;~     _ArrayDisplay($aTime)
        $iSec = Mod($aTime[3], 60)
        $iMinCarry = Int($aTime[3] / 60)
        $iMin = Mod($aTime[2] + $iMinCarry, 60)
        $iHrsCarry = Int(($aTime[2] + $iMinCarry) / 60)
        $iHrs = Mod(($aTime[1] + $iHrsCarry), 24)
    ;~     MsgBox(0, "Sum = ", StringFormat("%02i:%02i:%02i", $iHrs, $iMin, $iSec))
        $Sum = StringFormat("%02i:%02i:%02i", $iHrs, $iMin, $iSec)
        Return $Sum
    EndFunc   ;==>_Timeradd
    Alles anzeigen

    Gruß

  • Goggle Accout auslesen

    • wuff100
    • 11. Oktober 2023 um 16:24
    Zitat von Moombas

    Dort solltest du Informationen dazu finden und Auswerten können.

    Moombas, vielen Dank, funktioniert!

  • Goggle Accout auslesen

    • wuff100
    • 11. Oktober 2023 um 14:37
    Zitat von Moombas

    Die Frage ist erst mal wo willst du ihn auslesen?

    Aus Chrome.

  • Goggle Accout auslesen

    • wuff100
    • 11. Oktober 2023 um 14:01

    Moin,

    es gibt ja wie in diesem Beispiel die Möglichkeit mit der water UDF den Outlook Account auszulesen.

    C
    #include <MsgBoxConstants.au3>
    #include <OutlookEX.au3>
    
    $sAccount = _Get_Microsoft_Outlook_Account()
    MsgBox(1, "$sAccount", $sAccount)
    
    
    Func _Get_Microsoft_Outlook_Account()
        Local $bCreated = False
        Local $sAccount = "not found"
        Local $oClient = ObjGet("", "Outlook.Application") ; Try to connect to a running instance
        If @error Then
            $oClient = ObjCreate("Outlook.Application") ; No instance was running, start Outlook
            $bCreated = True
        EndIf
        If Not @error Then
            For $oAccount In $oClient.Session.Accounts
                $sAccount = $oAccount.SMTPAddress
                ExitLoop
            Next
        EndIf
        If $bCreated Then ; If Outlook has been started by this function, logoff and close Outlook
            $oClient.Session.Logoff
            $oClient.Application.Quit
            $oClient.Quit
            $oClient = 0
        EndIf
        Return $sAccount
    EndFunc   ;==>_Get_Microsoft_Outlook_Account
    Alles anzeigen

    Wie kann ich einen Goggle Account (Email-Adresse) auslesen, wenn kein Outlook vorhanden ist?

    Könnt ihr mir helfen?

    Gruß

    Wuff

  • PDF Formularfeld ausfüllen

    • wuff100
    • 3. Mai 2023 um 20:04
    Zitat

    Verstehe ich das richtig, wenn das zu befüllende Feld in der PDF Datei den Namen "Feld1" hat, wird es mit "HalloText" ausgefüllt?

    Alina, genau richtig 😊

  • PDF Formularfeld ausfüllen

    • wuff100
    • 3. Mai 2023 um 15:14

    bordermax, habe es nochmal geändert.

    Deine Formulardatei *.pdf muss du im Ordner "Master" wie in meinem Beispiel kopieren und als *.fdf einmal ablegen.

  • PDF Formularfeld ausfüllen

    • wuff100
    • 3. Mai 2023 um 12:33
    C
    #include <FileConstants.au3>
    #include <MsgBoxConstants.au3>
    #include <WinAPIFiles.au3>
    
    ;---------------------------File----------------
    ; PDFTKServer
    Local $Server = @ScriptDir & "\PDFtk Server\bin\pdftk.exe "
    
    Local $MasterPDF = @ScriptDir & '\Master\Test.pdf'
    Local $sFilename = @TempDir & '\Vorlagen\Test.pdf'
    
    ; Formular FDF
    Local $MasterFDF = @ScriptDir & '\Master\Test.fdf'
    Local $FDF = @TempDir & '\Vorlagen\Test.fdf'
    
    FileCopy($MasterPDF, $sFilename, 1 + 8)
    FileCopy($MasterFDF, $FDF, 1 + 8)
    
    ; Bearbeiten
    Local $FileBearbeiten = @TempDir & '\Vorlagen\Temp_fe.pdf'
    ;-------------------------------------------------
    
    ;~ pdftk Formular.pdf generate_fdf output formulardaten.fdf
    RunWait($Server & $sFilename & ' generate_fdf ' & $FDF, "", @SW_HIDE)
    
    ;2. AutoDaten eintragen
    If FileExists($sFilename) Then
        $sX = StringReplace($sFilename, "\", "/")
        $sX = StringReplace($sX, ":", "")
        $sPdfNM = "/" & $sX
        $FdfNM = FileOpen($FDF, $FO_OVERWRITE + $FO_ANSI)
    
        ;----------------------------SCHREIBEN---------------------------------------------
        $Ex = "%FDF-1.2 %% Fill Form Fields %%" & @CRLF _
                 & "1 0 obj << /FDF << /F (" & $sPdfNM & ") /Fields " & @CRLF _
                 & "[" & @CRLF _
                 & '<</T(Feld1)/V(HalloTest)>>' & @CRLF _
                 & '<</T(Feld2)/V(Hallo)>>' & @CRLF _
                 & "]>>>>" & @CRLF _
                 & "endobj" & @CRLF _
                 & "trailer" & @CRLF _
                 & "<</Root 1 0 R >>" & @CRLF _
                 & "%%EOF"
    ;~     MsgBox(1, "", $Ex)
        FileWrite($FdfNM, $Ex)
        FileClose($FdfNM)
        RunWait($FDF, "", @SW_HIDE)
    EndIf
    
    If FileExists($Server) Then
        If FileExists($FileBearbeiten) Then FileDelete($FileBearbeiten)
        RunWait($Server & $sFilename & " fill_form " & $FDF & " output " & $FileBearbeiten & ' flatten ', "", @SW_HIDE) ; Nicht mehr editierbar
        ShellExecute($FileBearbeiten)
    ;~     FileDelete($FDF)
    EndIf
    Alles anzeigen

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™