Es soll aber nur dann etwas geschehen, wenn ich den Button anklicke.
Ich verstehe nicht wo das Problem sein soll. Wenn du das, was passieren soll, dem Button zuordnest, brauchst du doch kein Label-Gedöns und irgendwelche Abfragen.
Es soll aber nur dann etwas geschehen, wenn ich den Button anklicke.
Ich verstehe nicht wo das Problem sein soll. Wenn du das, was passieren soll, dem Button zuordnest, brauchst du doch kein Label-Gedöns und irgendwelche Abfragen.
Auf Anhieb kann ich nicht sagen wo der Schuh drückt.
Aber eine Frage:
Du setzt vor dem PDF-Druck den PDF-Printer als Standarddrucker. Warum sendest du den Druckauftrag dann trotzdem nochmals gezielt an den Drucker ab? Der ist doch dann bereits Default.
Ich verwende für PDF immer den PDFCreator. Hat eine API-Referenz, ist auch schon im Forum zu einer UDF umgesetzt und die Settings sind so vielfältig, dass kein Wunsch offen bleibt. Und Probleme mit der Formatdarstellung hatte ich bisher nie.
schlussendlich mit der Entertaste auszuführen. Ich hatte zu Anfangs nicht daran gedacht. Ist das denn noch umsetzbar?
Kein Problem, einfach einen ENTER-Dummy hinzufügen zum Auslösen des Buttons der aktuell den Fokus hat:
$hGui = GUICreate('Test')
$Button_1 = GUICtrlCreateButton('1', 10, 10, 30, 20)
$Button_2 = GUICtrlCreateButton('2', 50, 10, 30, 20)
$Button_3 = GUICtrlCreateButton('3', 90, 10, 30, 20)
$Button_4 = GUICtrlCreateButton('4', 130, 10, 30, 20)
$Button_5 = GUICtrlCreateButton('5', 170, 10, 30, 20)
$Button_6 = GUICtrlCreateButton('6', 210, 10, 30, 20)
$Button_7 = GUICtrlCreateButton('7', 10, 50, 30, 20)
$Button_8 = GUICtrlCreateButton('8', 50, 50, 30, 20)
$Button_9 = GUICtrlCreateButton('9', 90, 50, 30, 20)
$Dummy_Up = GUICtrlCreateDummy()
$Dummy_Down = GUICtrlCreateDummy()
$Dummy_Left = GUICtrlCreateDummy()
$Dummy_Right = GUICtrlCreateDummy()
$DummyEnter = GUICtrlCreateDummy()
Global $iFocusCurrent = $Button_1
ControlFocus($hGui, '', $Button_1)
Global $aAccelerators[5][2] = [['{UP}',$Dummy_Up],['{DOWN}',$Dummy_Down],['{LEFT}',$Dummy_Left],['{RIGHT}',$Dummy_Right],['{ENTER}',$DummyEnter]]
GUISetAccelerators($aAccelerators, $hGui)
GUISetState()
While True
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $Dummy_Up
_SetFocus(0,-1)
Case $Dummy_Down
_SetFocus(0,1)
Case $Dummy_Left
_SetFocus(-1,0)
Case $Dummy_Right
_SetFocus(1,0)
Case $DummyEnter
ControlClick($hGui, '', ControlGetFocus($hGui))
Case $Button_1,$Button_2,$Button_3,$Button_4,$Button_5,$Button_6,$Button_7,$Button_8,$Button_9
ConsoleWrite('Clicked: ' & ControlGetText($hGui, '', $nMsg) & @CRLF)
EndSwitch
WEnd
Func _SetFocus($Spalte, $Zeile)
Local Static $aButton[2][6] = [[$Button_1,$Button_2,$Button_3,$Button_4,$Button_5,$Button_6],[$Button_7,$Button_8,$Button_9]]
Local Static $iCurrentLine = 0, $iCurrentRow = 0
$iCurrentLine += $Zeile
$iCurrentLine = $iCurrentLine > 2 ? 2 : ($iCurrentLine < 0 ? 0 : $iCurrentLine)
$iCurrentRow += $Spalte
If $iCurrentLine = 0 Then
$iCurrentRow = $iCurrentRow > 5 ? 5 : ($iCurrentRow < 0 ? 0 : $iCurrentRow)
ElseIf $iCurrentLine = 1 Then
$iCurrentRow = $iCurrentRow > 2 ? 2 : ($iCurrentRow < 0 ? 0 : $iCurrentRow)
EndIf
ControlFocus($hGui, '', $aButton[$iCurrentLine][$iCurrentRow])
EndFunc
Alles anzeigen
Wenn ich jetzt aber die Pfeiltasten drücke, verschwindet meine Gui wie durch ein Lufthauch weggeblasen.
Ich hatte den Code nochmal editiert, mit einer Fehlerroutine. Wenn du versuchst einen nicht existierenden Arraybereich anzusprechen stürzt natürlich das Programm ab.
Für deinen Fall muss dass denn so aussehen:
$hGui = GUICreate('Test')
$Button_1 = GUICtrlCreateButton('1', 10, 10, 30, 20)
$Button_2 = GUICtrlCreateButton('2', 50, 10, 30, 20)
$Button_3 = GUICtrlCreateButton('3', 90, 10, 30, 20)
$Button_4 = GUICtrlCreateButton('4', 130, 10, 30, 20)
$Button_5 = GUICtrlCreateButton('5', 170, 10, 30, 20)
$Button_6 = GUICtrlCreateButton('6', 210, 10, 30, 20)
$Button_7 = GUICtrlCreateButton('7', 10, 50, 30, 20)
$Button_8 = GUICtrlCreateButton('8', 50, 50, 30, 20)
$Button_9 = GUICtrlCreateButton('9', 90, 50, 30, 20)
$Dummy_Up = GUICtrlCreateDummy()
$Dummy_Down = GUICtrlCreateDummy()
$Dummy_Left = GUICtrlCreateDummy()
$Dummy_Right = GUICtrlCreateDummy()
Global $iFocusCurrent = $Button_1
ControlFocus($hGui, '', $Button_1)
Global $aAccelerators[4][2] = [['{UP}',$Dummy_Up],['{DOWN}',$Dummy_Down],['{LEFT}',$Dummy_Left],['{RIGHT}',$Dummy_Right]]
GUISetAccelerators($aAccelerators, $hGui)
GUISetState()
While True
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $Dummy_Up
_SetFocus(0,-1)
Case $Dummy_Down
_SetFocus(0,1)
Case $Dummy_Left
_SetFocus(-1,0)
Case $Dummy_Right
_SetFocus(1,0)
Case $Button_1,$Button_2,$Button_3,$Button_4,$Button_5,$Button_6,$Button_7,$Button_8,$Button_9
ConsoleWrite('Clicked: ' & ControlGetText($hGui, '', $nMsg) & @CRLF)
EndSwitch
WEnd
Func _SetFocus($Spalte, $Zeile)
Local Static $aButton[2][6] = [[$Button_1,$Button_2,$Button_3,$Button_4,$Button_5,$Button_6],[$Button_7,$Button_8,$Button_9]]
Local Static $iCurrentLine = 0, $iCurrentRow = 0
$iCurrentLine += $Zeile
$iCurrentLine = $iCurrentLine > 2 ? 2 : ($iCurrentLine < 0 ? 0 : $iCurrentLine)
$iCurrentRow += $Spalte
If $iCurrentLine = 0 Then
$iCurrentRow = $iCurrentRow > 5 ? 5 : ($iCurrentRow < 0 ? 0 : $iCurrentRow)
ElseIf $iCurrentLine = 1 Then
$iCurrentRow = $iCurrentRow > 2 ? 2 : ($iCurrentRow < 0 ? 0 : $iCurrentRow)
EndIf
ControlFocus($hGui, '', $aButton[$iCurrentLine][$iCurrentRow])
EndFunc
Alles anzeigen
Als Anregung kann dir das dienen: IntelliSenseBox
Kannst du so lösen:
$hGui = GUICreate('Test')
$Button_A = GUICtrlCreateButton('A', 10, 10, 30, 20)
$Button_B = GUICtrlCreateButton('B', 50, 10, 30, 20)
$Button_C = GUICtrlCreateButton('C', 90, 10, 30, 20)
$Button_D = GUICtrlCreateButton('D', 10, 50, 30, 20)
$Button_E = GUICtrlCreateButton('E', 50, 50, 30, 20)
$Button_F = GUICtrlCreateButton('F', 90, 50, 30, 20)
$Button_G = GUICtrlCreateButton('G', 10, 90, 30, 20)
$Button_H = GUICtrlCreateButton('H', 50, 90, 30, 20)
$Button_I = GUICtrlCreateButton('I', 90, 90, 30, 20)
$Dummy_Up = GUICtrlCreateDummy()
$Dummy_Down = GUICtrlCreateDummy()
$Dummy_Left = GUICtrlCreateDummy()
$Dummy_Right = GUICtrlCreateDummy()
ControlFocus($hGui, '', $Button_A)
Global $aAccelerators[4][2] = [['{UP}',$Dummy_Up],['{DOWN}',$Dummy_Down],['{LEFT}',$Dummy_Left],['{RIGHT}',$Dummy_Right]]
GUISetAccelerators($aAccelerators, $hGui)
GUISetState()
While True
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3
Exit
Case $Dummy_Up
_SetFocus(0,-1)
Case $Dummy_Down
_SetFocus(0,1)
Case $Dummy_Left
_SetFocus(-1,0)
Case $Dummy_Right
_SetFocus(1,0)
Case $Button_A, $Button_B, $Button_C, $Button_D, $Button_E, $Button_F, $Button_G, $Button_H, $Button_I
ConsoleWrite('Clicked: ' & ControlGetText($hGui, '', $nMsg) & @CRLF)
EndSwitch
WEnd
Func _SetFocus($Spalte, $Zeile)
Local Static $aButton[3][3] = [[$Button_A,$Button_B,$Button_C],[$Button_D,$Button_E,$Button_F],[$Button_G,$Button_H,$Button_I]]
Local Static $iCurrentLine = 0, $iCurrentRow = 0
$iCurrentLine += $Zeile
$iCurrentLine = $iCurrentLine > 2 ? 2 : ($iCurrentLine < 0 ? 0 : $iCurrentLine)
$iCurrentRow += $Spalte
$iCurrentRow = $iCurrentRow > 2 ? 2 : ($iCurrentRow < 0 ? 0 : $iCurrentRow)
ControlFocus($hGui, '', $aButton[$iCurrentLine][$iCurrentRow])
EndFunc
Alles anzeigen
Versuchs mal mit absolutem Pfad. Relativer Pfad in der VM könnte evtl. ein Problem sein. Sonst fällt mir da auch nix ein.
Wenn du einen Button mit eigenen Eigenschaften haben möchtest, kannst du diesen aus einem Label nachbilden. Da hast du dann recht große Spielmöglichkeiten.
Ich poste hier mal ein altes Beispielskript mit lauter farbigen Button, die aus Labeln erstellt werden, sich aber auch optisch wie Button verhalten.
Vielleicht gibt dir das einen Ansatz.
#include <GUIConstants.au3>
; 15 Colored Buttons Example.au3
Dim $Key[16]
Local $Row = 5, $Column = 5, $Color = -1
Local $BtnColors[16] = [15, '0xff0000', '0x00ff00', 'x0000ff', '0xffff00', '0xffffff', '0xffaa00', '0xaaff00', '0x00aaff', '0xffffaa', '0xdddddd', '0xffee00', '0xccff00', '0x00ddff', '0xffeedd', '0x000000']
GUICreate("15 Colored Buttons Example", 300, 100, 100, 100)
For $x = 1 To 15
$ret = _GUICtrlCreateColorButton("test" & $x, $Column, $Row, 50, 20, $BtnColors[$x], $Color)
$Key[$x] = $ret[0]
$Column += 60
If $Column > 245 Then $Column = 5
If $Column == 5 Then $Row += 30
If $x == 14 Or $Column == 125 Then
$Color = '0xffffff'
Else
$Color = ''
EndIf
Next
GUISetState()
Do
$msg = GUIGetMsg()
For $x = 1 To 15
If $msg == $Key[$x] Then
GUICtrlSetStyle($Key[$x], $SS_ETCHEDFRAME)
MsgBox(0, "colorbutton pressed", "You pressed cb" & $x, 1)
GUICtrlSetStyle($Key[$x], $SS_NOTIFY + $SS_GRAYRECT)
ExitLoop
EndIf
Next
Until $msg = $GUI_EVENT_CLOSE
;=============================================================================
;
; Function Name: _GUICtrlCreateColorButton()
;
; Description: Creates a colored Button
;
; Syntax: _GUICtrlCreateColorButton($text, $left, $top, $width, $height,$bkcolor[,$fontcolor] _
; [,$fontsize][,$fontweight][,$fontattrib][,$fontname])
;
; Parameter(s); $text = The text of the control
; $left = The left side of the control
; $top = The top of the control
; $width = The width of the control
; $height = The height of the control
; $bkcolor = Backgroundcolor of the control
; $fontcolor = [optional] Fontcolor of the control
; $fontsize = [optional] Schriftgröße (default 9)
; $fontweight = [optional] Zeichenbreite (default 400)
; $fontattrib = [optional] Schriftattribut (kursiv:2 unnterstrichen:4 durchgestrichen:8)
; $fontname = [optional] Schriftfont
;
; Return Value(s): array[1] = used to change colors
; array[0] = notifies GUIGetMsg if user clicks
;
; Author: rakudave <rakudave@gmx.net>
; Erweiterung $fontsize, $fontweight, $fontattrib, $fontname von BugFix
;==========================================================================================
Func _GUICtrlCreateColorButton($text, $left, $top, $width, $height, $bkcolor, $fontcolor = -1, _
$fontsize = 9, $fontweight = 400, $fontattrib = "default", $fontname = "default")
Local $colbut[2]
If $fontcolor == -1 Then $fontcolor = 0x000000
$colbut[0] = GUICtrlCreateLabel("", $left, $top, $width, $height, $SS_BLACKRECT)
GUICtrlCreateLabel("", $left, $top, $width - 1, $height - 1, $SS_WHITERECT)
GUICtrlCreateLabel("", $left + 1, $top + 1, $width - 2, $height - 2, $SS_GRAYRECT)
$colbut[1] = GUICtrlCreateLabel($text, $left + 1, $top + 1, $width - 3, $height - 3, $SS_NOTIFY & $SS_CENTER)
GUICtrlSetBkColor(-1, $bkcolor)
GUICtrlSetColor(-1, $fontcolor)
GUICtrlSetFont(-1, $fontsize, $fontweight, $fontattrib, $fontname)
Return $colbut
EndFunc ;==>_GUICtrlCreateColorButton
Alles anzeigen
Edit: Sehe gerade, dass du dich auf diesen Post bezogen hast. Übrigens ist die Aussage von 2007. Damals gab es noch kein GUICtrlSetColor für Button.
Diese halbschattierte Farbdarstellung hat aber mit der Farbe selbst nichts zu tun, das ist ein reiner Windows-Effekt. Ich hab es noch nicht ausgetestet, aber vielleicht ist dieser Effekt für die Standard-Windows-Farbpalette verfügbar.
Falls das nicht klappt, bleibt die Möglichkeit einen Button aus zwei Labeln abzubilden. das untere etwas dunkler als das obere. Da drüber ein transparentes Label als eigentlichen Button.
Ich komme hierbei auf 525 (bzw. 524 wenn man die erste Zahl nicht mitzählt).
Oops, war ein Fehler, in falscher Zeile addiert - nun korrigiert, spart gleich 4 Sekunden. ![]()
Edit: Da hatte ich die Addition der Terme eine Zeile zu früh - nun passt es.
Meine Variante:
Local $iCalc = 999999
Local $iMax, $iLen = 1
Local Const $ARRAYLIMIT = $iCalc +1
Local $aTerm[$ARRAYLIMIT] ; [Index]=Länge Folge
Local $hTimer = TimerInit()
For $i = 1 To $iCalc
If $aTerm[$i] Then ContinueLoop
$iTmp = _GetCollatz($i, $aTerm)
$aTerm[$i] = $iTmp
If $iTmp > $iLen Then
$iLen = $iTmp
$iMax = $i
EndIf
Next
ConsoleWrite(StringFormat('%.3f s %sLängste Folge bei Zahl: %i = %i Terme', TimerDiff($hTimer)/1000, @LF, $iMax, $iLen) & @LF)
#cs
39.898 s
Längste Folge bei Zahl: 837799 = 524 Terme
#ce
Func _GetCollatz($i, ByRef $aTerm)
Local $iTerm = 0
Do
If $i < $ARRAYLIMIT And $aTerm[$i] Then Return $iTerm + $aTerm[$i]
$iTerm += 1
$i = Mod($i,2) ? (3*$i+1) : ($i/2)
Until $i = 1
Return $iTerm
EndFunc
Alles anzeigen
Jedoch hab ich nun das Problem mit Windows8.1 64 Bit
Genau das ist der springende Punkt: MSDAORA ist eine 32bit-Dll und es gibt keine 64bit-Version. Der Support dafür wurde von M$ auch eingestellt, die verweisen nur noch auf den Oracle-Treiber.
Ich selber habe kein Oracle zur Verfügung und hatte dir deshalb nur ein Bsp. aus dem Web portiert.
Du hattest noch gefragt, was MSDAORA bedeutet, nun das ist der Microsoft OLE DB-Provider für Oracle, ich vermute das ist abgeleitet aus MicroSoftDataAccessORAcle.
Google mal speziell nach MSDAORA, da sollten einige Problemlösungen zu finden sein.
Da Notepad++ genau wie SciTE das Scintilla Modul nutzen, sollte auch der Zugriff identisch möglich sein.
Hier das Interface für SciTE, sollte also analog laufen: SciTE-Interface
Wie man das am besten realisiert muss ich mir erst selber noch überlegen, besonders bei den Feiertagen die sich jährlich um irgendwelche Tage verschieben. Aber im Netz gibt es ja genug Formeln dazu wie z.B. die Osterformel. Ich überlege mir mal wie man das am besten umsetzen kann und was noch alles zu beachten ist. Die Zwischenergebnisse teile ich dir dann mit damit du Anregungen bekommst.
Berechnung für Feiertage (fix und veränderlich, bundeslandspezifisch) liegt schon hier im Forum vor. Leider sind z. Zt. alle Dateianhänge verschwunden, aber ich glaube, dass ich meist den Code im Post auch zusätzlich direkt eingefügt habe. Einfach mal suchen.
Edit: ja, ist im Post - hier: https://autoit.de/index.php/Thre…tID=524#post524
Mir ist gerade eine wesentlich effektivere Methode eingefallen, Wochentag-Zeit in Minuten umzurechnen:
EDIT: Ich habe gleich mal die kpl. Auswertefunktion erstellt.
ConsoleWrite(_GetWorkTime('Sa 19:00', 'So 3:00') & @CRLF) ; Ausgabe: "AZ: 8:00; enthaltene ZZ: 3:00"
Func _DayTime2Min($sDayTime) ; 'Mo 13:30' oder 'Sa 0:15'
Local $aTime = StringSplit(StringTrimLeft($sDayTime, 3), ':')
Return ((StringInStr('MoDiMiDoFrSaSo', StringLeft($sDayTime, 2))-1)/2)*1440 + _
$aTime[1]*60 + $aTime[2]
EndFunc
Func _GetWorkTime($sDayTimeStart, $sDayTimeEnd, $sExtraChargeFirst='So 0:00', $sExtraChargeLast='So 24:00')
Local $iStart = _DayTime2Min($sDayTimeStart), $iEnd = _DayTime2Min($sDayTimeEnd), $iXStart = _DayTime2Min($sExtraChargeFirst)
Local $iXEnd = _DayTime2Min($sExtraChargeLast), $iWorktime = $iEnd - $iStart, $iExtraCharge = 0
Select
Case StringLeft($sDayTimeStart, 2) = 'So' And StringLeft($sDayTimeEnd, 2) = 'Mo' ; So auf Mo ?
$iExtraCharge = $iXEnd - $iStart
$iWorktime += 10080 ; die erste Berechnung hat negatives Ergebnis, da Ende < Anfang ist - Shift um eine Woche nötig
Case $iStart >= $iXStart
$iExtraCharge = $iEnd - $iStart
Case $iStart < $iXStart And $iEnd > $iXStart
$iExtraCharge = $iEnd - $iXStart
EndSelect
Return StringFormat('AZ: %d:%02d; enthaltene ZZ: %d:%02d', Int($iWorktime/60), Mod($iWorktime, 60), Int($iExtraCharge/60), Mod($iExtraCharge, 60))
EndFunc
Alles anzeigen
Das Problem ist doch sicher nicht die Sprachsyntax, sondern die Programmlogik - oder?
So würde ich das in AutoIt angehen:
; Wochentagsbezogene Zeitschiene erstellen
; beginnend Mo = 0, endend So = 10080 (7d * 24h * 60m)
; zuschlaglose Zeit wäre also Mo bis incl. Sa. = 6*24*60 = 8640
Func _DayTime2Min($sDayTime) ; 'Mo 13:30' oder 'Sa 0:15'
Local Const $1d = 1440
Local $iMin
Local $aDays[8] = ['','Mo','Di','Mi','Do','Fr','Sa','So']
Local $aDate = StringSplit($sDayTime, ' ')
For $i = 1 To 7
If $aDays[$i] = $aDate[1] Then
$iMin = ($i-1) * $1d
ExitLoop
EndIf
Next
$iMin += StringLeft($aDate[2], StringInStr($aDate[2], ':')-1) * 60 + StringRight($aDate[2], 2)
Return $iMin
EndFunc
; das folgende kannst du in einer Funktion abarbeiten um zu unterscheiden ob Star-/Endzeit im Zuschlagszeitraum liegen
; Arbeitsbeginn
$sStart = 'Sa 19:00'
$iMinStart = _DayTime2Min($sStart)
; Arbeitsende
$sEnde = 'So 03:00'
$iMinEnde = _DayTime2Min($sEnde)
; Beginn Zuschlagzeit
$sZuschlagStart = 'So 0:00'
$iZuschlStart = _DayTime2Min($sZuschlagStart)
; zuschlagfähige Zeit
$iZuschlagArbeitszeit = $iMinEnde - $iZuschlStart
ConsoleWrite($iZuschlagArbeitszeit & @CRLF) ; = 180
Alles anzeigen
GUICreate('')
$d = GUICtrlCreateDate('2015/04/26', 10, 20)
GUISetState()
While 1
Switch GUIGetMsg()
Case -3
Exit
Case $d
ConsoleWrite(GUICtrlRead($d) & @CRLF)
ConsoleWrite(_ConvertToENDate(GUICtrlRead($d)) & @CRLF)
EndSwitch
WEnd
Func _ConvertToENDate($sDateGE, $fUS=0)
If StringLen($sDateGE) = 10 Then ; short
If $fUS Then ; MM/DD/YYYY
Return StringRegExpReplace($sDateGE, '(\d{2})\.(\d{2})\.(\d{4})', '$2/$1/$3')
Else ; DD/MM/YYYY
Return StringReplace($sDateGE, '.', '/')
EndIf
Else
Local $aWDay[7][2] = [['Montag','Monday'],['Dienstag','Tuesday'],['Mittwoch','Wednesday'],['Donnerstag','Thursday'],['Freitag','Friday'],['Samstag','Saturday'],['Sonntag','Sunday']]
Local $aMonth[12][2] = [['Januar','January'],['Februar','February'],['März','March'],['April','April'],['Mai','May'],['Juni','June'],['Juli','July'], _
['August','August'],['September','September'],['Oktober','October'],['November','November'],['Dezember','December']]
Local $aDate = StringRegExp($sDateGE, '(\w+),\s(\d{2})\.\s([\wä]+)\s(\d{4})', 3)
Local $sWDay, $sMonth
For $i = 0 To 6
If $aWDay[$i][0] = $aDate[0] Then
$sWDay = $aWDay[$i][1]
ExitLoop
EndIf
Next
For $i = 0 To 11
If $aMonth[$i][0] = $aDate[2] Then
$sMonth = $aMonth[$i][1]
ExitLoop
EndIf
Next
If $fUS Then
Return StringFormat('%s, %s %i, %i', $sWDay, $sMonth, $aDate[1], $aDate[3])
Else
Return StringFormat('%s, %i %s %i', $sWDay, $aDate[1], $sMonth, $aDate[3])
EndIf
EndIf
EndFunc
Alles anzeigen
Wenn du es ausliest bekommst du das Ergebnis (je nach eingestelltem Format Short/Long) im Datumslayout des PC.
Ein deutscher PC spuckt im Longformat dann aus: Freitag, 10. April 2015 und im Shortformat 10.04.2015.
Das kannst du doch, wenn du es in eine Datei schreiben willst, einfach umwandeln. Ein paar Stringoperationen, bischen Array und fertig ist der Lack.
Edit:
Wichtig wäre noch welches Englisch du wünscht: EN-englisch oder US-englisch (oder Programmierenglisch?)
Denn das Datum wird beim Programmieren im Format YYYY/MM/DD angegeben - dieses Format ist aber weder in GB noch in US üblich.
Im britischen Englisch steht 5/10/15 für den 5. Oktober 2015, im amerikanischen Englisch für den 10. Mai 2015. Auch das Langformat ist unterschiedlich:
Britisches Englisch: 5(th) (of) October(,) 2015
Amerikanisches Englisch: October (the) 5(th), 2015
Nichts ist verwirrender als Datumsangaben auf englisch, wenn man nicht weiß ob der Autor aus USA oder GB stammt.
In direkter Form, also das Schreiben in einer Auswahl verändert sequenziell auch die anderen Auswahlen, ist mit SciTE nicht möglich, da das Multi-Cursering in SciTE keine getrennten Regionen unterstützt. Sowas geht z. B. mit SublimeText.