| M | D | M | D | F | S | S |
|---|---|---|---|---|---|---|
| « Aug | ||||||
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 | |||
- 28.8.2010: So was tut man doch nicht ...
- 27.7.2010: Und immer wieder params [] ...
- 7.5.2010: DVB.NET 3.9 Service Pack 2 Beta
- 21.2.2010: ADO.NET - Einfach nur Rechnen...
- 30.1.2010: Neuer Protokolleintrag für die BDA Implementierung
- 9.1.2010: Microsoft Application Compatibility
- 9.1.2010: Lustiges von McAfee...
- 30.12.2009: Transport Stream analyiseren
- 14.12.2009: Protokoll des Sendersuchlaufs
- 18.9.2009: VideoText in DVB.NET 3.9 für Entwickler
Allgemeines
- August 2010
- Juli 2010
- Mai 2010
- Februar 2010
- Januar 2010
- Dezember 2009
- September 2009
- August 2009
- Juli 2009
- Juni 2009
- Mai 2009
- April 2009
- März 2009
- Februar 2009
- Januar 2009
- Dezember 2008
- November 2008
- Oktober 2008
- September 2008
- August 2008
- Juli 2008
- Juni 2008
- Mai 2008
- April 2008
- Februar 2008
- Januar 2008
- Dezember 2007
- November 2007
- Oktober 2007
- September 2007
- August 2007
- Juli 2007
- Juni 2007
- Mai 2007
- April 2007
- März 2007
- Februar 2007
- Januar 2007
- Dezember 2006
- November 2006
So was tut man doch nicht …
28.8.2010 von JMS.
… ja, ich weiss. Nach einer Prüfung in Compilerbau und dem theoretischen Hintergrund von Sprachkonzepten wie LALR / LR / …, nach Arbeiten mit bison / flex / yacc / … und Schnuppern in dem Gold Parser darf man eigentlich keinen Parser mit rekursivem Abstieg von Hand programmieren. Hab’ ich aber trotzdem mal getan - den Hintergrund dieser Entscheidung überspringe ich erst einmal, auf Wunsch kann ich das ja nachholen.
Konkret geht es um die SQL-2003 Syntax und dabei um die Suchsprache oder noch konkreter das SELECT Statement. Ich habe mich dabei hieran gehalten und hoffe einmal, dass die Beschreibung ausreichend nahe an der Wahrheit ist - verglichen mit dem, was ich vom SQL Server und Oracle weiss, sieht es zumindest mal nicht schlecht aus. In einer ersten Stufe ist ein rein syntaktischer Parser entstanden, den ich gerade in den Abschlusstest nehme. Es gibt eine Reihe von Problemen verschiedenster Art, aber zumindest scheint es im Großen und Ganzen zu laufen.
Nun, falls jemanden dies an sich (oder die Parser Bibliothek darunter) interessieren sollte: ich habe die aktuelle Version mal mit einem kleinen Installationsprogramm versehen und zum Download bereitgestellt - ich gehe davon aus, dass es in den nächsten Wochen durch meine eigenen Tests zu Updates kommt und ich werde versuchen, dies in der Versionsnummer zu berücksichtigen. Wenn die Syntax ausreichend korrekt erkannt wird, werde ich mal nach der Semantik schauen (e.g. a || b geht nur, wenn a und b Zeichenketten oder Listen sind, nicht aber für Zahlen). Vor allem die Anbindung an ein Schema wird interessant.
Für das reine Schnuppern (Auslachen? Hm…) habe ich auch die Quellen Online bereitgestellt - identisch, wie sie auch lokal installiert würden.
Für die Erstellung der Bibliotheken wurde Visual Studio / C# 2010 verwendet, allerdings gebunden an das .NET Framework 3.5 SP1 - und nicht 4.0.
Viel Spaß
Jochen
Geschrieben in .NET | Keine Kommentare »
Und immer wieder params [] …
27.7.2010 von JMS.
Da ich Troll nun schon wieder einmal darauf hereingefallen bin, einfach mal als kleiner Tipp für andere, die auch so vergesslich sind wie ich.
Ich verwende in C# eine Methode der Art void Test(params sometype[] args). So in C++ Analogie (sehr weit hergeholt, da das … / varargs doch nur mit Hilfe weiterer Parameter funktioniert) sollte man erst einmal erwarten, dass args niemals null ist - höchstens mal leer. Das stimmt leider nicht: C# erlaubt es auch ein sometype[] Feld direkt zu übergeben - das params wird dann mehr oder weniger ignoriert. So ein Feld kann natürlich null sein - mit der Konsequenz, dass auch args null ist!
Also Vorsicht: statt args.Length zu prüfen lieber (args == null) ? 0 : args.Length verwenden.
Viel Spaß mit all den anderen Fallstricken
Jochen
Geschrieben in .NET | Keine Kommentare »
DVB.NET 3.9 Service Pack 2 Beta
7.5.2010 von JMS.
Leider ist es mir noch immer nicht gelungen, die Zeit für eine nächste Version 4.0 zusammen zu kratzen. Da es aber inzwischen einige kleinere Erweiterungen (primär für Entwickler) und zumindest einen echten Fix gibt, bin ich dabei, ein zweites Service Pack für die aktuellen Version zusammen zu stellen. Das ist aber noch in der Testphase.
Bei der Umstellung auf Visual Studio 2010 hatte ich dabei ein interessantes (ärgerliches?) Problem, dass ich bisher noch nicht verstanden (nachrecherchiert) habe: bei der Konvertierung der Setup (MSI) Projekte wurden für viele Komponenten neue Kennungen (ComponentId) vergeben. Diese sind bisher auch nach Neuübersetzen mit vorherigem Löschen der MSI immer gleich geblieben. Das hatte ich ausgenutzt, damit die Installationspakete sich gegenseitig erkennen und als Installationsvoraussetzung nutzen können. Durch die Änderung musste ich alle Pakete in den SP2 mit aufnehmen, auch VCR.NET und den Viewer, die sich gar nicht verändert haben.
Trotz Allem viel Spaß beim Testen
Jochen
Geschrieben in .NET, DVB.NET, VCR.NET | Keine Kommentare »
ADO.NET - Einfach nur Rechnen…
21.2.2010 von JMS.
Ich wollte in einem .NET Programm einen vom Anwender als Zeichenkette eingegebene einfachen mathematischen Ausdruck ausrechnen, etwa so was wie (13 * 29 + 123) / (12 *9 ) - 316 / (11 / 7). Ich denke mal, dass es mehrere Möglichkeiten gibt, das relativ einfach zu tun, aber dieser Mißbrauch von ADO.NET hat mich in der Einfachheit doch positiv überrascht:
var table = new DataTable();
...
var result = table.Compute( userInput, null );
Happy Coding
Jochen
Geschrieben in .NET | Keine Kommentare »
Neuer Protokolleintrag für die BDA Implementierung
30.1.2010 von JMS.
Ich hatte ja schon einmal hier beschrieben, wie man zum Beispiel bei einer Aktualisierung der Quellen (Sendersuchlauf) ein Detailprotokoll über die internen Abläufe erstellen kann. Neu ist nun der Schalter BDATrace, der die Tune Vorgänge auf unterster Ebene ein wenig beschreibt. Zur Aktivierung muss der Schalter auf 1 gesetzt werden.
Viel Spaß
Jochen
Geschrieben in DVB.NET | Keine Kommentare »