1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. BugFix

Beiträge von BugFix

  • _Excel_BookSaveAs immer mit Fehler

    • BugFix
    • 23. April 2017 um 13:11

    Hi,
    ich nutze selten die Excel-UDF, hier bleibe ich jetzt hängen. Das Workbook läßt sich nicht speichern. Mit $oWorkbook als Parameter sollte das doch funktionieren. Ich bekomme aber immer Fehler, auch bei alternativer Angabe von $oExcel oder $oSheet. Ich verwende Office 2000.

    AutoIt
    #include <Excel.au3>
    
    
    Local $oExcel = _Excel_Open()
    Local $oWorkbook = _Excel_BookNew($oExcel, 1)
    Local $oSheet = $oWorkbook.Worksheets(1)
    
    
    With $oSheet
    	For $i = 0 To 5
    		.Range("A1").Offset(0, $i).Value = 'SPALTE ' & $i+1
    	Next
    EndWith
    
    
    ; speichern als
    
    
    _Excel_BookSaveAs($oWorkbook, @ScriptDir & '\test.xls', Default, True)
    ConsoleWrite("@@ Debug line" & @TAB & @ScriptLineNumber & "   _Excel_BookSaveAs($oWorkbook) --> #Error: " & @error & @TAB & "#Extended: " & @extended & @LF) ; #Error: 5	#Extended: -2147352567
    
    
    ;~ _Excel_BookSaveAs($oExcel, @ScriptDir & '\test.xls', Default, True)
    ;~ ConsoleWrite("@@ Debug line" & @TAB & @ScriptLineNumber & "   _Excel_BookSaveAs($oWorkbook) --> #Error: " & @error & @TAB & "#Extended: " & @extended & @LF) ; #Error: 1	#Extended: 0
    
    
    ;~ _Excel_BookSaveAs($oSheet, @ScriptDir & '\test.xls', Default, True)
    ;~ ConsoleWrite("@@ Debug line" & @TAB & @ScriptLineNumber & "   _Excel_BookSaveAs($oSheet) --> #Error: " & @error & @TAB & "#Extended: " & @extended & @LF) ; #Error: 5	#Extended: 0
    Alles anzeigen
  • [gelöst] SQL - Positionsabfrage von rechts?

    • BugFix
    • 21. April 2017 um 14:15

    Hi,
    in AutoIt lässt sich bei StringInStr() mit -1 im Parameter für Vorkommen von rechts suchen.

    Ich suche für Firebird-SQL eine solche Variante.
    Wir haben leider Adressangaben mit: Vorname Zuname in einem Datenfeld. Manchmal benötige ich aber beides getrennt. Momentan nutze ich folgendes Query:

    SQL
    select 
     substrex( name1, pos(" ",name1)+1, 256 ) NAME,
     substrex( name1, 1, pos(" ",name1)-1 ) VORNAME
    from 
     kunden 
    where 
     kundennr = 10000

    Interne Funktionen:
    substrex ( sString, iStartPos, iCount ) gibt iCount Zeichen ab iStartPos zurück
    pos ( sSearch, sString) gibt Integer Position von sSearch zurück

    Ich kann somit nur das erste Leerzeichen verwerten. Für viele Namen ist das ausreichend, aber wenn z.B. Doppelvornamen ohne Bindestrich existieren oder auch ein Titel, dann gehts in die Hose. Eine bessere Treffergröße hätte ich bei Abfrage des letzten Leerzeichens.
    Gibt es evtl. Workarounds, die das StringInStr simulieren können?
    Ich hatte schon überlegt (mangels Möglichkeit von Schleifen) eine gestaffelte Abfrage zu erstellen, die die Leerzeichenposition des letzten Querys als Start im nächsten nimmt. Mehr als 5 Leerzeichen sind nicht zu erwarten, also wäre das auch nicht zu verschachtelt - aber wie kann ich anweisen, dass bei Positionsergebnis 0 auf das Ergebnis des vorigen Schrittes zugegriffen werden soll?

    Bin für jede Idee dankbar.

    EDIT: Als Hinweis - ich verwende Firebird Version 1.5, die Funktion IIF (funktioniert wie ein Ternärer Operator) gibt es erst ab Version 2.0

  • Nutzungsrechte Skripte

    • BugFix
    • 17. April 2017 um 14:58

    Ich verstehe das weniger als rechtliche Äusserung zum Urheberrechtsschutz als eine Manifestation des Forumsgedankens.
    Ich persönlich finde jede Bestrebung geistiges Eigentum an Software zu manifestieren als pervers.

  • Nutzungsrechte Skripte

    • BugFix
    • 17. April 2017 um 11:20

    Der Passus selbst war ja nur mal ein Gedanke von mir. Dass der noch genau gescheckt werden sollte ist schon klar.
    Mir ging es eigentlich erst mal darum zu wissen, ob so eine Erklärung in den Forenregeln auch Zustimmung findet. Dann kann man das in der "Leitung" detailliert betrachten.

  • Nutzungsrechte Skripte

    • BugFix
    • 17. April 2017 um 10:09

    Hallo @all,
    in diesem Thread wurde die Frage nach den Rechten an Skripten gestellt.
    Meine Sichtweise dazu (die keine juristische Relevanz hat) habe ich dort beschrieben. Ich halte es für überlegenswert, hier einen Rahmen der Rechtssicherheit zu schaffen, indem in den Forenregeln ein Passus aufgenommen wird, der die von uns für das Forum gewünschte Vorgehensweise darlegt.

    Vorstellen könnte ich mir so etwas:

    Mit Anerkennung der Forenregeln erklärst du dich einverstanden, dass von dir veröffentlichte Skripte ohne Einschränkung von jedermann, unter Angabe des Autors, genutzt werden können. Für den Fall, dass die Nutzung Einschränkungen unterliegen soll (spezielle Lizenz), ist dieses zum Zeitpunkt der Veröffentlichung explizit anzugeben.

    Meiner Meinung nach ist damit dem wohl überwiegenden Grundgedanken einer freien Nutzung entsprochen und trotzdem die Möglichkeit gegeben, bei Bedarf anders zu verfahren.

    Wie steht ihr dazu? Ich füge mal eine Umfrage ein für einen Monat.

  • Wer hat eigentlich die "Rechte" an veröffentlichen Skripten?

    • BugFix
    • 17. April 2017 um 09:52

    @olfibits
    Meine Betrachtung ist natürlich keine juristische Einschätzung. - Aber ich denke, wir sollten vielleicht diesen Optionsgedanken in unsere Forenregeln mit aufnehmen.

  • Wer hat eigentlich die "Rechte" an veröffentlichen Skripten?

    • BugFix
    • 16. April 2017 um 21:19

    Ich sehe das ein wenig, wie das Opt-In / Opt-Out Problem.
    Die Sprache Autoit als solche ist freigegeben für jegliche Art der Nutzung. Diesen Grundgedanken sehe ich somit auch erst mal bei den veröffentlichten UDF. Sollte der Autor etwas gegen eine freie Nutzung haben, sollte er diese Option von vornherein bekannt geben.

  • Kleines Programm zum XML einlesen und Werte ändern

    • BugFix
    • 6. April 2017 um 21:58

    Es ist mehr als unhöflich, seine Posts in einem Forum zu löschen! Habe deshalb wieder alles hergestellt und schließe den Thread hiermit als Schutz vor erneutem Löschversuch (weitere Posts waren ja nicht geplant).

  • Toolbar und Rebar

    • BugFix
    • 6. April 2017 um 21:44

    Ich habe mal mit den ReBar-Funktionen gespielt, war aber wenig begeistert. Wenn ich eine derartige Optik/Funktionalität benötige, bastele ich mir das selber aus Icon zusammen.

  • ExtractAssociatedIcon, ExtractIconExW, ExtractIcon mit Autoit3

    • BugFix
    • 1. April 2017 um 17:58

    Vielleicht kannst du ja auch den IconFileScanner von Holger Kotsch verwenden. Nutze ich immer, um mir die Icon in exe/dll anzusehen.

    Dateien

    IconFileScanner.au3 13,12 kB – 382 Downloads
  • GuiCtrlsetdata Problem

    • BugFix
    • 1. April 2017 um 13:16
    Zitat von NO1 :-)

    bei Date gibts kein HH:mm:ss

    Uhrzeit ist selbstverständlich ein Bestandteil des Date-Ctrl. Ob du es nutzt oder nicht liegt am Style, den du setzt.

  • GuiCtrlsetdata Problem

    • BugFix
    • 1. April 2017 um 13:12

    Du brauchst es doch nur beim Setzen in das Format wandeln. Mach es so:

    AutoIt
    Func _SetDateDEtoDateCtrl($ID, $sDateDE)
    	Switch StringLen($sDateDE)
    		Case 10
    			GUICtrlSetData($iID, StringRegExpReplace($sDateDE, '(\d{2})\.(\d{2})\.(\d{4})', '$3/$2/$1')         ; ohne Uhrzeit
    		Case Else
    			GUICtrlSetData($iID, StringRegExpReplace($sDateDE, '(\d{2})\.(\d{2})\.(\d{4}) (.+)', '$3/$2/$1 $4') ; mit Uhrzeit
    	EndSwitch
    EndFunc
  • GuiCtrlsetdata Problem

    • BugFix
    • 1. April 2017 um 09:12

    Du machst eigentlich nichts falsch - da ist ein Fehler in der Hilfe

    Zitat von Hilfe zu GuiCtrlSetData

    For Date controls:
    The date and time is in the format defined by the regional
    settings. GUICtrlRead() use the same default
    format.

    Erstellst du ein Date Ctrl mit
    $ID = GUICtrlCreateDate(....$DTS_SHORTDATEFORMAT)
    und setzt den Style auf
    GUICtrlSendMsg($ID, $DTM_SETFORMATW, 0, "dd.MM.yyyy HH:mm:ss")
    erhältst du mit GuiCtrlRead($ID) das Datum als "01.04.2017 08:55:21"

    Gemäß der Hilfe zu GuiCtrlSetData müsstest du als genau in der Form auch das Datum setzen können - geht aber nicht.
    Erforderlich ist immer das Format "yyyy/MM/dd HH:mm:ss" - und dann klappt es auch.

  • Tool: Datei(en) - Setzen von Datum Create/Modified

    • BugFix
    • 30. März 2017 um 10:59

    Neu v0.3

  • PDF ´s automatisch umbennen

    • BugFix
    • 28. März 2017 um 16:26

    Wie erstellst du die PDF?
    Falls du den PDFCreator verwendest, kannst du dort etliche Parameter für die Erstellung festlegen, auch Namensabhängigkeiten.


    Edit:
    Mir fällt gerade ein, dass wir vor Jaaaahren dasselbe Thema hatten: https://autoit.de/index.php/Thre…8171#post258171

    Noch was aus dem EN-Forum mit der zlib.dll: https://www.autoitscript.com/forum/topic/160718-code-to-extract-plain-text-from-a-pdf-file/?do=findComment&comment=1166528

  • String in Buchstaben aufteilen und jeden Buchstaben einzeln ersetzen?

    • BugFix
    • 28. März 2017 um 09:04

    Ich würde _StringRegexReplace_Callback (von @Taz77) verwenden - ist auch die schnellste Variante:

    Edit: Gloß-/Kleinschreibung hatte ich nicht beachtet - nun korrigiert.

    AutoIt
    Local $sText = "Das ist ein Test"
    
    
    _StringRegExpReplace_Callback($sText, "([aei])", "_MyCallback('$1')")
    ConsoleWrite("@@ Debug line" & @TAB & @ScriptLineNumber & "   var: $sText --> " & $sText & @LF)
    
    
    
    
    Func _MyCallback($_s)
    	If $_s == "a" Then
    		Return ":regional_indicator_a:"
    	ElseIf $_s == "e" Then
    		Return ":regional_indicator_e:"
    	ElseIf $_s == "i" Then
    		Return ":regional_indicator_i:"
    	Else
    		Return $_s
    	EndIf
    EndFunc
    
    
    
    
    ; #FUNCTION# ====================================================================================================================
    ; Name ..........: _StringRegExpReplace_Callback
    ; Description ...: Replaces ByRef all matches in a string by manipulation of the matches in a callback function
    ; Parameters ....: $sString    String to manipulate
    ; ...............: $sPattern   RegExp pattern for the match
    ; ...............: $sCallback  Callback function as string, i.e. "MyCallback('$1')" -- '$1' represents the match
    ; .....optional..: $sBefore    String to insert before the manipulated match
    ; .....optional..: $sAfter     String to insert after the manipulated match
    ; Return values .: Success     1
    ; ...............: Failure     0  set error = 1
    ; Author ........: Taz77
    ; ===============================================================================================================================
    Func _StringRegExpReplace_Callback(ByRef $sString, $sPattern, $sCallback, $sBefore = '', $sAfter = '')
    	$sString = Execute("'" & StringRegExpReplace(StringReplace($sString, "'", Chr(26), 0, 2), $sPattern, $sBefore & "'&" & $sCallback & "&'" & $sAfter) & "'")
    	If @error Then
    		ConsoleWrite('_StringRegExpReplace_Callback error! Pattern: "' & $sPattern & '", Callback: "' & $sCallback & '"' & @LF)
    		Return SetError(1,0,0)
    	EndIf
    	$sString = StringReplace($sString, Chr(26), "'", 0, 2)
    	Return 1
    EndFunc  ;==>_StringRegExpReplace_Callback
    Alles anzeigen
  • VBA / VBS Dateien

    • BugFix
    • 27. März 2017 um 14:24

    Nun teste mal, ob du das Objekt mit AutoIt erstellen kannst:
    VBA
    Set oBO_PFSP = Application.createBO("PFSP")
    AutoIt
    $oBO_PFSP = ObjCreate("PFSP")
    prüfen ob Objekt erstellt wurde: MsgBox(0, 'Objekt', 'Objekt erstellt: ' & (IsObj($oBO_PFSP ) ? 'JA' : 'NEIN'))


    P.S.
    Wird wohl fehlschlagen. PSIpenta verwendet eigene Objekte, die Dokumentation dazu ist nicht (mehr?) zugänglich. Wende dich mal an deren Support, die mögen doch ein Manual mit den genutzten Objekten, Methoden und Eigenschaften zur Verfügung stellen und natürlich auch eine Beschreibung des Objektaufrufs.

  • VBA / VBS Dateien

    • BugFix
    • 27. März 2017 um 14:08
    Zitat von Sonderbaar

    Wäre es irgendwie möglich diesen VBA / VBS Code aus Autoit heraus aufzurufen?

    In den meisten Fällen läßt sich VBA-Code direkt mit den verwendeten Objekten nach AutoIt portieren. Bedingung: AutoIt muß auf das Objekt zugreifen können. Schau dir mal ObjCreate ObjGet an. Wenn du nicht voran kommst: Poste den VBA-Code hier.

  • Problem mit 2ter GUI

    • BugFix
    • 27. März 2017 um 11:18
    Zitat von Hingo

    doch wofür ist <> -3 da?

    -3 ist das Event $GUI_EVENT_CLOSE, es hat nur niemand Lust die Konstante hinzuschreiben, weil man sich -3 so leicht merken kann. ;)

  • Probleme mit _Excel_RangeRead --> unterschiedliche Inhalte erfassen

    • BugFix
    • 27. März 2017 um 10:24

    Welchen Inhalt hat $aCelle[3]? Und wieso verwendest du einen festen Index, dann ist doch das Array sinnlos und du kannst von vornherein mit einem Fixwert arbeiten?
    Hast du dir direkt nach _Excel_RangeRead mal den @error ausgeben lassen? Immerhin stehen 8 mögliche Fehlerursachen zur Verfügung.

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™