Beiträge von Peter S. Taler
-
-
Hallo Tweaky,
ich würde gerne, fallweise mit der einen oder anderen klarstellung an der Hilfe mitarbeiten. Beisbiel der "Bug " bei filewrite... Wie mache ich das? Schreibe ich Dir ein MAil,
Wie bitte ist das Vorgehen?
Danke
Gruß
Peter
-
Hallo Musashi,
Nein Da hast Du recht. Liegt daran, dass man scheinbar keine *.17 Dateien hochladen kann, da es eine unbekannte Dateiendung ist (Bug oder Feature?). Habe in *.txt umbenannt und Script entsprechend geändert.
Danke
Peter
-
Moinsen,
ich habe hier einen Mustercode. (Bitte das ist nur ein Testcode!) dieser liefert falsche Ergebisse! Für beigefügtes test.17 File stellt scih die Situation wie folgt dar:
Die richtige Hex Folge ist:1B 40 FF 20 FF 20 FF FF 20 20 FF 20 20 FF 0D -- > Sagen alle Hex Editoren.
Hex to _StringToHex liefert aber : 1B 40 C3 BF .... was falsch ist
Wohingegen StringToASCIIArray ($aArray[$i] 27 64 255 32 .... liefert die Werte Decimal aber richtig.
Ein File open habe ich schon mit allen Parametern ausprobiert (siehe Code) -- Änderung keine. Ich unterstelle aber das es daran liegt, dass das File Dos Zeichensatz hat?
Danke
Peter
Code.... (bitte nicht schlagen das ist wirklich nur Testcode)
------------------------------------------------------------------------------
#include <FileConstants.au3>
#include <MsgBoxConstants.au3>
#include <String.au3>
#include <Array.au3>
;Assign the file path to a variable
Local $sFilePath = "F:\TEMP\test.txt"
;Open the file temp.txt in append mode. If the folder C:\AutomationDevelopers does not exist, it will be created.
Local $hFileOpen = FileOpen($sFilePath, 16)
;Local $hFileOpen = FileOpen($sFilePath, 48)
;Local $hFileOpen = FileOpen($sFilePath, 80)
;Local $hFileOpen = FileOpen($sFilePath, 144)
;Local $hFileOpen = FileOpen($sFilePath, 272)
;Local $hFileOpen = FileOpen($sFilePath, 528)
;Local $hFileOpen = FileOpen($sFilePath, 1040)
;Local $hFileOpen = FileOpen($sFilePath, 2064)
;Local $hFileOpen = FileOpen($sFilePath, 16400)
;Display a message box in case of any errors.
If $hFileOpen = -1 Then
MsgBox($MB_SYSTEMMODAL, "", "An error occurred when opening the file.")
EndIf
;Set the file position to beginning for reading the data from the beginning of the file.
;FileSetPos($hFileOpen, 0, $FILE_BEGIN)
;Read the data into an array using the file handle.
Local $aArray = FileReadToArray($hFileOpen)
_ArrayDisplay($aArray, "file im array")
If @error Then
MsgBox($MB_SYSTEMMODAL, "", "There was an error reading the file. @error: " & @error)
Else
For $i = 0 To UBound($aArray) - 1 ; Loop through the array.
MsgBox(0, "in der schleife " & ($i+1), $aArray[$i]) ; Display the contents of the array.
MsgBox(0, "hex " & ($i+1), _StringToHex ($aArray[$i])) ; Display the contents of the array.
$a_arr = StringToASCIIArray ($aArray[$i])
_ArrayDisplay($a_arr, "file im array")
Next
EndIf
;Close the handle returned by FileOpen.
FileClose($hFileOpen)
----
-
Liebe Übersetzer,
mir ist klar, zuviel Arbeit - zuwenig Helfer. Da kommt eine Bugmeldung wohl auch ungelegen.
Unser Forenmitglied Water schreibt hier am 27-4-2014:
https://www.autoitscript.com/forum/topic/15…a-new-filename/
Das bei Filecopy die Hilfe falsch ist, denn filecopy lässt auch einen neuen Namen des kopierten Files zu. Da hat er recht - das ist so leider kann man das weder der deutschen noch der englichsen Hilfe entnehmen. also Filcopy ("source", "dest" [flag =0]) wobei dest nicht nur der Pfad sondern auch der Dateiname sein kann.
z.B. filecopy ("C:\Temp\file_1.pdf", "D:\temp\es ist kopiert.pdf")
Das geht aber aus : The destination path of the copied file(s). (engl Hilfe) nicht hervor. Das Zielverzeichnis der zu kopierenden Datei(en). der deutschen Hilfe gibt das auch nicht her.
Richtig ist:
Das Zielverzeichnis der zu kopierenden Datei(en) und der Dateiname
Bitte berichtigen...
Gruß
Peter
PS.: Habt Dank für Eure Arbeit
-
Ja so mache ich das ja auch...... nun passiert aber folgendes. Du hast die Vorschau gelesen - stellst fest du hast eine Angabe vergessen, oder 10 Tippfeler. Nun sind die Inhalte der Felder ja noch da --> Ändern der Feldinhalte ---> und nun? das Flag zum Versenden ist ja schongesetzt. (Setze ich beim drücken des Vorschau buttons) Wie stelle ich fest, dass es eine Eingabe in den Testboxen gegeben hat? Bei den Dropboxen - wenn Du etwas "nachlegst" ist das einfach da hilft in der While Schleife das Case $GUI_EVENT_DROPPED weiter. Nach jedem droppt einfach das Flag löschen...
Vom prinzip ist es eine While schleife in der das GUI steht. Darin gibt es einige case
Case droped,
Case vorschau erstellen ( ist ein Button)
Case Mail senden (ist ein Button)
Nun geht man her und füllt alle Formular Felder aus, drückt Vorschau erstellen ---> Auslesen der felder, Schreiben in PDF usw.... und PDF vorschau.
Setzen des Flags Mail erlaubt.
Soweit so gut. Nun macht einer im Gui Änderungen, Wenn er etwas Droppt kein Problem. Da wird das Mail Flag gelöscht, mailen is nich .. msgbox --> Vorschau erstellen.
Aber was mache ich wenn in die Felder geschrieben wird ? Die lese ich ja nur aus wenn case Vorschau erstellen.....
Da ich keine Methode kenne den Status der Gui Boxen als Case zu bearbeiten. Daher der Tittel....
Gruß
Peter
-
Kein Virenschutz... Rechte sind "alle". Auch schon als Admin getestet.
Was meinst Du mit lokaler Ordner? DEP ist mir auch neu... aber dazu ist das Forum ja da.
In der Tat ist es so, dass das Cohernt Tool cpdf die gleichen Aktionen ausführt wie pdftk. Jedoch ist der zeitliche Versatz zwischen lokaler und Serverausführung messbar aber nicht spürbahr.
(Siehe oben)
-
Moinsen,
ein Gui, das verschiedene Eingabefelder hat, Diese Felder unterscheiden sich in "Dropp" Felder und "Textfelder" Nun kann man sehr bequem mit Case $GUI_EVENT_DROPPED abfagen ob etwas "gedropt" wurde. --> Funktioniert wie es soll.
Für die Text felder habe ich einen Button, dieser muss gedrückt werden, dann wird aus dem Inhalt der Textboxen des Guis ein PDF erstellt. Der inhalt der Boxen wird nicht gelöscht.
Nach Erstellung / Studium des Pdfs kann ein weiterer Button gedrückt werden, der nun dieses Pdf per Mail versendet.
Stellt man nun beim Lesen des PDFs fest, man hat etwas unklar beschrieben (in den Text Boxen) kann man diese editieren. Zwangsweise müßte nun VOR versenden eine neue Vorschau erstellt werden. Wie bitte mache ich das , ohne den Inhalt der Felder miteinander zu vergleichen?
Bei den Drop down Feldern geht das einfach, da gibt es Case $GUI_EVENT_DROPPED wer also nach Erstellung des Pdfs noch droppt, löscht einfach das , mit erstellen der Vorschau gesetzte Vorschau erstellt Flag. Also ohne Vorschau Flag --> Kein Mail.
Danke für Eure Hilfe
Peter
Ich hoffe ich habe das verständlich beschrieben. Ich suche sozusagen ein Case $GUI_EVENT_written
-
Da stimme ich BugFix zu. Rein intutiv würde ich auf , die meist überfrachteten, Intel Tools verzichten. Im Netz gibt es jede Menge portabler Freeware Tools die entsprechende Werte liefern. Häüfig auch als Plain Text.... Schau mal danach. Wenn Du wider Erwarten nichts finden solltest .... Nachricht
GRuß
Peter
-
Tatsächlich ist wohl pdftk der Verbrecher. Alle Operationen von PDFTK auf dem Server dauern eine gefühlte und gemessene Ewigkeit. PDFTK local --> alles ok.
Da ich das nicht in den Griff kriege, auch nicht mit Deiner Anregung aus dem Link. bzw. via Arbeitsverzeichnis (Egal ob Aufruf/Arbeitsverzeichnis via gemappten Laufwerk/UNC Pfad. Keine brauchbare Verbesserung!
Nun bin ich es radikal angegangen und habe PDFTK gegen cpdf (Coherent) ausgetauscht. Und siehe da das flutscht... Die Laufzeiten verlängern sich ein wenig, aus 210ms local werden 450ms via Server - das ist vollkommen ok. Aber nicht aus 210ms werden 19.000 ms wie bei pdftk.
Kann es sein dass es von pdftk ein kostenpflichtiges Servervariante gibt, und man das absichtlich eingebaut hat?
Für mich erledigt.
Danke an Conrad und autoiter (im Chat) für Ihre Denkanstöße.......
Peter
-
Ich rauche nicht, ich trinke nicht, ich lüge nur....
-
Jetz isses gut . Wenn er über Rechtschreibung sprechen will geht er in ein Deutsch Forum.........
Wenn Du jeden anmachst wegen Tippfehlern, Rechtschreibfehlern, legst Du nur die Hemmschwelle für Beiträge höher. Ist das Dein Ziel?
Übertreibs nicht!
Gruß
Peter
-
Kanashius Danke abe das ist es mit Sicherheit nicht. Das reine Autoit Programm "kommt" blitzartig. Es sind wohl die mit runwait oder run aufgerufenen Konsolenprogramme.
@Conrad.
Danke für den Link. Leider kann ich mit entsprechenden Änderungen am pdftk Aufruf keine Veränderung feststen.
Habe da aber eine andere Idee. Teste ich aus melde mich da wieder.
Für weitere Anregungen binn ich dankbar.
Gruß
Peter
-
64 bit Windows ces ce cet moi je suis en XP Sp3
Gruß
Peter
-
Ja - so isses. Musashi Du wolltest doch nicht pingelig sein? Warum bist Du es dann??? Wenn schon pingelig dann ist der Satz :
....Falls Du eine echte DOS-Anwendung laufen lassen willst, benötigst Du einen Emulator wie DosBox... auch nicht richtig.
Denn wofür hällst DU cmd exe?
https://de.wikipedia.org/wiki/Cmd.exe
Also Racer nettes DOS Tool
Gruß
Peter
-
-
Moin,
Die Ausgangslage sind Autoit Programme, die als "Dienstleister" eingesetzt werden, und die alle runwait Aufrufe haben und commandozeilenfähige Programme aufrufen, die z.b. Pdf manipulationen vornehmen (z.B. PdfTk). Sofern die Autoit Programme local auf dem Rechner ausgeführt werden, arbeiten dies - ohne auffällige Wartezeit. Button anwählen, Luftholen fertig. Fertig bedeutet z.b. ein PDF wird in Sumatra angezeigt.
Nun lege ich diese Programme auf einen Windows (2008 32 bit also nix R2) Server, der nichts zu tun hat, und über Gig angebunden ist. Programm aufrufen, startet sofort, ABER bis die "auswertung" vorliegt (z.B. ein in Sumatra geöfnetes PDF) kann man bis 20 oder 30 zählen. Das dauert also sichtbar. länger.
Auch Sumatra wird über runwait aus autoit heraus aufgerufen, auch Sumatra liegt auf dem Server.
Alle Hilfsprogramme liegen auf dem Server. Ich habe das so gemacht, das, das Autoit Program in einem Ordner liegt Progi/. Die Hilfsprogramme ligen unter Progi/hilf/Sumatra oder Progi/hilf/ptftk usw usw. Ach ja bevor ich das vergesse... Die Verzeichnisse sind gemappt und die Rechte auf die Verzeichnisse sind maximal.
Im Aufruf runwait kebe ich KEIN Arbeitsverzeichnis an.
Nun ist mir nicht klar welcher Code wo ausgeführt wird, bzw. wie oft die Daten übers Netz hin und her geschoben werden. Welche Möglichkeiten gibt es dias Tempo zu verbessern?
Ich vermute, dass die Consolenprogramme das ganze ausbremsen. Kann ich diese zwingen auf dem Server zu arbeiten? Bringt das etwas?
Anstelle Sumatra übers Netz den localen e-mail viewer aufrufen? Wobei Sumatra übers netz aufgerufen, für sich alleine keine Tempoprobleme macht.
So gerne würde ich hiermit eine lebhafte Diskussion starten.
Gruß
peter
-
Der Beitrag hat es Euch aber angetan.
Könnte mal jemand das finale Code Ergebniss zu meiner ursprünglichen Filter Anfrage hinzufügen. So dass man das als weniger "fitter" Autoiter auch versteht?
Danke für Eure Mühe
Peter
-
Darauf wird es wohl hinauslaufen. Das wirft nur einige Seiten durcheinander - ich drücke mich gerade darum . Hatte die Hoffnung - das es hier eine Lösung - am trivialen vorbei - gibt.
Apropos wichtig: Zahlen die untereinander stehen sehen eben einfach sch.. aus, wenn sie nicht fluchten...
Gruß Peter
PS.: Ich lasse das noch ein wenig offen - falls noch jemand eine Idee hat..
-
Ich bin dankbar für Eure Hilfe - aber bitte - vergesst das mit der msgbox- Ich mach hier keinen Beitrag auf weil das da nicht rechtsbündig steht!
1) Weil ich das $MB_RIGHT-Flag kenne
2) Weil es mir "egal" ist wie das in der msg box steht.
Ich wollte mit der Box nur darstellen was bei einer prop Ausgabe entsteht.
Danke, ich habe Verstanden das das mit stringformat nicht geht. War ja auch Teil meiner Frage
@ Musashi Dein Beispiel von #8 sollte man mal in die Hilfe einbauen !
Xenobiologist hat schon vor 10 Jahren gemeint das müsse verbessert werden
https://www.autoitscript.com/forum/topic/59403-stringformat/
Gruß Peter
Ps: Und wie bekomme ich das nun rechtsbündig ohne fixen Zeichensatz - den habe ich nicht....