MNH Gedankensprudel

nicht nur ein stilles Wasser

Mehrzeiliges Suchen und ersetzen in Projekten mit Notepad++

21.01.13 (Allgemein)

 

Fangen wir also an:

Man öffne eine Datei mit dem Störenden Inhalt in Notepad++ …

Mehrzeiliges Suchen und ersetzen in Projekten

und markiere nun den Absatz der der uns stört:

Mehrzeiliges Suchen und ersetzen in Projekten Schritt 2

Danach verwendet man das suchen und ersetzen Tool am einfachsten durch die Tastenkombination [STRG] + [H].

Nun sehen wir unseren selektierten Text in der “Suche nach” Textbox.

Mehrzeiliges Suchen und ersetzen in Projekten Schritt 3

Jetzt wählen wir noch den Tab “In Dateien Suchen” und klicken als
erstes auf “Ordner der akt. Datei” und da wir ja das gesamte Projekt
durchsuchen möchten auf “Unterverzeichnisse”.

Selbstverständlich könnt ihr den passenden Pfad auch manuell heraussuchen.

Den Suchmodus stellt man am besten auf “Normal” damit keine ungewollten Ersetzungen stattfinden.

Mehrzeiliges Suchen und ersetzen in Projekten Schritt 4

Und am ende habt ihr erfolgreich euer Projekt von den ungewollten
Einträgen befreit und das trotz Leerzeichen Tabs und Zeilenumbrüche.

Beachtet aber bitte das immer genau dieser String gesucht
wird, sprich es klappt nicht wenn ein Leerzeichen mehr oder weniger oder
sonst eine Kleinigkeit anders ist!

Mehrzeiliges Suchen und ersetzen in Projekten Schritt 5

 

1 Kommentar »

PHP wir spielen mit Referenzen

11.02.12 (Tutorial´s)

Wer mal mit C oder C++ gearbeitet hat kennt ein ähnliches Modell bereits die Pointer. Allerdings da PHP ja eine Scriptsprache ist stellt es keine Speicheradressen zur Verfügung.

Dafür haben wir aber Referenzen die zwar keinen Performance voreilt verschaffen dafür aber einen ähnliche Möglichkeiten zur Manipulation der Variablen bietet (von der Arithmetik mal abgesehen).

ein kleines Beispiel habe ich mal hier zusammengestellt ziel war es eine Wrapperklasse für Strings zu erstellen .

global $counter, $memory;
$counter = 0;
$memory = array();
function &getNewReference($dataType) {
    global $counter;
    global $memory;
    do {
	    $name = 'RefKey'.$counter++;

    } while (isset($memory[$name]));

    $memory[$name] = $dataType;

    if(is_object($dataType) && in_array('setRefKey', get_class_methods($dataType))) {
	    $dataType->setRefKey($name);
    }
    return $memory[$name];
}
 
class String{
    private $value;
    private $refKey;

    public function setRefKey($name) {
	$this->refKey = $name;
    }

    public function __construct($value = null){
	$this->value = $value;
    }

    public static function &string($value = null) {
	// Übergibt eine Referenz auf die Funktion  getNewReference,
	// die ihreseits eine Referenz auf das $memory Array übergibt
	$string = &getNewReference(new String($value));
	return $string;
    }

    public function __toString() {
	return (string) $this->value;
    }
    public function __destruct() {
	global $memory;

	// Kann sofort zerstört werden da keine Referenz.
	 if($this->refKey === null) {
	    return;
	}
		// Prüfen ob ein Object gleichen types in die referenz geschrieben wurde.
	if($memory[$this->refKey] instanceof self) {
			// Neuen object alten Referenzkey übertragen.
	    $memory[$this->refKey]->setRefKey($this->refKey);
			// Ist es eine skalaren Variable ("Normaler Datentyp" string, int , bool, usw..)".
	} else if(is_scalar($memory[$this->refKey])){
			// Neuen wert aus der Referenz auslesen.
	    $value = $memory[$this->refKey];
			// Eigene Classe ermittel (für extended).
	    $class = get_class($this);;
	    // Neues Object erzeugen und in das Array mit den Referenzen schreiben
	    $memory[$this->refKey] = new $class($value);
			// Neuen object alten Referenzkey übertragen.
	    $memory[$this->refKey]->setRefKey($this->refKey);
	}
    }
}
$foo = & String::string();

$foo = 'Hallo Welt!';

$bar = & String::string();

$bar = 42;

var_dump($foo);

echo $foo.' Der sinn des Lebens ist '. $bar;

2 Kommentare »

Merksatz für CSS Deklarationen für mehrere Seiten

