autoBert, vielen Dank, Du hast den Kaffeesatz hervorragend aufgegossen und verstanden!
Klappt super!
autoBert, vielen Dank, Du hast den Kaffeesatz hervorragend aufgegossen und verstanden!
Klappt super!
BugFix , das Ausgangsarray hat 38 Zeilen und 25 Spalten !
Ich möchte in einer Schleife alle 38 Zeilen, Zeile für Zeile lesen und die Daten der 25 Spalten in ein 2D Array mit zwei Spalten befüllen, so wie oben am Beispiel beschrieben.
Wobei die 1. Zeile vom Ausgangsarray immer gleich ist. Sie soll dann in der ersten Spalte des neuen 2D Array stehen. Also würde dann 25 Zeilen ergeben.
Das obige Beispiel wäre das Ausgangsarray, hier allerdings nur mit 3 Zeilen und 3 Spalten dargestellt
Moin,
#include <Array.au3>
Local $aArray
Local $aArray_Base[3][3] = [["Wert 1", "Wert 2", "Wert 3"], ["10", "20", "30"],["40", "50", "60"]]
_ArrayDisplay($aArray_Base, "2D array")
Dieses 2D Array mit mehreren Spalten soll in einer Schleife geändert werden, so dass jeweils ein 2D Array mit zwei Spalten entsteht.
Wobei in Col0 immer Wert1, Wert2, Wert3 steht.
Die Schleife ist kein Problem, aber das Array.
1. Arrray:
Col0 Col1
Row0 Wert1 10
Row1 Wert2 20
Row2 Wert3 30
2. Arrray:
Col0 Col1
Row0 Wert1 40
Row1 Wert2 50
Row2 Wert3 60
Könnt ihr mir helfen?
Gruß
@error ergab natürlich 3.
Das Programm ist noch mit der autoit-v3.3.10.2 erstellt worden. Ich stelle alles auf die aktuelle autoit Version um. Bei knapp 25000 Zeilen viel Arbeit.
Mit "Integer" funtioniert es jetzt!
Local $bVisible = True
Local $bReadOnly = False
Local $oExcel_Bzp = _Excel_Open(True)
Local $oExcel_Bzp_EBO = _Excel_BookOpen($oExcel_Bzp, $Bzp_Aw, $bReadOnly, $bVisible)
Local $zeile = Int($oExcel_Bzp.Worksheets(1).UsedRange.Rows.Count & @CRLF)
_Excel_RangeRead($oExcel_Bzp_EBO, "Tabelle1", "A3" & ":" & "G" & $zeile, 1)
Moin,
ich möchte mit _Excel_RangeRead ein Array einer Excelliste erstellen.
Da die Zeilenanzahl sich ändert, steht sie in einer Variable($zeile). z.B "A3:G55"
warum funktioniert: $vRange als Zeile = ("A3" & ":" & "G" & $zeile) nicht?
Gruß
Nein, so passt es!
Sieht nach 255 Stellen aus.
ZitatDa scheint's wirklich eine Begrenzung zu geben. Muss mal forschen, woran das liegt.
Das wäre sehr schön...
Sonst eine super UDF, die mir schon sehr viel geholfen hat.
Mit anschließend "StringSplit" ist alles da.
Danke!
Hatte ich schon probiert.
Global $aItem = _OL_ItemGet($aResult[1][1])
$aResult fehlte.
Nur die Informationen vom "Body" den ich ja auslesen möchte, werden abgeschnitten und nicht vollständig in das Array geschrieben.
Es dauert im Verhältnis ziemlich lange, bis das Array mit den Daten erscheint.
water, oder gibt es noch einen anderen weg?
water, vielen Dank!
Das klappt schon mal.
Nur wo füge ich die "EntryID" bei _OL_ItemFind ein, um meine Daten zu erhalten?
Update:
So müsste es funktionieren.
Global $aItems = _OL_ItemFind($oOutlook, $aFolder[1], $olMail, "", "EntryID",$aResult[1][1], "EntryID,CreationTime,Sender,SenderEmailAddress,SenderName,SenderEmailType,Body")
Moin,
water, ich versuche mit "_OL_ItemFind" nur aus einer selektierten Mail den Inhalt in ein Array zu schreiben.
Im unteren Beispiel "[UnRead]=True" sind es aber die ungelesenen, was auch gut funktioniert.
Wie ist es möglich mit nur jeweils einer selektierten Mail ?
Global $oOutlook = _OL_Open()
Global $aFolder = _OL_FolderAccess($oOutlook, "", $olFolderInbox)
Global $aItems = _OL_ItemFind($oOutlook, $aFolder[1], $olMail, "[UnRead]=True", "", "", "EntryID,CreationTime,Sender,SenderEmailAddress,SenderName,SenderEmailType,Body")
Ja, vielen Dank!
Oder so.....
BugFix , danke, auch deine UDF ist sehr interessant und eröffnet viele Möglichkeiten.
#include <GUIConstantsEx.au3>
#include <Array.au3>
Global $hchildSek[10]
Global $cache
Global $cache1
$Form1 = GUICreate("Form1", 301, 454, 192, 124)
$TreeView1 = GUICtrlCreateTreeView(8, 216, 281, 169)
$var = IniReadSectionNames(@ScriptDir & "\test.ini")
If @error Then
MsgBox(4096, "", "Kein INI File")
Else
For $i = 1 To $var[0]
$hchildSek[$i] = GUICtrlCreateTreeViewItem($var[$i], $TreeView1)
Dim $cache[0]
Dim $cache1[0]
$var2 = IniReadSection(@ScriptDir & "\test.ini", $var[$i])
If Not @error Then
For $j = 1 To $var2[0][0]
$search = _ArraySearch($cache, $var2[$j][0])
If $search <> -1 Then
GUICtrlCreateTreeViewItem($var2[$j][1], $cache1[$search])
Else
Local $2Ebene = GUICtrlCreateTreeViewItem($var2[$j][0], $hchildSek[$i])
GUICtrlCreateTreeViewItem($var2[$j][1], $2Ebene)
_ArrayAdd($cache, $var2[$j][0])
_ArrayAdd($cache1,$2Ebene)
EndIf
Next
EndIf
Next
EndIf
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Alles anzeigen
@timee000, sorry es liegt an meiner Autoit Version 3.3.10.2.
ArrayAdd erlaubt nur eindimensionales Array. Da das Projekt wofür ich es benötige sehr groß ist, kann ich es nicht auf die die aktuelle Autoit Version umstellen.
Schaue dir doch mal "_ArrayAdd" an, wo es bei dir steht.
Nein, genau richtig!
Kannst du den von dir eingestellten Code nochmal überprüfen?
Danke timee000, aber es funktioniert so nicht, der Lösungsweg ist eine gute Idee.
#include <GUIConstantsEx.au3>
#include <Array.au3>
Global $hchildSek[10]
$Form1 = GUICreate("Form1", 301, 454, 192, 124)
$TreeView1 = GUICtrlCreateTreeView(8, 216, 281, 169)
$var = IniReadSectionNames(@ScriptDir & "\test.ini")
If @error Then
MsgBox(4096, "", "Kein INI File")
Else
For $i = 1 To $var[0]
$hchildSek[$i] = GUICtrlCreateTreeViewItem($var[$i], $TreeView1)
$var2 = IniReadSection(@ScriptDir & "\test.ini", $var[$i])
If Not @error Then
For $j = 1 To $var2[0][0]
Local $2Ebene = GUICtrlCreateTreeViewItem($var2[$j][0], $hchildSek[$i])
GUICtrlCreateTreeViewItem($var2[$j][1], $2Ebene)
Next
EndIf
Next
EndIf
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Alles anzeigen
Moin,
ich erzeuge aus einer INI-Datei ein TreeView und habe folgendes Problem.
In der INI gibt es 2 mal den den key "Test5" mit einen Ordner.
Beide Ordner sollen aber imTreeView unter "Test5" liegen und nicht jeweils unter "Test5"
Könnt ihr mir helfen?
Gruß
Erstmal vielen Dank für die Anregungen!
ZitatWas machst Du genau mit dieser UDF ? Anhänge aus Mails ausziehen? Zu archivierungszwecken? Das thema intersiert mich ziemlich....
Ja!
1. entweder nur Anhänge
2. Mail (*.msg) mit Anhängen separat
3. Mail (*.msg)
Lässt sich wunderbar mit _OL_ItemSave lösen.
water, Danke!
Ich kenne ihren Namen und ihre Größe ja nicht.
Es kann ja auch ein *.jpg etc. als Anhang wichtig sein, was als Bild gespeichert werden soll. Wie soll ich das vorher filtern?
Moin,
water, ich lese per DragDrop die Anhänge mit deiner UDF, _OL_ItemAttachmentGet oder _OL_ItemAttachmentAdd, _OL_ItemSave auf einer GUI aus, und speicher die Anhänge.
Das klappt auch prima!
Einige Mails haben aber in der Signatur Bilder eingefügt. Diese werden als Anhang erkannt, die ich aber als Datei ja nicht möchte.
Gibt es eine Möglichkeit die Bilder der Signatur auszusparen.
Gruß