inline unsigned char toHex(const unsigned char x) { return x > 9 ? (x + 'A' - 10) : (x + '0'); } std::string URLEncode(const std::string &sIn) { std::string sOut; const size_t length = sIn.length(); for (size_t idx = 0; idx < length;) { const char ch = sIn.at(idx); if (isalnum(ch)) { sOut.append(1, ch); } else if (isspace(ch) && ((ch != '\n') && (ch != '\r'))) { sOut.append(1, '+'); } else { sOut.append(1, '%'); sOut.append(1, toHex(ch>>4)); sOut.append(1, toHex(ch%16)); } idx++; } return sOut; }
Blog
XP-Styles und CHtmlView
Um in CHtmlView bei Verwendung von CSS auch visuelle Styles anzugeigen, muss lt. MSDN folgende Headerzeile in die HTML-Seite eingefügt werden:
<META HTTP-EQUIV="MSThemeCompatible" CONTENT="Yes">
Microsoft Installer
Benutzerdefinierte Aktionen bei Install/Uninstall
Dem Installer können benutzerdefinierte Aktionen für die Phasen Install, Commit, Rollback und Uninstall hinzugefügt werden. Die Assembly (die als benutzerdefinierte Aktion ausgewählt wird) muß ein Klasse enthalten, die von System.Configuration.Install abgeleitet ist. Dort können die angegebenen Methoden überschrieben werden. Der Installer ruft dann die entsprechenden Methoden in der angegebenen Assembly auf.
Für Windows-Dienste wird empfohlen, den Dienst in der Methode Commit zu starten und in Uninstall zu stoppen.
Parameterübergabe
Parameter können an die benutzerdefinierte Aktion ebenfalls übergeben werden. Dazu muß die Eigenschaft CustomActionData der benutzerdefinierten Aktion im Setupprojekt gefüllt werden. Beispiel: /targetdir="[TARGETDIR]\".
In der den Methoden Install und Uninstall übergebenen Variable stateSaver können Werte aus der Installation gespeichert werden, die dann bei der Deinstallation wieder zur Verfügung stehen:
stateSaver.Add("conStr",rijndael.Encrypted);
MySQL-Tabellen mit Drupal ausgeben
Beispiel der Ausgabe einer MySQL-Tabelle mit den Drupal-Formatierungsfunktionen:
<?php $result = db_query("SELECT * FROM {my_table}"); $output = ''; $rows = array(); $header = array('id','Domain','Module'); $rows = array(); $i = 0; while($row = db_fetch_object($result)){ $data = array(); $data[] = $row->sid; $data[] = $row->domain; $data[] = $row->module; $rows[] = $data; $i++; } $output .= theme('table', $header,$rows); echo $output; ?>
Zur Anzeige ist einfach der obige Code in eine neue Drupal-Seite einzufügen und als Eingabeformat PHP code auszuwählen. Aber Vorsicht! Der PHP-Code sollte syntaktisch korrekt sein und man sollte wissen, wie man fehlerhaften Code per Hand wieder aus der Drupal-Datenbank bekommt.
Größe der Typen in C
- sizeof(char) <= sizeof(short) <= sizeof(int) <= sizeof(long) <= sizeof(long long)
- sizeof(short) >= 2
- sizeof(int) >= 2
- sizeof(long) >= 4