11.01.12 (Allgemein)

In CSS gibt es viele Deklarationen die mehrere Werte nutzen, die sich auf unterschiedlichen Seiten des Boxmodells beziehen z.B.:

•    margin
•    padding
•    border-width

Da ich nun auch gerne vergesse welcher Wert nun zu welcher Seite gehört, habe ich mal einen kleinen Merksatz mit Anschauungsmaterial erstellt.

Am Anfang das einfachste ein (1) Wert.

Da nur ein wert zu Verfügung steht ist dieser für alle Seiten gleich
Also ist:

p {
margin:10px;
}

eine vereinfachte Darstellung von:

p {
margin:10px 10px 10px 10px;
}

Nun kommen wir schon zu zwei (2) Werten.

p {
margin:10px 5px;
}

2 Werte in der CSS Deklaration
Der Trick funktioniert wen wir oben beginnen zu zählen und dann  im Uhrzeigersinn weiterzählen. Somit würde oben Wert Eins und Rechts Wert Zwei Stehen.
Doch wie belege ich nun die restlichen zwei Seiten?
Dieses ist ganz einfach ich nehme einfach immer die gegenüberliegende Seite, so ergibt sich ganz automatisch:

  1. Wert Eins für Oben und Unten
  2. Wert Zwei Rechts und Links

Der Trick funktioniert übrigens auch für drei Werte

p {
margin:10px 5px 15px;
}


Allerdings bleibt nach dem Weiterzählen nur die linke Seite ohne Wert also kann auch nur darauf gespiegelt werden:

  1. Wert Eins für Oben
  2. Wert Zwei Rechts und Links
  3. Wert Drei für Unten

Als letztes alle vier Werte. Hier muss nicht mehr gespiegelt werden sondern einfach nur gezählt

p {
margin:10px 5px 15px 20px;
}


Somit ergibt sich dann folgendes Bild:

  1. Wert Eins für Oben
  2. Wert Zwei Rechts
  3. Wert Drei für Unten
  4. Wert Vier für Links

Ich hoffe ich konnte euch mit meinen Tutorial ein wenig helfen.

Keine Kommentare »

Google style ganz Persönlich

24.08.11 (Allgemein)

Google mit schwarz hässlich…

Google ist laangweilig…

Ich mag das neue aussehen der Website nicht…

Wer diese oder ähnliche Probleme hat, kann geholfen werden: Die Lösung heißt zu mindestens im  Mozilla Firefox und  Google Chrome Stylish. Einfach dieses Addon installieren und sich über benutzerdefiniertes Aussehen der Webseiten freuen.

Egal ob Google, das Lieblings Forum oder vielleicht sogar die Konfigurationsseite ihres Routers alles lässt sich damit anpassen.

Und Hier noch gleich ein Link zu einen Style, der die meiner Meinung hässlich schwarze Navigationsleiste von Google aufhübscht: userstyles.org – Google navigation bar – revert to light theme.

Falles noch Bildmaterial gewünscht oder Fragen offen sind einfach einen Kommentar dalassen.

Keine Kommentare »

Get KeyValuePair From Value in Dictionary (vb.net)

03.08.11 (Allgemein, VB.Net)

Dictionary Sind äußert Praktisch wenn man gerade ein KeyValuePair Benötigt.
Sprich einen beliebigen Index und ein damit verknüpfte Value.

In diesen beispiel zeige ich euch wie Einfach es ist in diesen Konstrukt sogar Rückwärts zu suchen:

Public Shared Function GetKeyValuePairFromValue(ByVal sValue As String, _ 
  ByVal CheckDictionary As  Dictionary(Of Integer, String)) As _
  KeyValuePair(Of Integer, String)
  Return CType((From kvp As KeyValuePair(Of Integer, String) In _
  CheckDictionary Where kvp.Value = sValue.Trim() Select kvp).First(), _
  vKeyValuePair(Of Integer, String))
End Function

Keine Kommentare »

XP-Modus 16 bit Farbtiefe nein Danke

07.07.11 (Windows)

XP-Modus Bessere Optik dank 24bit Farbtiefe

Viele werden es vielleicht schon gesehen haben, das der XP-Modus vom Windows Virtual PC
einfach Häslich aussieht.
Alles wirkt irgendwie verpixelt.

