Archiv der Kategorie: Scripting

Die Option (?L) in regulären Ausdrücken

Ich hatte kürzlich das Problem, dass ich mit einem Regulären Ausdruck in Python nach „eü“ gesucht habe und auch Treffer mit „eue“ bekam.
Das sah für mich so aus, als würde der Ausdruck auch die im Deutschen äquivalente Schreibweise „ue“ für „ü“ finden.
Bei der Suche nach einer Möglichkeit, dieses Verhalten abzustellen, bin ich auf die Option „(?L)“ gestoßen.
Die Option (?L) in regulären Ausdrücken weiterlesen

Backup – Verzeichnisse unter Linux und Windows synchronisieren

Unter Linux verwende ich zum Synchronisieren zweier Verzeichnisse rsync wie folgt:

rsync -avh --delete --progress <Quelle> <Ziel> > sync.log &

Die Option –delete sorgt dafür, dass Dateien, die im Ziel-Verzeichnis vorhanden sind und nicht im Quell-Verzeichnis, im Ziel-Verzeichnis gelöscht werden.

Unter Windows verwende ich robocopy:

start /B robocopy <Quelle> <Ziel> /MIR /LOG:sync.log /NP

Die Option /NP sorgt dafür, dass in der Log-Datei keine Fortschrittsinformationen in Form von Prozentangaben enthalten sind.
Das Kommando start /B sorgt dafür, dass der robocopy Befehl im Hintergrund ausgeführt wird.

Textboxen in Word durch den enthaltenen Text ersetzen

Der folgende Code ersetzt alle Textboxen in einem Word-Dokument durch den in ihnen enthaltenen Text.

Ein Problem ist, herauszufinden, wo sich der Anker der Textbox befindet, damit der Text passgenau eingefügt werden kann. In meinem Fall war die Textbox ein Paragraph hinter dem Anker. Deshalb die Zeile

Set Ausgabebereich = oShp.Anchor.Next(Unit:=wdParagraph, Count:=1)

Der Wert für Count muss gegebenenfalls angepasst werden, damit er zu dem verwendeten Anker passt.

Die auskommentierte Zeile war in meinem Fall notwendig, da ich nur den ersten Buchstaben des enthaltenen Texts verwenden wollte.

[sourcecode language=“vb“]
Sub replaceTextBoxByText()
Dim oShp As Shape
Dim dok As Document
Dim Ausgabebereich As Range
Dim t
Dim i As Long
For Each oShp In ThisDocument.Shapes
If oShp.Type = msoTextBox Then
Set Ausgabebereich = oShp.Anchor.Next(Unit:=wdParagraph, Count:=1)
‚t = UCase(Left(oShp.TextFrame.TextRange.Text, 1))
Ausgabebereich.InsertBefore (t)
End If
Next oShp

For i = ActiveDocument.Shapes.Count To 1 Step -1
Set oShp = ActiveDocument.Shapes(i)
If oShp.Type = msoTextBox Then
oShp.Delete
End If
Next i
End Sub
[/sourcecode]