Beiträge von hevilp
-
-
Sicher, du kannst immer noch das machen (die Sinnhaftigkeit sei zu hinterfragen):
AutoIt
Alles anzeigenGlobal $Array[100] For $i = 0 to 99 Step 1 $Array[$i] = $i Next Global $index = 0 For $element in $Array MsgBox(0, "", $element) MsgBox(0, "", $Array[$index] $index += 1 Next ;is equal to For $i = 0 to UBound($Array) - 1 Step 1 Local $element = $Array[$i] MsgBox(0, "", $element) MsgBox(0, "", $Array[$i]) Next
Die Frage ist warum du nicht einfach direkt die for ... to Schleife nutzt.
Edit:
Selbst wenn ist das keine geistige Hürde, dass man auf den Trichter kommt dass auch die for...in... Schleife maximal n = UBound(array) durchläuft und man entsprechend einen Counter einführt. Ich glaube eher hier liegt ein allgemeines Verständnisproblem davon vor, was ein Array überhaupt ist.
Wo steht, das ich nicht durch den Hinweis von misterspeed die for to schleife nutze?
mein post oben, bezieht sich darauf, das es in einer for in schleife nicht möglich ist und genau diese Info brauchte ich.
Ich hab bereits auf die For to schleife gewechselt. Warum auch nicht. (Einen eigenen index erstellen möglich, aber zu umständlich)
Es funkioniert sehr gut.Lesen hilft, und vllt weniger interpretieren...
Vielleicht solltest du mal lesen was ich schreibe, es ist anscheinend nicht möglich in einer For in Schleife den Index anzusprechen.
Ich habe nirgends geschrieben, dass es nicht möglich ist. Ich beziehe mich explizit auf Punkt 2 der Ausführungen von misterspeed.Den Code, dass es möglich ist in einer For in schleife direkt auf den Index zuzugreifen bist du mir immer noch schuldig.
Ansonsten habe ich keinen "Mist" erzählt und eine Entschuldigung wäre wohl mal fällig -
-
-
"Dynamisch erstellt" - wie? woher? ich erstelle einen Array aus dem Zwischenspeicher (variabel)Ergebnis? 1-D-Array
Zeilen in einem 1D-Array?Was ist mit der unterschiedlichen Begrifflichkeit Reihe vs. Zeile gemeint? (subjektiv das selbe)
Der Zwischenspeicher ist Text, und jede Zeile wird zu einer Reihe in dem Array, das steht oben schon 2 mal, ist das so unverständlich?
$aArray[1] = Zeile 1
$aArray[2] = Zeile 2
$aArray[3] = Zeile 3
uswKlar - genauso wie du es hingeschrieben hast.
Ich weiß aber die aktuelle Reihe des Arrays nicht. Deshalb meine Frage, wie lese ich die aktuelle Reihe denn aus?Was meinst du mit aktuell?Du bestimmst doch wo du dich im Array befindest - ergo kennst du den Index sowieso schon. Z.B. in der For-To-Schleife.
Oder iterierst du über eine For-In-Schleife?For $element In $aArray -> Woher weiß ich den Index in der aktuellen Array-Zeile?
Ich schreibe es nochmal, der Array wird aus dem Zwischenspeicher erstellt, nicht händisch, weshalb ich nicht die Länge des Array weiß.
Die ist auch unwichtig, ich möchte ebene $aArray[$aktuellerIndex + 4] adressieren.Nochmal zusammengefasst: Je unkonkreter du fragst umso unkonkreter können wir dir helfen (falls auf dem Weg zum konkreten dabei nicht die Lust verloren geht).
Meine Frage ist seit dem ersten Beitrag gleich. Wie lese ich den aktuellen Index aus einem Array aus, wenn ich es mit For $element In $aArray durchlaufe -
Mein X: Ich möchte eine Reihe eines dynamischen erstellen Arrays direkt adressieren. (Thematitel)
Ich habe ein 1-D-Array. Jede Zeile ist eine Reihe im Array. Das Array kommt aus dem Zwischenspeicher und sieht demnach immer etwas anders aus.
Gibt es eine Möglichkeit eine Reihe anzusprechen, und zwar nicht mit $aArray[1400] sondern mit $aArray[$x] wobei dann $x eine beliebige Zahl ist?
In Autohotkey gibt es zumindest die Möglichkeit, den aktuellen Index des Arrays auszugeben, dass würde mir schon reichen.
-
-
ja, das werde ich machen (müssen)
-
das war übrigens schon in meiner ausgangsfrage formuliert, wo du sagtest, sicher...
anscheinend kann das plugin gar keine vorhande signatur öffnen, sondern nur neu (über)schreiben
-
ich habe alles deaktiviert im code sodass nur noch das bild übrig bleibt. aber anstelle das er das bild tauscht löscht er alles und es ist nach der Änderung nur noch das Bild da. warum löscht er das vorhandene?
und noch eine frage, ist es möglich einen hyperlink auf das bild zu legen? in outlook ist das ja möglich, sodass man nur das bild anklicken muss, um auf eine seite zu kommen.
danke
Code
Alles anzeigenFunc SigChange() Global $iReply = MsgBox(308, "OutlookEX UDF: _OL_MailSignatureCreate Example Script", "This script creates signature 'Outlook-UDF-Test'." & @CRLF & _ "To delete the signature please run '_OL_SignatureDelete'." & @CRLF & @CRLF & _ "Are you sure you want to create the signature?") If $iReply <> 6 Then Exit Global $oOutlook = _OL_Open() If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF", "Error creating a connection to Outlook. @error = " & @error & ", @extended = " & @extended) ; ***************************************************************************** ; Example 1 ; Use Word to create the signature content. ; Then call _OL_MailSignatureCreate and pass the content. ; ***************************************************************************** Global $sGiven = "Firstname" Global $sSurname = "Lastname" Global $sAddress1 = "Streetname and number" Global $sAddress2 = "Town" Global $sPostcode = "PostalCode" Global $sFax = "Your Faxnumber" Global $sMobile = "Your Mobile Phone number" Global $sTitle = "Your Title - if you have one" Global $sCompany = "Name of your company" Global $sPhone = "Your Phone number" Global $sEmail = "yourmailaddress@yourcompany.TLD" Global $sWeb = "http://www.yourcompany.TLD" Global $sExt = "Extension" Global $sPicture = @ScriptDir & "\w.jpg" Global Const $END_OF_STORY = 6 Global $oWord, $oDoc, $oSelection, $oRange, $oTable, $oCell, $oCellRange, $oLink Global $sStyle = "No Spacing" ; Set up word template $oWord = ObjCreate("Word.Application") $oDoc = $oWord.Documents.Add() $oSelection = $oWord.Selection ; Sets initial font typeface, colour etc., inserts name and title ;If $oWord.LanguageSettings.LanguageID($msoLanguageIDUI) = 1031 Then $sStyle = "Kein Leerraum" ;$oSelection.Style = $sStyle ;$oSelection.Font.Name = "Verdana" ;$oSelection.Font.Size = 10 ;$oSelection.Font.Bold = True ;$oSelection.Font.Color = 0x002D9A ;$oSelection.TypeParagraph() ;$oSelection.TypeText($sGiven & " " & $sSurname) ;$oSelection.Font.Size = 7 ;$oSelection.TypeText(Chr(11)) ;$oSelection.Font.Size = 8 ;$oSelection.Font.Bold = False ;$oSelection.TypeText($sTitle) ; Inserts a 2 column table to contain the Address (left) and the contact information (right) ;$oSelection.TypeText(Chr(11)) ;$oSelection.TypeParagraph() ;$oRange = $oSelection.Range ;$oDoc.Tables.Add($oRange, 5, 2) ;$oTable = $oDoc.Tables(1) ;$oTable.Cell(1, 1).Range.Text = $sCompany ;$oTable.Cell(2, 1).Range.Text = $sAddress1 ;$oTable.Cell(3, 1).Range.Text = $sAddress2 ;$oTable.Cell(4, 1).Range.Text = $sPostcode ;$oTable.Cell(1, 2).Range.Text = "Tel: " & $sPhone & " | Ext: " & $sExt ;$oTable.Cell(2, 2).Range.Text = "Fax: " & $sFax ;$oTable.Cell(3, 2).Range.Text = "Mobile: " & $sMobile ; Creates a clickable hyperlink ;$oCell = $oTable.Cell(4, 2) ;$oCellRange = $oCell.Range ;$oCell.Select ;$oSelection.TypeText("Web: ") ;$oLink = $oSelection.Hyperlinks.Add($oSelection.Range, $sWeb, Default, Default, $sWeb) ;$oLink.Range.Font.Name = "Verdana" ;$oLink.Range.Font.Size = 8 ;$oLink.Range.Font.Bold = False ; Creates a clickable mailto: email address ;$oCell = $oTable.Cell(5, 2) ;$oCellRange = $oCell.Range ;$oCell.Select ;$oSelection.typeText("Email: ") ;$oLink = $oSelection.Hyperlinks.Add($oSelection.Range, "mailto: " & $sEmail, Default, Default, $sEmail) ;$oLink.Range.Font.Name = "Verdana" ;$oLink.Range.Font.Size = 8 ;$oLink.Range.Font.Bold = False ;$oTable.AutoFitBehavior(1) ;$oSelection.EndKey($END_OF_STORY) ; Insert logo $oSelection.TypeText(Chr(11)) $oSelection.InlineShapes.AddPicture($sPicture) ; Select the whole text $oSelection = $oDoc.Range() ; Create the Signature Global $iResult = _OL_MaiLSignatureCreate("Sig-Std", $oWord, $oSelection) If @error <> 0 Then MsgBox(16, "OutlookEX UDF: _OL_MailSignatureCreate Example Script", "Signature 'Outlook-UDF-Test' could not be created. @error = " & @error & ", @extended: " & @extended) Else MsgBox(64, "OutlookEX UDF: _OL_MailSignatureCreate Example Script", "Signature 'Outlook-UDF-Test' successfully created.") EndIf ; End Word $oDoc.Saved = True $oWord.Quit Global $oOutlook = _OL_Open() If @error <> 0 Then Exit MsgBox(16, "OutlookEX UDF", "Error creating a connection to Outlook. @error = " & @error & ", @extended = " & @extended) ; Create a constant variable in Local scope of the message to display in FileOpenDialog. EndFunc ;==>Example
-
Hallo,
ich bin sehr neu in der AutoIt-Welt, das vorweg.
Ich möchte eine vorhandene Signatur automatisch aktualisieren.
Das heißt dazu muss sie geöffnet werden, ein Bild eingefügt werden (mit dahinter liegendem Link) und gespeichert werden.Habe das OutlookEX UDF - Signaturen
gelesen und einige Beispiele, finde aber nicht das passende.
Die Signatur wurde normal in Outlook erstellt und nicht mit OutlookEx.ist das trotzdem möglich?
danke im vorraus.