Doch was ist Schuld dadran?
Die 16 bit Limitierung die von der Zugriffsmethode auf den XP-Modus, nämlich RDP (Remote Desktop Protocol) kommt.
Das lässt sich leider nicht ganz abschalten den 32 bit sind nicht möglich, mit einen Trick aber wenigstens 24 bit und das sieht schon mal deutlich besser aus.
Dazu müsst ihr bloß ein par Richtlinien konfigurieren und wie das funktioniert erkläre ich jetzt in dieser schritt für schritt Anleitung.

  • Start und Ausführen dort gpedit.msc eingeben.
  • Nun sich dur volgende punkte durchwählen: Computerkonfiguration – Administrative Vorlagen – Windows-Komponente – Terminaldienste – Maximale Farbtiefe einschränken
  • — Die Richtlinie aktivieren und 24bit auswählen.

Nun sollt euer Windows deutlich besser aussehen und etwas arbeitsfreundlicher sein.

Keine Kommentare »

Der angegebenen Datei ist keine Anwendung zugeordnet (process start vb.net)

30.06.11 (VB.Net)

Wer Diese Meldung bekommt möchte wahrscheinlich mit  process.start(C:\Temp\MeinBild.tif) eine Datei in seien VB.NET Project öffnen.

Wenn aber Kein Programm oder nur das Windows-Standardprogramm mit dem Dateityp verknüpft ist bekommt man diese Fehlermeldung.

Folgender Code zeigt wie es richtig geht:

Dim proc As New Process
Dim ProcessStartInfo As New ProcessStartInfo
ProcessStartInfo.ErrorDialog = True
ProcessStartInfo.UseShellExecute = True
ProcessStartInfo.FileName = "C:\Temp\MeinBild.tif"
proc.StartInfo = ProcessStartInfo
proc.Start()

Keine Kommentare »

google translate als schnelles lesezeichen (Bookmarklet)

23.06.11 (Allgemein)

Wer keine umständliche Toolbar mochte, und trotzdem mit nur einem Click, eine Übersetzung der Webseite auf der er sich gerade befindet. Kann mit folgender Zeile als Lesezeichen schnell die aktuelle Seite Übersetzen:
Gogle translate Bookmarklet

javascript:window.location='http://translate.google.de/translate?js=n&prev=_t&hl=de&ie=UTF-8&layout=2&eotf=1&sl=auto&tl=de&u='+window.location;

Keine Kommentare »

Probleme mit der Maustasten-Belegung Hier kommt die Lösung?

18.02.11 (Allgemein)

Vielleicht gibt es ja noch mehr wie mich, die Probleme haben mit Ihrer Tastenbelegung bei der Maus. Funktioniert der Klick mit der mittleren Maustaste nicht? Sind Die Sondertasten nicht belegt?  Für al diese probleme habe ich eine möglichkeit gefunfden die Mausfunktionen zu ändern denn die Antwort darauf heißt XMouseButtonControl.

Hier noch der Link zum Entwickler: http://www.highrez.co.uk/

und der Download linkhttp://www.highrez.co.uk/downloads/XMouseButtonControl.htm

Keine Kommentare »

Windows 7 Upgrade mit Standardkey

15.10.10 (Windows)

So Mein erster Beitrag wird sich heute mit der Upgrade Funktion von Windows beschäftigen.

Vorallem wer das glück hat nach dem erwerb einer kleineren Windowsversion im besitz einer OEM Vollversion oder MSDN Lizenz gekommen zu sein , wird sich vielleicht schon geärgert haben. Den mit dem Key zu seiner Professional* Version sein olles Windows 7 Home Premium zu upgraden geht einfach nicht.

Als erstes müssen wir uns also einen Key besorgen mit dem das Upgrade funktioniert.

Dies ist einfacher als gedacht den auf jeder  Windows7 DVD ist eine Datei mit den Standard Produkt Keys. Diese solltet ihr unter “ CDLAUFWERKSBUCHSTABEN:\sources\product.ini “  finden .

 



Datei mit Windows Standard-Key

Windows Standard-Key

 

Mit diesem Key also das was hinter „Professional=“ in der product.ini steht, das Anytime Upgrade durchführen. Am sichersten natürlich ohne Internetverbindung (Damit Microsoft nicht rummeckern kann).

Nach erfolgreichem Upgrade nur noch in der Systemsteyerung Regestrieren wählen und euern Produkt Key eingeben.

Alternativ geht auch  “ Windows-Taste + Pause“  und ganz unten  „Produkt Key ändern“ wählen.

Am ende nur noch Windows über das Internet aktivieren.

So, nun noch das obligatorische vor dem allen solltet ihr eure Daten sichern für Folgeschäden bin ich nicht haftbar und bei Nebenwirkungen fragen sie ihren Arzt oder Apotheker 🙂

*Funktioniert natürlich auch für alle andern Versionen

Keine Kommentare »