String will nicht in ein Array

  • Hallo bin etwas ratlos!

    versuche mail von einem Pop3 Konto abzurufen und die mail in ein Araay zu schreiben!

    Der Text kommt an! lässt sich aber nicht in ein Array schreiben! woran kann das liegen?


    For $z = 1 To $stat[1]-1 step 1

    $retr = _Pop3Retr($z)
    $mailBody[$z] = $retr


    MsgBox(0, "mail1", $z & " " & $mailBody[$z]) <<<<< hier hab ich auch den Text!!


    If Not @error Then


    MsgBox(0, "mail2",$retr) <<<<<< Hier hab ich den Text!!!

    _ArrayDisplay($mailBody) <<<<<< hier kommt nichts an!


    Hat jemand einen Tipp für mich! ;(

  • An dem geposteten Codeschnipseln ist nichts falsch.
    Was machst du zwischen den Zeilen? Oder wird eine der Variablen vielleicht irgendwo überschrieben?
    Poste mal bitte den ganzen zusammenhängenden Teil mit dem Fehler.

    Der Thread gehört eigentlich in Hilfe & Unterstützung

  • Da ist nichts mehr!

    der übergebende String beinhaltet aber eine emai!

    Ist der Array von der Grösse her beschränkt? 8|


    Local $retr
    Dim $mailBody[100]

    For $z = 1 To $stat[1]-1 step 1

    $retr = _Pop3Retr($z)
    $mailBody[$z] = $retr
    MsgBox(0, "mail1", $z & " " & $mailBody[$z])
    If Not @error Then

    MsgBox(0, "mail2",$retr)

    _ArrayDisplay($mailBody)

    Else
    ConsoleWrite("Retr commande failed" & @CR)
    EndIf
    Next
    _ArrayDisplay($mailBody)

  • Verbindung und email bekomme ich ja!

    Hier ist das komplette Script

    Spoiler anzeigen
    [autoit]


    #include <array.au3>
    #include <pop3.au3>
    #include <String2.au3>

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

    ConsoleWrite(@AutoItVersion & @CRLF)
    ;~ See _pop3.au3 for a complete description of the pop3 functions
    ;~ Requires AU3 beta version 3.1.1.110 or newer.

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

    Global $MyPopServer = ""
    Global $MyLogin = ""
    Global $MyPasswd = ""
    Global $port = 110
    Local $mails[10]

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

    _pop3Connect($MyPopServer, $MyLogin, $MyPasswd, $port)
    If @error Then
    MsgBox(0, "Error", "Unable to connect to " & $MyPopServer & @CR & @error)
    Exit
    Else
    ConsoleWrite("Connected to server pop3 " & $MyPopServer & @CR)
    EndIf

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

    Local $stat = _Pop3Stat()
    If Not @error Then
    ; _ArrayDisplay($stat, "Result of STAT COMMAND")
    Else
    ConsoleWrite("Stat commande failed" & @CR)
    EndIf

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

    ; Local $list = _Pop3List()
    ; If Not @error Then
    ; _ArrayDisplay($list, "")
    ; Else
    ; ConsoleWrite("List commande failed" & @CR)
    ; EndIf

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

    ; Local $noop = _Pop3Noop()
    ; If Not @error Then
    ; ConsoleWrite($noop & @CR)
    ; Else
    ; ConsoleWrite("List commande failed" & @CR)
    ; EndIf

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

    ;~ Local $uidl = _Pop3Uidl()
    ;~ If Not @error Then
    ;~ _ArrayDisplay($uidl, "")
    ;~ Else
    ;~ ConsoleWrite("Uidl commande failed" & @CR)
    ;~ EndIf

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

    ; Local $top = _Pop3Top(1, 0)
    ; If Not @error Then
    ; $a = StringToASCIIArray($top)
    ;_ArrayDisplay($a)

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

    ; MsgBox(0, "mails", $top) ; Zeigt den ausgewählten Listbox-Eintrag an
    ; ConsoleWrite(StringStripCR($top) & @CR)
    ; Else
    ; ConsoleWrite("top commande failed" & @CR)
    ; EndIf
    ;MsgBox(0, "mail", $stat[1] & " emails " ) ; Zeigt den ausgewählten Listbox-Eintrag an

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

    ; $mail = FileOpen("D:\Monarch\email\neue_mail.txt", 2)

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

    Local $retr, $From, $To, $Subject, $ArrivalTime
    Dim $mailBody[100]
    ; $z = $stat[1]
    For $z = 1 To $stat[1] - 1 Step 1
    ; MsgBox(0, "mail", $stat[1] & " emails " & $z)

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

    $retr = _Pop3Retr($z)
    $mailBody[$z] = $retr
    MsgBox(0, "mail1", $z & " " & $mailBody[$z])
    If Not @error Then

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

    ; $mailBody[$z] = $retr
    MsgBox(0, "mail2", $retr)

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

    _ArrayDisplay($mailBody)
    ; $To = _StringBetween(StringMid($retr, StringInStr($retr, "To:",1,1,1,1), 200) , " ", Chr(10))
    ; $Subject = _StringBetween(StringMid($retr, StringInStr($retr, "Subject",1,1,1,1), 200) , ":", Chr(10))
    ; $ArrivalTime= _StringBetween(StringMid($retr, StringInStr($retr, "Date:",1,1,1,1), 200) , ":", Chr(10))
    ; $From = _StringBetween(StringMid($retr, StringInStr($retr, "Message-ID:",1,1,1,1), 200) , "<", ">")
    ; _ArrayDisplay($From, "between")

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

    ; If IsArray($From) Then
    ; $F = $From[0]
    ; Else
    ; $F = StringMid($retr, StringInStr($retr, "Message-ID:",1,1,1,1), 100)
    ; EndIf
    ; if IsArray($To) Then
    ; $T = $To[0]
    ; Else
    ; $T = StringMid($retr, StringInStr($retr, "To:",1,1,1,1), 100)
    ; EndIf
    ;
    ; if IsArray($Subject) Then
    ; $S = $Subject[0]
    ; Else
    ; $S = StringMid($retr, StringInStr($retr, "Subject",1,1,1,1), 100)
    ; EndIf

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

    ; If IsArray($ArrivalTime) Then
    ; $A = $ArrivalTime[0]
    ; Else
    ; $A = StringMid($retr, StringInStr($retr, "ArrivalTime:",1,1,1,1), 100)
    ; EndIf

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

    ; MsgBox(0, "mail",$z & ";" & "From: " & $F & " To: " & $T & " Subject: " & $S & " DateTime: " & $A)
    ; FileWrite ($mail, $z & $F & ";" & ";" & $T & ";" & $S & ";" & $A & ";" & @CR & @LF)
    ; FileWrite ($mail, $retr & @CR)
    Else
    ConsoleWrite("Retr commande failed" & @CR)
    EndIf
    Next
    _ArrayDisplay($mailBody)
    ; FileClose($mail)
    ;~ Local $dele = _Pop3Dele(1)
    ;~ If Not @error Then
    ;~ ConsoleWrite($dele & @CR)
    ;~ Else
    ;~ ConsoleWrite("Dele commande failed" & @CR)
    ;~ EndIf

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

    ConsoleWrite(_Pop3Quit() & @CR)
    _pop3Disconnect()

    [/autoit]


    :whistling:

    Edit Oscar: Spoiler und AutoIt-Tags eingefügt.

    Einmal editiert, zuletzt von Oscar (18. September 2014 um 11:58)

  • Algemein:
    mehrzeilige kommentare gehn so:

    [autoit]

    #cs
    Mehrzeiliger
    Kommentar
    #ce

    [/autoit]

    Dann musst du nicht so viele ; schreiben ;)

    Was das Problem angeht: Wenn das bei der MSG-Box funktioniert würd ich mal schätzen, dass _arrayDisplay nicht mit so langen Zeichenketten umgehen kann.
    (Bei mir stürzt _arrayDisplay auch manchmal ab, obwohl ich das array mit ner for-Schleife und msgbox ausgeben lassen kann. Also nix dabei denken. Wenns mit der msgbox klappt stehts auch im array :))