Archiv

Archive for the ‘Programmierung’ Category

filedeleter – Automatisches Löschen von Dateien

August 25, 2011 2 Kommentare

Wer schomal von Windows zu Linux umgezogen ist kennt das Problem eventuell. In der Musik oder Filmesammlung finden sich eine Menge desktop.ini-Dateien, die da eigentlich nix verloren haben und die man unter Linux auch nicht benötigt.

Dieses Phänomen hat mich dazu bewogen ein kleines Tool zu schreiben, das von einem angegebenen Verzeichnis ab rekursiv alle Ordner nach den im zweiten Programmparametern übergebenen Dateinamen sucht und die gefundene Datei löscht.

Das Tool ist in C geschrieben.

Hier eine Beispielanwendung:

– Ich möchte alle „.ini“ Files in dem Ordner „/home/fabi/test“ und den vorhandenen Unterordnern löschen.

Verzeichnis, dass noch alle *.ini-Dateien enthält:

Anzeige des Ordnerinhalts mit "tree"

Anzeige des Ordnerinhalts mit "tree"

Aufruf von filedeleter:

Aufruf filedeleter

Aufruf filedeleter - Löschen alle *.ini-Dateien in /home/fabi/test

 Achtung: Der Ordnerpfad der im ersten Parameter des Tools übergeben wird, darf nicht mit einem Slash beendet werden!

 Ordnerinhalt nach dem Aufruf von filedeleter:

Ordnerinhalt /home/fabi/test nach dem Aufruf von filedeleter

"Bereinigter" Ordner

Getestet und Programmiert habe ich das ganze unter Gentoo Linux mit 2.6.39er Kernel und gcc 4.4.5. Das ganze läuft auch unter OS X ( Snow Leopard ) und XCode 3.
Für eventuelle Schäden die durch das Programm entstehen übernehme ich keine Haftung!!!

Das Programm wird natürlich unter der GPL veröffentlicht. Für Kritik und Anregungen bin ich wie immer dankbar.

Um das Programm zu kann das beigelegte make-File verwendet werden. Download: http://dl.dropbox.com/u/2497774/FileDeleter.tar

Advertisements
Kategorien:C, Linux, Mac OS X, Programmierung, VIM Schlagwörter: , , ,

ConfigParser

Ich bin gerade dabei mir eine kleine Toolchain zu bauen.
Ein Teil davon ist ein simpler Config-File-Parser der in C++ geschrieben ist.

Er kann „einfache“ Config-Dateien wie z.B. .Xdefaults, ssh_config, etc. parsen und zeigt die Attribute mit zugehörigen Werten an.

Hier mal ein paar Beispiele:
.Xdefaults

fabi@schnecki-workstation ~/Programmierung/C_C++/ConfigParser $ ./configparser /home/fabi/.Xdefaults "#" ":" ""
Number of attributes: 11
Option: URxvt*transparent       Value: false
Option: URxvt*savelines Value: 12000
Option: URxvt*scrollBar Value: false
Option: URxvt*urlLauncher       Value: firefox
Option: URxvt*geometry  Value: 80x50
Option: URxvt*secondaryScroll   Value: true
Option: URxvt*inheritPixmap     Value: true
Option: URxvt*shading   Value: 25
Option: URxvt*font      Value: xft:Bitstream Vera Sans mono:size=9
Option: URxvt*foreground        Value: white
Option: URxvt*background        Value: black

/etc/ssh/ssh_config

fabi@schnecki-workstation ~/Programmierung/C_C++/ConfigParser $ ./configparser /etc/ssh/ssh_config "#" " " ";"
Number of attributes: 3
Option: ForwardX11      Value: yes
Option: Port    Value: 22
Option: Host    Value: * XAuthLocation /usr/bin/xauth

Das eigentliche Ziel ist nicht das Programm „configparser“, sondern die Klassen, da ich diese dann in weiteren Programmen verwenden kann.

Hier der Link zum Download: http://dl.dropbox.com/u/2497774/ConfigParser.tar

Darin ist der Source Code und ein Makefile enthalten mit dem sich das ganze übersetzen lässt.

Getestet habe ich das ganze unter Gentoo Linux 2.6.36-gentoo-r5 (Ich weiß ein Kernelupdate ist fällig ;-)) und mit GCC 4.4.5.

Also viel Spaß damit.

Für Kritik und Anregungen bin ich wie immer dankbar.

WinSplit – File splitting for Windows

WinSplit ist ein kleines Kommandozeilentool das dem UNIX Programm Split nachempfunden ist.
WinSplit ist in ANSI-C mit Hilfe des Visual Studio 2008 programmiert.

Gestest und entwickelt wurde das Programm unter Windows 7 (64-bit).

Mit WinSplit ist es möglich große Dateien wie z.B. *.csv- oder *.txt-Dateien in kleinere Dateien aufzuteilen.
Das Programm geht dabei Zeilenweise vor.

Aufruf des Programms:

„WinSplit Pfad\zur\Eingabedatei Pfad\zur\Ausgabedatei DateiendungAusgabedatei AnzahlZeilen“

Aufruf WinSplit

Aufruf WinSplit

Das Programm steht unter GPL V3. Über Anregungen und Krititk würde ich mich freuen.

WinSplit – Binary

WinSplit – Source

 

C wieder ganz vorne

Wie man hier siehtGolem-Link

kommt mein großes Intresse für C wohl genau zur richtigen Zeit ;-)….

 

Kategorien:C, Programmierung Schlagwörter: , ,

Ein bisschen UNIX unter Windows

