Ich mag keine Arrays! Bekomme Fehlermeldung.

  • Hilfe
    16:30 Uhr grmph. Ich bin seit heute Morgen 11 Uhr dabei und schreibe an ein Script damit ich an den Text einer Word Datei komme.
    Habe jetzt einen Fehler (ich bin nicht so der Array König) und habe keine Ahnung warum der kommt.
    Ich poste mal hier ein Beispielscript, ich habe in dem Script auch die Fehlermeldung als kommentar geschrieben. Ich wette drum das ich irgendetwas dummes vergessen habe. Bitte nicht hauen, ich bin schon ganz wuschig...
    Würde gerne das Script Morgen nutzen können. Das erleichtert mir meine Arbeit sehr. Wäre euch Dankbar wenn ihr mich eben mit dem Zaunpfahl auf mein Fehler hinweisen könnt.

    Spoiler anzeigen
    [autoit]

    #include <String.au3>
    #include <array.au3>
    #include <Word.au3>
    #include "Misc.au3"

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

    dim $wordKundenname, $wordStrasse, $wordberichtsnummer, $aArray1
    dim $oWord , $oWordDocuments , $oWordDocument ,$oWordContent ,$TextDoc

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

    $oWord = ObjCreate("Word.Application")
    $oWord.Visible = 1
    $oWordDocuments = $oWord.Documents
    $oWordDocument = $oWordDocuments.Open("C:\test.doc")
    $oWordContent = $oWordDocument.Content
    $TextDoc = $oWordContent.Text

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

    $wordStrasse = StringLeft($TextDoc,80) ;diese Meldung wird sauber angezeigt
    MsgBox( 1 ," stringleft : ", $wordStrasse )
    $aArray1 = _StringBetween($TextDoc, "Nr.:", "Strasse:", -1, 1)
    $wordberichtsnummer = $aArray1[0] ; hier erhalte ich folgende Fehlermeldung:
    ;~ C:\Dokumente und Einstellungen\test\Eigene Dateien\an Text aus word kommen.au3 (22) : ==> Subscript used with non-Array variable.:
    ;~ $wordberichtsnummer = $aArray1[0]
    ;~ $wordberichtsnummer = $aArray1^ ERROR

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

    MsgBox( 1 ,"Word Berichtsnummer: ", $wordberichtsnummer );diese Meldung wird nicht mehr angezeigt

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


    Wie gesagt, ich bin schon ganz wuschig... 8|

  • Hmm bei einer Wordatei mit

    Spoiler anzeigen

    Hallo ich bisfs n
    Gs
    Dghs
    Nr.: 4367 Strasse: Gfrhg

    geht es bei mir so:

    Spoiler anzeigen
    [autoit]

    #include <String.au3>
    #include <array.au3>
    #include <Word.au3>
    #include "Misc.au3"

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

    dim $wordKundenname, $wordStrasse, $wordberichtsnummer, $aArray1
    dim $oWord , $oWordDocuments , $oWordDocument ,$oWordContent ,$TextDoc

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

    $oWord = ObjCreate("Word.Application")
    $oWord.Visible = 0
    $oWordDocuments = $oWord.Documents
    $oWordDocument = $oWordDocuments.Open("C:\test.doc")
    $oWordContent = $oWordDocument.Content
    $TextDoc = $oWordContent.Text
    $oWord.ActiveDocument.ActiveWindow.Close
    $wordStrasse = StringLeft($TextDoc,80) ;diese Meldung wird sauber angezeigt
    MsgBox( 1 ," stringleft : ", $wordStrasse )
    $aArray1 = _StringBetween($TextDoc, "Nr.:", "Strasse:")
    $wordberichtsnummer = $aArray1[0] ; hier erhalte ich folgende Fehlermeldung:
    ;~ C:\Dokumente und Einstellungen\test\Eigene Dateien\an Text aus word kommen.au3 (22) : ==> Subscript used with non-Array variable.:
    ;~ $wordberichtsnummer = $aArray1[0]
    ;~ $wordberichtsnummer = $aArray1^ ERROR

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

    MsgBox( 1 ,"Word Berichtsnummer: ", $wordberichtsnummer );diese Meldung wird nicht mehr angezeigt

    [/autoit]
  • ähhm wiso deklarierst du die variable überhaupt und kann es sein das stringbetween nur eine 0 zurückgibt?... fehler oder so?

    MFG FireFlyer

    *Paradox ist, wenn man sich im Handumdrehen den Fuss bricht* :D

    Einmal editiert, zuletzt von FireFlyer (3. Februar 2008 um 17:14)

  • sicher, dass du auch ein Ergebnis zurückbekommst check das doch erstmal mit "IsArray"

  • Danke FirePanther.
    Es funzt.

    Ich habe jetzt

    [autoit]

    $aArray1[0] = _StringBetween($TextDoc, "Nr.:", "Strasse:")
    $wordberichtsnummer = $aArray1[0]

    [/autoit]

    statt:

    [autoit]


    $aArray1 = _StringBetween($TextDoc, "Nr.:", "Strasse:")
    $wordberichtsnummer = $aArray1[0]

    [/autoit]


    Damit funktioniert das. Genauso hattest du das ja auch schon im ersten Post geschrieben.

    Ich verstehe jetzt aber nicht warum das im Beispiel von progandy nicht muß. Das funktioniert auch ohne die [0].

    Danke!!!

  • Damit bekommst du aber wieder nicht deine Nummer:

    $aArray1[0] = _StringBetween($TextDoc, "Nr.:", "Strasse:")
    $aArray1[0] ist jetzt im Erfolgsfall:
    $aArray1[0][0] -> Ergebnis 1
    $aArray1[0][1] -> Ergebnis 2
    usw.
    Bei einem Fehler ist
    $aArray1[0] = 0

    $wordberichtsnummer = $aArray1[0]
    -> Also entweder leer oder 0