Habe es selbst gefunden, danke! ![]()
Spoiler anzeigen
RunWait('C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe ' & $PDF1 &' '& $PDF2 & ' cat output ' & $DestinationPath, "")
Habe es selbst gefunden, danke! ![]()
RunWait('C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe ' & $PDF1 &' '& $PDF2 & ' cat output ' & $DestinationPath, "")
@Musashi
Kannst Du mir nochmal helfen, $In1 und $IN2 auch als Variable?
Gruß
$sCommand = 'C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe D:\Test1.pdf D:\Test2.pdf cat output ' & $sOut
ConsoleWrite('+ @@ Debug : $sCommand = ' & $sCommand & @CRLF)
$In1 = D:\Test1.pdf
$In2 = D:\Test2.pdf
$sCommand = 'C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe D:\Test1.pdf D:\Test2.pdf cat output ' & $sOut
ConsoleWrite('+ @@ Debug : $sCommand = ' & $sCommand & @CRLF)
Gruß
@Musashi
Vielen Dank, funktioniert! ![]()
Moin,
es sollen PDF's zu einer Datei gemerge werden mit PDFtk Server.
Das funktioniert ohne Variablen gut.
RunWait('C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe D:\Test1.pdf D:\Test2.pdf cat output D:\out1.pdf', "")
Ich möchte aber die die Out-Datei als Variable angeben.
RunWait('C:\Program Files (x86)\PDFtk Server\bin\pdftk.exe D:\Test1.pdf D:\Test2.pdf cat output' & $Out, "")
So funktioniert es leider nicht.
Könnt ihr mir mit der Einbindung "Variable" helfen?
Gruß
water, super. Danke!
Klappt perfekt. ![]()
Moin,
water, ist es möglich mit der ExportAsFixedFormat-Methode wie von Word "_Word_DocExport", mit "_Excel_Export" eine PDF /A1 Datei zu erzeugen?
Oder gibt es einen anderen Weg?
Gruß
Wuff
Oder so!
Baut auf
@Musashi Code auf.![]()
$FieldscoutSt = $oRecordSet.Fields.Count
MsgBox(1, "", $FieldscoutSt)
For $i = 0 To $oRecordSet.Fields.Count - 1
ConsoleWrite($oRecordSet.Fields($i).Name & @CRLF)
Next
@Musashi, klappt super!
Vielen Dank nochmals! ![]()
@Musashi , vielen Dank!
So habe ich mir es vorgestellt. ![]()
Es wäre doch bestimmt ohne ForNext-Schleife möglich, alle Werte einer bestimmten Spalte in ein Array zu lesen?
Vielleicht kannst Du mir ja nochmal helfen.
Moin,
ich arbeiet mit dieser Accesss UDF.
Mit der Func _AccessRecordList lese ich zeilenweise die Daten der 35 Spalten in ein Array.
Da ich aber 2500 Zeilen mit 35 Spaltem in der Access-Datei habe, wird es mit der Func _AccessRecordList zeilenweise ausgelesen sehr langsam.
Wie kann ich alles komplett in ein Array auslesen?
Vielleicht könnt ihr mir helfen.
Gruß
Es ist ein sehr umfangreiches Script mit und funktioniert in der lokalen Umgebung für mehrere Personen sehr gut.
Dann sollte ich es wohl mit dem Browser vergessen.
Schade!
Zitat von autoiterIst "Z:" ein auf deinem Windows eingebundenes Netzlaufwerk von deinem NAS?
Ja, das ist so!
Moin autoiter , erstmal vielen Dank für Dein Feedback.
Die Autoit Anwendung soll von einigen Personen von unterwegs erreichbar sein.
Daher habe ich mich für den Weg über den Browser entschieden, was ja bekanntermaßen doch schweriger ist als angenommen.
Zitat von autoiterDu wirst den Pfad mit "Z:\..." wohl fest in den Code schreiben müssen.
Das wollte ich eben vermeiden und suchte vielleicht nach einen anderen Weg.
Wenn ich die *.exe auf der NAS starte, wird mir ein Download angeboten, was weniger hilfreich ist.
Also habe ich es mit dem Apache Server versucht und scheiter eben daran, dass die Anwendung beim Start immer nach den Access Dateien usw. im Temp Ordner fragt.
Vielieicht mache ich auch allgemein ein Denkfehler, deshalb bat ich um Hilfe. ![]()
#pragma compile(FileDescription, "AutoIt Protocol Handler")
#pragma compile(FileVersion, 1.1.0.0)
#pragma compile(CompanyName, scintilla4evr)
#pragma compile(Icon, icon.ico)
#include <Array.au3>
#include <File.au3>
#include <WinAPIShPath.au3>
If @Compiled Then
; Warn the user! [TheDcoder]
$bAreYouReallySure = MsgBox(36, "Script execution warning", "The website is trying to execute a script, which may be dangerous to your computer. Are you sure you want to proceed?")
If $bAreYouReallySure <> 6 Then Exit
; Put the URL together
$arr = $CmdLine
_ArrayDelete($arr, 0)
$sData = StringTrimLeft($sData, 7)
; Look for modifiers
If StringRegExp($sData, "\A\s*url\(.*\)\s*\Z") Then
$aRegExp = StringRegExp($sData, "\A\s*url\((.*)\)\s*\Z", 1)
$sURL = $aRegExp[0]
$sData = BinaryToString(InetRead($sURL))
ElseIf StringRegExp($sData, "\A\s*local-url\(.*\)\s*\Z") Then
$aRegExp = StringRegExp($sData, "\A\s*local-url\((.*)\)\s*\Z", 1)
$sURL = $aRegExp[0]
$sData = FileRead($sURL)
ElseIf StringRegExp($sData, "\A\s*helpfile-example\(.*\)\s*\Z") Then
$aRegExp = StringRegExp($sData, "\A\s*helpfile-example\((.*)\)\s*\Z", 1)
$sURL = $aRegExp[0]
$sData = FileRead(_WinAPI_PathRemoveFileSpec(@AutoItExe)&"\Examples\Helpfile\"&$sURL&".au3")
ElseIf StringRegExp($sData, "\A\s*str-format\(.*\)\s*\Z") Then
$aRegExp = StringRegExp($sData, "\A\s*str-format\((.*)\)\s*\Z", 1)
$sData = StringFormat($aRegExp[0])
EndIf
; Save to a temporary file and EXECUTE!
$sTempFile = _TempFile(@TempDir, "~", ".au3")
FileWrite($sTempFile, $sData)
Msgbox(1,"$sTempFile",$sTempFile)
Msgbox(1,"@AutoItExe",@AutoItExe)
RunWait('"'&@AutoItExe&'" /AutoIt3ExecuteScript "'&$sTempFile&'"')
FileDelete($sTempFile)
EndIf
alpines, ist es nicht möglich?
Die *.au3 wird im Verzeichnis "C:\Users\xxxxxx\AppData\Local\Microsoft\Windows\INetCache" über das Protokoll mit "Runwait" ausgeführt.
$arr[0] ist die URL.
Die Daten zu der *.au3 Datei (Access, Ordner usw. ) befinden sich auf Laufwerk Z:.
Das dann die *.au3 Datei auf das Laufwerk Z: zugreift?
Es sind viele Ordner und Dateien auf den Laufwerk Z:, die für die Ausführung der *.au3 Anwendung notwendig sind.
Zitat von AlpinesSchreib doch einen Wrapper der dein AutoIt-Skript mit den entsprechenden Parametern über die CLI startet?
Dann kannst du die Datenbankinfos als CLI-Parameter übergeben.
alpines, ich weiß leider nicht wie, kannst Du mir ein kleines Beispiel geben für den Wrapper?
Moin,
ich habe auf meiner NAS eine Autoit Anwendung (Access Datenbank) die ich mit dem Browser über dieses Protokoll starte, was auch gut funktioniert.
Der Browser lagert dann die gestartete *.au3 Anwendung in den Cache ("C:\Users\xxxxxx\AppData\Local\Microsoft\Windows\INetCache") aus.
Problem: Mir fehlen dann die Acces Datenbank Dateien, die werden nicht mit ausgelagert.
Sie sind in der *.au3 Anwendung so ("_AccessOpen(@ScriptDir & "\" & $Datenbank_File, $Options_1, $ReadOnly_1, $Connect_1") eingebunden.
Funktioniert natürlich, wenn ich die *.au3 oder *.Exe auf dem NAS Laufwerk starte.
Habt ihr eine Idee, wie ich sie für den Start mit dem Browser in der *.au3 einbinden muss, ohne die Access Datenbank Dateien im INetCache bereit zu stellen?
Gruß
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ß