Archive for the ‘Programmierung’ Category.
2012-06-24, 21:18
Hier ein kurzes Beispiel, wie man mit Powershell Ordner anlegen kann, deren Namen in einer CSV Datei hinterlegt sind. In der originalen CSV Datei gab es zwei Spalten, per Semikolon getrennt: die Zeilennummer und den Namen. In der ersten Zeile der Datei erwartet Powershell den Spaltennamen, die Datei könnte also so aussehen:
number;foldername
1;AAA
2;BBB
3;CCC
$folders = Import-Csv -Delimiter ";" D:\folders.csv
cd M:\
foreach ($i in $folders){
New-Item -type directory $i.foldername
} |
$folders = Import-Csv -Delimiter ";" D:\folders.csv
cd M:\
foreach ($i in $folders){
New-Item -type directory $i.foldername
}
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Category:
Powershell |
Kommentare deaktiviert für Neue Ordner anlegen per Powershell und CSV-Datei
2012-05-17, 10:40
Dank des kleinen Powershell-Skripts zur Bestimmung des Skript-Pfades (http://uweziegenhagen.de/?p=2066) können wir uns recht einfach ein Skript schreiben, das alle LaTeX Hilfsdateien löscht.
function Get-ScriptDirectory{
$Invocation = (Get-Variable MyInvocation -Scope 1).Value
Split-Path $Invocation.MyCommand.Path
}
$path = (Get-ScriptDirectory)
cd $path
remove-item *.log
remove-item *.lot
remove-item *.lof
remove-item *.toc
remove-item *.gz
remove-item *.aux
remove-item *.nav
remove-item *.out
remove-item *.atfi
remove-item *.vrb
remove-item *.snm
remove-item *.tmp |
function Get-ScriptDirectory{
$Invocation = (Get-Variable MyInvocation -Scope 1).Value
Split-Path $Invocation.MyCommand.Path
}
$path = (Get-ScriptDirectory)
cd $path
remove-item *.log
remove-item *.lot
remove-item *.lof
remove-item *.toc
remove-item *.gz
remove-item *.aux
remove-item *.nav
remove-item *.out
remove-item *.atfi
remove-item *.vrb
remove-item *.snm
remove-item *.tmp
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2012-05-06, 17:21
Ich möchte per Mausklick auf eine Powershell-Datei alle LaTeX Dateien in dem entsprechenden Verzeichnis kompilieren. Dazu muss das Skript das Verzeichnis kennen, in dem es liegt. Auf http://leftlobed.wordpress.com/2008/06/04/getting-the-current-script-directory-in-powershell/ habe ich eben eine Lösung gefunden, die mir diesen Pfad ausgibt, zusammen mit dem Messagebox Code ist dies der erste Schritt zum „TeXe alles“ Skript.
function Get-ScriptDirectory{
$Invocation = (Get-Variable MyInvocation -Scope 1).Value
Split-Path $Invocation.MyCommand.Path
}
$wshshell = new-object -comobject wscript.shell
$Answer = $wshshell.popup((Get-ScriptDirectory),0,"Aktueller Pfad",4) |
function Get-ScriptDirectory{
$Invocation = (Get-Variable MyInvocation -Scope 1).Value
Split-Path $Invocation.MyCommand.Path
}
$wshshell = new-object -comobject wscript.shell
$Answer = $wshshell.popup((Get-ScriptDirectory),0,"Aktueller Pfad",4)
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2012-05-05, 21:23
Vor kurzem wurde ich gebeten, bei der Überprüfung von Ordnern im Dateisystem zu helfen. Ziel war die Ermittlung, wann in bestimmten Unterverzeichnissen einer Dateistruktur Dateien hinzugefügt oder gelöscht werden.
Zur Erläuterung: In C:\abc liegen viele gleichartige Ordner, die alle einen „A-def“ Unterordner haben, der wiederum einen Unterordner „2012“ hat. Für alle in diesen „2012“ Ordnern gefundenen Dateien werden der Dateiname und Zeitstempel in eine CSV Datei geschrieben. Diese kann dann einfach und sehr übersichtlich mit einem Excel-Pivot ausgewertet werden.
# Resette die Ausgabe
Clear-History
Clear-Host
# Ausgabepfad der Datei
$outputpath = "c:\FoundFiles.csv"
# hier liegen die Ordner
cd c:\abc\
# warte x Sekunden bis zum ersten Lauf bzw. zwischen den Läufen.
$waitseconds = 1
# wie oft soll gecheckt werden
$runs = 1
# zähle die Läufe mit
$counter = 0
while($counter -le $runs){
start-sleep -s $waitseconds
$counter++
# Zeitstempel
$timestamp= get-date -uformat "%Y%m%d-%H:%M"
#hole die Liste der Ordner
$folders = gci
foreach ($i in $folders){
# prüfe in den "A-def" Ordnern, ob "2012" vorhanden ist
cd "$i/A-def"
if (!(Test-Path -path "2012")){
# no 2012 folder found
} else {
# lese alle Dateien ein
$files = gci "2012"
foreach ($j in $files){
# Schreibe Dateiname und Zeitstempel in die Datei, überschreibe nicht.
$i.name + "`t" + $timestamp + "`t" + $j.fullname | out-file $outputpath -append -Width 300
}
}
cd c:\abc\
}
} |
# Resette die Ausgabe
Clear-History
Clear-Host
# Ausgabepfad der Datei
$outputpath = "c:\FoundFiles.csv"
# hier liegen die Ordner
cd c:\abc\
# warte x Sekunden bis zum ersten Lauf bzw. zwischen den Läufen.
$waitseconds = 1
# wie oft soll gecheckt werden
$runs = 1
# zähle die Läufe mit
$counter = 0
while($counter -le $runs){
start-sleep -s $waitseconds
$counter++
# Zeitstempel
$timestamp= get-date -uformat "%Y%m%d-%H:%M"
#hole die Liste der Ordner
$folders = gci
foreach ($i in $folders){
# prüfe in den "A-def" Ordnern, ob "2012" vorhanden ist
cd "$i/A-def"
if (!(Test-Path -path "2012")){
# no 2012 folder found
} else {
# lese alle Dateien ein
$files = gci "2012"
foreach ($j in $files){
# Schreibe Dateiname und Zeitstempel in die Datei, überschreibe nicht.
$i.name + "`t" + $timestamp + "`t" + $j.fullname | out-file $outputpath -append -Width 300
}
}
cd c:\abc\
}
}
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2012-04-15, 10:48
Eine Mathematik-Klausur an der Uni Köln hat einigen Staub aufgewirbelt (http://www.spiegel.de/unispiegel/studium/0,1518,827375,00.html), die Aufgaben sind im Spiegel-Artikel verlinkt.
Aufgabe 3 fand ich interessant: Die Anzahl von Posaunen und Trompeten so zu maximieren, dass das Budget von 10’000 Euro eingehalten wird.
Auch ohne groß herum zu rechnen, lässt sich dies leicht in Excel lösen. Man bestimmt einfach die Kosten der verschiedenen Kombinationen aus $x$ Trompeten und $y$ Posaunen und schaut, welche Kombination am nächsten an den 10’000 Euro dran ist. Mit wenigen Zeilen VBA-Code und bedingter Formatierung lässt sich auch leicht eine Planungshilfe gestalten, die bei unterschiedlichen Preisen und anpassbarem Budget die optimale Lösung ausspuckt.
![klausur](http://uweziegenhagen.de/wp-content/uploads/2012/04/klausur-300x158.jpg)
Klausur.xlsm
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2012-04-07, 07:24
Hier eine kurze Zusammenfassung (ausführlich unter http://cran.r-project.org/bin/linux/ubuntu/), wie man unter Ubuntu seine R Installation aktualisiert:
- Import des PGP Keys via
gpg --keyserver keyserver.ubuntu.com --recv-key E084DAB9
- Bereitstellung für apt über
gpg -a --export E084DAB9 | sudo apt-key add -
- Einfügen des CRAN Mirrors in die /etc/apt/sources.list:
deb http://ftp5.gwdg.de/pub/misc/cran/bin/linux/ubuntu oneiric/
sudo apt-get update
sudo apt-get upgrade
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Category:
R |
Kommentare deaktiviert für R unter Ubuntu aktualisieren
2012-04-04, 21:59
Excel stellt leider keine Funktion bereit, um das Vorhandensein einer Formel in einer Zelle zu prüfen. Behelfen kann man sich aber mit einer selbst gestrickten Excel-Funktion (gefunden bei http://www.vbaexpress.com/kb/getarticle.php?kb_id=324):
Option Explicit
Function ISFORMULA(cel As Range) As Boolean
ISFORMULA = cel.HasFormula
End Function |
Option Explicit
Function ISFORMULA(cel As Range) As Boolean
ISFORMULA = cel.HasFormula
End Function
isFormel.xlsm
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
Schlagwörter:
Excel,
VBA Category:
MS Office & VBA |
Kommentare deaktiviert für Excel: Prüfen, ob eine Zelle eine Formel enthält
2012-03-25, 16:06
Hier ein erster Versuch, LaTeX Befehle mit PyParsing zu parsen:
from pyparsing import *
# grammar definition
commandname = Word(alphas)
leftbrace = Literal("{")
rightbrace = Literal("}")
parameter = Word(alphas)
command = Literal("\\") + commandname + leftbrace + parameter + rightbrace
# input string
mystring = "\section{hello}"
# parse input string
print mystring, "->", command.parseString(mystring) |
from pyparsing import *
# grammar definition
commandname = Word(alphas)
leftbrace = Literal("{")
rightbrace = Literal("}")
parameter = Word(alphas)
command = Literal("\\") + commandname + leftbrace + parameter + rightbrace
# input string
mystring = "\section{hello}"
# parse input string
print mystring, "->", command.parseString(mystring)
Beispiel:
\section{hello} -> [‚\\‘, ’section‘, ‚{‚, ‚hello‘, ‚}‘]
Als nächstes werde ich die Grammatik so erweitern, dass auch optionale Parameter geparst werden können. Eine Erweiterung wird dann das Parsing von Key=Value Parametern.
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2012-03-23, 20:58
Aus Interesse heraus hab ich heute versucht, per Excel VBA alle Diagramme eines Excel-Sheets als PDF zu exportieren. Google brachte als ersten Treffer einen Blogeintrag, der mich auf die richtige Fährte brachte: http://cschleiden.wordpress.com/2009/09/28/howto-export-excel-charts-as-pdf-to-include-in-latex-document/. Dieser Eintrag, zusammen mit einem aufgezeichneten Makro eines manuellen Export-Vorgangs und einige Codeschnipsel von http://www.vbaexpress.com/kb/getarticle.php?kb_id=482 haben mich innerhalb von 20 Minuten zu dem folgenden VBA Code gebracht:
Sub ExportAllCharts()
If ActiveSheet.ChartObjects.Count > 0 Then
For Each Diagram In ActiveSheet.ChartObjects
ActiveSheet.ChartObjects(Diagram.Name).Activate
Filename = ActiveChart.Name
ActiveChart.Axes(xlValue).MajorGridlines.Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Uwe\Desktop\" & Filename, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Next Diagram
End If
End Sub |
Sub ExportAllCharts()
If ActiveSheet.ChartObjects.Count > 0 Then
For Each Diagram In ActiveSheet.ChartObjects
ActiveSheet.ChartObjects(Diagram.Name).Activate
Filename = ActiveChart.Name
ActiveChart.Axes(xlValue).MajorGridlines.Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
"C:\Users\Uwe\Desktop\" & Filename, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
Next Diagram
End If
End Sub
Was macht dieser Code? Wenn überhaupt Diagramme im aktuellen Worksheet vorhanden sind, dann wird für jedes gefundene Diagramm der Dateiname bestimmt (als Namen des Diagramms, z.B. „Tabelle1 Diagramm 1.pdf“ oder „Tabelle1 Diagramm 2.pdf“) und die Datei auf dem Desktop als PDF abgelegt. Der Code ist noch rudimentär und kann noch beliebig erweitert werden.
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website
2012-02-22, 20:52
Hier ein kurzes Beispiel, wie man mit Python Dateien umbenennt:
- Der Shebang sorgt dafür, dass das Skript unter Linux direkt aufrufbar ist.
- import os lädt das Modul zur Dateiverwaltung, import re das Modul für reguläre Ausdrücke
- path definiert den Pfad, in dem gesucht werden soll
- die folgende Zeile sucht alle Dateien in path
- die darrauffolgende Zeile ermittelt unter diesen Dateien alle diejenigen, die auf „.None“ enden.
- Für jede dieser auf „.None“ endenden Dateien passiert dann folgendes:
- es wird der neue Name bestimmt, also „.None“ durch „.mp4“ ersetzt
- die Datei wird umbenannt
#! /usr/bin/python
import os
import re
path="/some/dir/"
files=os.listdir(path)
files = [ f for f in files if re.search('.None$', f, re.I)]
for fname in files:
newname=fname.replace(".None",".mp4")
os.rename(path + "/" + fname, path + "/" + newname) |
#! /usr/bin/python
import os
import re
path="/some/dir/"
files=os.listdir(path)
files = [ f for f in files if re.search('.None$', f, re.I)]
for fname in files:
newname=fname.replace(".None",".mp4")
os.rename(path + "/" + fname, path + "/" + newname)
Uwe Ziegenhagen likes LaTeX and Python, sometimes even combined.
Do you like my content and would like to thank me for it? Consider making a small donation to my local fablab, the Dingfabrik Köln. Details on how to donate can be found here Spenden für die Dingfabrik.
More Posts - Website