Antworten / Aufrufe | Themen mit dem Stichwort tagesdatum | |
---|---|---|
![]() |
0 Antworten 7764 Aufrufe |
Skript zum Einfügen von Autotext |
![]() |
0 Antworten 16356 Aufrufe |
Bei Textdateien automatisch Datum und Zeit einfügen. Begonnen von OCtopus
25. April 2009, 11:37:59 Ein neuer Tip der ComputerBild 10/2009 Wenn man am Anfang einer Textdatei ".LOG" (auf Großschreibung achten!) einträgt, speichert NotePad und WordPad bei jeder neuen Eintragung automatisch in die nächste Zeile Zeit und Datum des neuen Eintrags. Das sieht dann so aus: [code].LOG Hallo 11:24 25.04.2009 Bello 11:24 25.04.2009 Cello 11:25 25.04.2009 Dello 11:26 25.04.2009 [/code] Wenn man das ".LOG" wieder löscht, endet auch die Protokollierungsfunktion wieder. Ist doch ne schöne Sache. Davon hatte ich noch nie gehört... |
http://www.autohotkey.com/download/
Ihr kopiert das Skript in eine Datei mit der Endung "ahk". Eine fertige Datei "Makros.ahk" ist angehängt. Wenn Autohotkey installiert ist, muß das Skript nur doppelgeklickt werden. Es kann auch automatisch gestartet werden, wenn Ihr das Skript (oder eine Verknüpfung) in den Autostart-Ordner legt.
[code]
/*
Der Autotext kann in jeder Textdatei mit folgendem Format enthalten sein:
[Autotext]
n=nicht
mfg=Mit freundlichen Grüßen^a^aMax Meier
mvH=Mit vorzüglicher Hochachtung^a^a~MM~
hav=Hochachtungsvoll^a^a~HH~
MM=Max Meier
HH=Hans^tHuber
In dieser Datei können folgende Besonderheiten verwendet werden (s. Beispiele oben):
^a = Absatz
^t = Tabulator
~xx~ = Verweis auf einen anderen Autotext-Eintrag
Die Datei kann in Zeile 26 des Skripts eingetragen werden (voreingestellt: "C:\Zwi\Makros.txt").
Verwendung:
Ihr schreibt in den Editor die Kurzbezeichnung des Autotexteintrags (z. B. "mfg").
Das Skript liest mit <Alt-F3> diese Kurzbezeichnung aus und schreibt an diese Stelle
den Autotext. Wenn der entsprechende Autotext nicht vorhanden ist bleibt die Kurzbezeichnung (markiert) stehen.
*/
; Fügt Makros aus Makros.txt vor der aktuellen Cursorposition ein.
; ShortCut: <Alt+F3>
~!F3::
; Als <MakroDat> kann hier kann jeder andere Dateiname in jedem anderen Ordner verwendet werden:
MakroDat := "C:\Zwi\Makros.txt"
; Markiert die Kurzbezeichnung:
IniErg := PreSelection2Makro(MakroDat)
; Fügt jetzt die Ersetzung ein.
SendInput, %IniErg%
return
;******************************************************************************
; Ersetzt einen <EString> durch einen Makrostring aus <MakroDat>:
Ersetzung(EString, MakroDat)
{
; Ersetzt den ermittelten String.
; Holt die Ersetzung:
IniRead, IniErg, %MakroDat%, Autotext, %EString%, %A_Space%
; Ersetzt alle Strings zwischen Tilden mit weiteren Ersetzungsstrings.
LOOP ; Sucht alle Vorkommen von "~"
{
StringGetPos, Stelle1, IniErg,~
IF Stelle1<0
Break
StringGetPos, Stelle2, IniErg,~, L2
Abfrage := SubStr(IniErg, Stelle1+2, Stelle2-Stelle1-1)
IniRead, TildeErg, %MakroDat%, Autotext, %Abfrage%, %A_Space%
StringReplace, IniErg, IniErg, ~%Abfrage%~ , %TildeErg%, All
}
; Ersetzt Absatzzeichen (^a) etc. mit AHK-typischen Befehlen.
StringReplace, IniErg, IniErg,^a,`n, All
StringReplace, IniErg, IniErg,^t,{TAB}, All
Return IniErg
}
;******************************************************************************
; Ermittelt das letzte Wort vor der aktuellen Cursorposition:
PreSelection()
{
; Sichert den Inhalt des Clipboards und leert das Clipboard.
AlterClipboardInhalt := ClipboardAll ; Sichern des Inhaltes von Clipboard
Clipboard =
; 1. Teil: Ermittelt den zu ersetzenden String.
Länge := 0
SonderZ := ".,?,;"
LOOP ; Ermittelt das maßgebliche ganz Wort vor der aktuellen Cursoposition
{
Send, +{LEFT} ; Ein makiertes Zeichen nach links
Auswahl := Selection(true) ; ermittelt die aktuelle Markierung
StringLeft, Links, Auswahl, 1 ; Das äußerste linke Zeichen der Markierung
CharNr := ASC(Links)
IsSonderZ := false
IF Links in ä,ö,ü,Ä,Ö,Ü,ß
IsSonderZ := true
; Steigt aus bei Leerzeichen, Sonderzeichen, Absatzzeichen etc.
; Es gelten nur Ziffern, Buchstaben und Umlaute:
IF NOT ((CharNr>=48 AND CharNr<=57) OR (CharNr>=65 AND CharNr<=90) OR (CharNr>=97 AND CharNr<=122) OR IsSonderZ)
GoTo Zurück
; Wenn es nicht mehr weiter nach Links geht (Dateianfang)
IF StrLen(Auswahl)=Länge
GoTo Fertig
StringLen, Länge, Auswahl
}
Zurück:
; Geht wieder eine Cursorposition nach Rechts:
Send, +{RIGHT}
Fertig:
; Ermittelt die maßgebliche jetzt aktuelle Markierung:
Auswahl := Selection(true)
; Zurücksichern des alten Clipboardinhalts:
ClipBoard := AlterClipboardInhalt ; Alten Inhalt des Clipboards wiederherstellen
Return Auswahl
}
;******************************************************************************
; Kombination aus PreSelection() und Ersetzung()
PreSelection2Makro(MakroDat)
{
; Ermittelt den zu ersetzenden String:
Auswahl := PreSelection()
; Ersetzt den ermittelten String:
IniErg := Ersetzung(Auswahl, MakroDat)
Return IniErg
}
;******************************************************************************
; Ermittelt den aktuell markierten Text, die aktuell markierte Datei etc.:
Selection(OhneSichern = false, Warten = 5)
{
IF NOT OhneSichern
AlterClipboardInhalt := ClipboardAll ; Sichern des Inhaltes von Clipboard
Clipboard =
Send ^c ; Kopiert die Datei
ClipWait, %Warten% ; Warte auf neuen Inhalt im Clipboard. 5 wg. Netzlaufwerken, die ggf. langsamer sind.
RückG := ClipBoard ; Speichern des Namens zur weiteren Verarbeitung
IF NOT OhneSichern
ClipBoard := AlterClipboardInhalt ; Alten Inhalt des Clipboards wiederherstellen
Return RückG
}
[/code]