Für einen C/C++ Entwickler, der seine Programme auch verteilen will sind makefiles und ein vernünftiger Compiler, der auch die jeweiligen Standards wei den C99 Standard unter C unterstützen das tägliche Handwerkszeug.

Da ich unter OS X seit geraumer zeit viel mit C mache und meine Software auch hier zum Download bereit stellen möchte habe ich mir einen weg überlegt, wie ich das machen kann.

Da ich auch ab und zu am Notebook entwickle wollte ich auch dort die mir bekannten und leistungsfähigen Tools zu Verfügung haben.

Dabei bin ich über MinGW für Windows gestossen.

Mit diesen Tools habe ich den gcc (g++) für Winodows und kann alle makefiles übersetzen.

Zu finden ist das Paket hier: http://sourceforge.net/projects/mingw/files/

Die makefiles geben mir die Möglichkeit einen Editor, nämlich GVIM respektive MacVIM zu nutzen und damit unabhängig von einer Entwicklungsumgebung zu sein.
Wenn ich meine .vimrc fertig habe, werde ich sie natürlich hier posten.

Ein Plugin das ich aufjedenfall sehr gut finde, ist das c.vim plugin, zu finden hier:
http://vim.sourceforge.net/scripts/script.php?script_id=213

Kategorien:C, Mac OS X, Programmierung, VIM, Windows Schlagwörter: , ,

prgftp – Ein kleines Versionierungsscript (BASH)

September 21, 2009 Hinterlasse einen Kommentar

prgftp ist ein kleines Script mit dem man belibige Verzeichnisse und Quellcode in ein *tar.gz-Archiv packen und dann auf einen FTP-Server hochladen kann.

Das Script enstand aus dem Gedanken heraus, meine geschribenen Java Programme automatisch auf meinen FTP-Server upzuloaden und mit einer Versionsnummer zu versehen.


<code>#!/bin/bash</code>

#Bash Script um erstellte Porgramme auf einen FTP-Server hochzuladen
#und zu packen (tar.gz)

#-----------------------------Variablen-----------------------------
#Arbeitsverzechnis (Dort wo die Ordner mit den Quellcodes liegen)
PRG_PATH=

#zu packende Ordner
#1. Quellcode -> Unterordner "src"
SRC_PATH=/src
#2. JAR-File -> Unterordner "jar"
JAR_PATH=/jar
#3. APP -> Unterordner "app"
#APP_PATH=/app

#usw

#Bezeichungen der Archive
src=_src
jar=_jar
#_app=app

#Zugangsvariablen FTP
#Benutzername
user=
#Password
paswd=
#FTP-Adresse
serv=
#Arbeitsverzeichnis
srvdir=

#-----------------------------Packen-------------------------------
#Wechseln ins Programmierverzeichnis
cd $PRG_PATH

#Ordnername des Programms das gepackt und hochgeladen werden soll
echo "Programmname :"
read prgname

#Versionsnummer des Programms z.B. (-)0.0.2
echo "Versionsnummer :"
read prgversion

#erstellen der *.tar.gz -Archive im Programmierverzeichnis
#Quellcode
tar cfvz $prgname$prgversion$src.tar.gz $prgname$SRC_PATH/

#JAR-File
tar cfvz $prgname$prgversion$jar.tar.gz $prgname$JAR_PATH/

#OS X App
#tar cfvz $prgname$prgversion$app.tar.gz $prgname$APP_PATH/

#---------------------------Uploaden----------------------------
ftp -n <<eoftp
open $serv
user $user $paswd
bin
cd $srvdir

put  $prgname$prgversion$src.tar.gz  $prgname$prgversion$src.tar.gz
put  $prgname$prgversion$jar.tar.gz  $prgname$prgversion$jar.tar.gz
#put  $prgname$prgversion$app.tar.gz  $prgname$prgversion$app.tar.gz

quit
EOFTP

#-----------------------------Löschen----------------------------
#löschen der lokal angelegten Archive
rm $prgname$prgversion$src.tar.gz
rm $prgname$prgversion$jar.tar.gz
#rm $prgname$prgversion$app.tar.gz

#---------------------------Ende--------------------------------
echo "Fertig!"

Der Code darf gerne kopiert und weiterentwickelt werden.
Für Anregungen und Kritik bin ich wie immer dankbar.

PasswordGenerator1.0.1

Die nächste Version des PasswordGenerators ist jetzt fertig.

Changelog:

– ‚+‘ durch StringBuilder ersetzt
– Variable Passwort länge
– Präfix/Suffix
– frei wählbarer Zeichensatz
– ähnliche Zeichen die das Passwort unleserlich machen, werden eliminiert
– der generieren-Button kann so oft wie der Benutzer wünscht betätigt werden
– Bestätigung ob Passwort-Datei gespeichert werden konnte oder nicht

Screenshots:
Hauptfenster

Hauptfenster

Generiertes Password mit Präfix und Suffix

Generiertes Password mit Präfix und Suffix

Speichern Dialog

Speichern Dialog

Erfolgsmeldung beim Speichern des Passwords

Erfolgsmeldung beim Speichern des Passwords

Fehlermeldung beim Speichern des Passworts

Fehlermeldung beim Speichern des Passworts

Fehlermeldung bei falscher Eingabe der Passwortlänge

Fehlermeldung bei falscher Eingabe der Passwortlänge

Wie immer bin ich dankbar für jede Anregung und Kritik.
Dateien:
Info: Zum Öffnen der Archive, wird ein 7z kompatibles Programm benötigt.