Laden...

Forenbeiträge von cdr Ingesamt 980 Beiträge

07.11.2004 - 12:07 Uhr

Tip: Verwende Stored Procedures, dann musst du die nie um solche dinge kümmern ...

07.11.2004 - 12:03 Uhr

Original von hauptmann
Eine Matrix + der Identitätsmatrix ergibt wieder die Matrix selbst

Kleine Korrektur am Rande: Mathematisch korrekt wäre:

  • Eine Matrix * die Identitätsmatrix ergibt wieder die Matrix selbst
  • Eine Matrix + die Nullmatrix ergibt wieder die Matrix selbst

(aus dem kontext geht schon heraus was du sagen wolltest, aber das + Zeichen impliziert Addition was du offensichtlich nicht wolltest...)

05.11.2004 - 16:29 Uhr

Ich würde mal versuchen das Bild stark zu rastern, z.b. reduzieren auf 20x20 Pixel, und dann die Grauwerte normalisieren und schliesslich mit einem Grenzwert alle 20*20=400 Pixel vergleichen. Durch die Rasterung und Normalisierung verlieren leichte Verschiebungen, Rotationen, Moire- und andere Effekte an Bedeutung. Du könntest das Bild z.b. aber auch fourier transformieren und dann ein par frequenzbänder vergleichen ...

04.11.2004 - 20:50 Uhr

Was für Informationen fehlen denn noch? (bzw. wo brauchst mehr Tiefe... bist auf irgendwelche Sätze, Theoreme und Lemmas raus?) 😉

Wie gesagt, imo ist die (mehr oder weniger rigorose) Theorie hinter Syntaxdiagrammen die der Kontextfreien Sprachen (und formalen (auch nicht-regulären) Sprachen im allgemeinen). Syntaxdiagramme sind eine von verschiedenen Möglichkeiten zur Beschreibung (und Visualisierung) solcher Sprachen - verbreitet ist sonst ja v.a. BNF ...

04.11.2004 - 16:42 Uhr

In welche Richtung solls denn gehen?

Syntax Diagramme sind ja imo nichts besonders kompliziertes sondern blos eine graphische Sprach-Beschreibung, die auch für nicht-reguläre Sprachen geeignet ist. Praktisch habe ich sie bisher v.a. im Parserbau und in der Computer Algebra benutzt, vielleicht finden sich in diesen Bereichen etwas tiefgehendere Arbeiten ...

Formalen Sprachen fallen in den Bereich der theoretischen Informatik und werden dort auch entsprechend behandelt. Wahrscheinlich bist du mit ausführlicher Literatur zum Compilerbau aber besser bedient, z.b. mit dem Standardwerk von Aho, Sethi & Ullman (habe es selber nocht nicht, kenne es also nicht) ...

Mehr theoretisches im Internet findest du wohl zu Stichworten wie context-free grammars, LL(k), (E)BNF, AST etc., vielleicht auch direkt auf den Websites von ANTLR, YACC, Bison etc. ...

03.11.2004 - 18:36 Uhr

Original von KRambo

  1. Ich hab 2 Threads, der eine kopiert ne Datei, der andere iss der Hauptthread, der einen Eintrag zur ListBox hinzufügt. Wenn ich das Programm laufen lasse, dann kopiert er die Datei und fügt gleichzeitig den Eintrag hinzu. Nun möchte ich aber, dass er den Eintrag erst hinzufügt, wenn der eine Thread fertig ist. Wie kann ich das am besten machen?

Warum lässt du den Thread nicht einfach dem Hauptread sagen wann er fertig ist (Methodenaufruf - mit (DeinControl).Invoke sonst gibt's ärger)

01.11.2004 - 15:06 Uhr

Du könntest in VB.NET deine GUI modelieren, das auf eine C# komponente zugreift welche mit unsafe code und pointer arbeiten (gibt's in VB nicht - z.b. irgendwelche elegante C-like algorithmen die ohne pointer nur umständlich und 10x langsamer realisierbar wären, oder etwas im Interop-Bereich (ohne Pointer auch äusserst umständlich und ineffizient)) ... dank den pointern kannst dann dort auch elegant mit irgendwelchen managed-c++ komponenten zusammenarbeiten ...

31.10.2004 - 15:54 Uhr

(das Problem ist, dass du in der Handler Methode nicht auf WinForms Objekte zugreifen darfst, da die Methode in nem anderen Thread ausgeführt wird ... per (Dein WinFormsObjekt).Invoke kannst jedoch eine Methode im WinForms Thread Kontext ausführen ...

(versuch sonst auch mal statt auf die TextBox zuzugreifen eine MessageBox anzuzeigen oder in eine datei zu schreiben ...)

31.10.2004 - 15:40 Uhr

Original von zerli
Illegal cross-thread operation: Control 'textBox2' accessed from a thread other than the thread it was created on.

Na also, da steht doch in klarem englisch was der Fehler ist 😉

(macht auch sinn, typischer Fehler übrigens ... auch wenn in v1.1 solche fehler (leider) noch nicht abgefangen wurden) ...

hint: Invoke()

30.10.2004 - 23:11 Uhr

Was denn für ein Fehler?

Hab mir die whidbey betas nicht installiert, kann es also nicht selber testen ...

29.10.2004 - 17:43 Uhr

Falls du mit gewinnen zufälliges generieren meinst (z.b. für passwörter): Siehe System.Random

29.10.2004 - 17:36 Uhr

Warum probierst du's nicht einfach aus?

28.10.2004 - 21:18 Uhr

Wie hast du serialisiert? Mit SaveXml?

28.10.2004 - 18:41 Uhr

Schau dir vielleicht gleich die MSH an (nachfolger der NT shell (cmd.exe) für Longhorn, zz im Betaprogramm) 😉

26.10.2004 - 22:10 Uhr

Original von Tankian
Nebenbei bemerkt finde ich reguläre Ausdrücke auch nicht intuitiv lesbar, und die sind ja
schließlich eine Form des Parsens von Text.

Es versucht ja auch niemand Regular Expressions direkt in C# zu notieren (nach Spirit Idee) sondern schreibt die Expression einfach in einen String 😉 ... (weil sie, wie auch die Grammars bei Spirit, nichts mit C# zu tun haben) ...

btw: ich sehe deinen Punkt schon, und generell bin ich auch dieser Meinung (ich sehe auch die Eleganz von Spirit, und ja, ich mag sie!) - in diesem Fall überwiegen aber die Gegenargumente imo deutlich.

26.10.2004 - 21:55 Uhr

Nur zur Info: Funktioniert bei mir bestens, scheint also nicht generell an VS.NET zu liegen...

-> PDA in Docking Station -> Neues Smart Device Projekt in VS.NET -> Plattform: Pocket PC, Projekttyp: Windows-Anwendung -> Debug Session starten -> im Fenster "Pocket PC-Gerät" auswählen -> "Weitergeben" -> kurz warten -> leere form mit Titel Form1 wird im PDA angezeigt ...

Bei mir in VS.NET erkannte installierte Geräte:
Pocket PC 2003 Phone Edition (Virtual Radio) Emulator
Pocket PC 2003 Phone Edition Emulator
Pocket PC 2003 Emulator (Standard)
Pocket PC-Gerät <--- das PDA ...
Pocket PC 2002-Emulator

(ist ein HP iPAQ 2210 mit WM2003)

26.10.2004 - 21:34 Uhr

Original von NoOneKnows
Man könnte mit dem Shift-Operator ja ganz anderes erreichen wollen als irgendwas hin- und herzuschieben. Da ist eben schon wieder eine Grenze. Im grundegenommen könnte man schöne Sachen damit realisieren (siehe Spirit), aber eben nicht wenn überall irgendeine Restriktion lauert.

Genau das wollen sie ja (mit sehr gutem Grund) verhindern. Wenn der Shift-Operator für irgendwelche anderen Operationen vergewaltigt wird die nichts mit einem Shifting zu tun haben schadet das massiv (nicht nur) der Lesbarkeit (und somit der Effizienz). Das Definieren einer Multiplikation z.b. für komplexe Zahlen ist aber nicht nur ok sondern sogar erwünscht, da es hier die Lesbarkeit und Kontinuität sogar noch fördert (handelt sich ja auch um eine Multiplikation) ... ich stehe also durchau hinter diesem Kompromiss ... ansonsten sieh dich mal z.b. in Eric Gunnerson's Blog um, da erfährt man auch diverses über ihre Motivation und Hintergründe ....

Ansonsten: Die Idee hinter dem Spirit Projekt ist zwar ganz nett, aber imo verfehlt ... imo macht das Spart-Design mehr sinn, wenn auch etwas aufwändiger zur nutzung ...

24.10.2004 - 20:31 Uhr

Was bisher leider nur der WMP kann (iTunes, WinAMP etc. sind daher für mich so gut wie unbrauchbar): mehrere artisten pro MP3 zulassen - und bei der auflistung der titel und alben nach artist das stück dann auch unter allen beteiligten artisten aufführen (etwa so wie es der WMP macht (Eingabe per Semikolon (die iTunes aber als Schrägstriche darstellt werden - leider auch in meinem iPod 😭 wirklich mühsam dort ... )))

24.10.2004 - 09:59 Uhr

Man könnte es schon abkürzen, aber wenn schon dann wie folgt ... 😉


private string GetFileSize(long fileSize)
{
  if(fileSize < 1024)
    return fileSize.ToString("#.0 B")
  if(fileSize < 1048576)
    return (fileSize/1024d).ToString("#,###.0 KB");
  return (fileSize/1048576d).ToString("#,###.0 MB");
}

Hab dabei gleicht noch einen kleinen Fehler korrigiert: Bei dir wurde IMMER entweder die erste oder die zweite, nie aber die dritte Variante ausgeführt. Denn wenn fileSize nicht kleiner als 1024 ist, ist es sicher grösser oder gleich 1024, also wird dann immer der zweite Zweig genommen ... (ersetze || mit &&, oder lasse die erste Bedingung gleich weg da ohnehin überflüssig)

23.10.2004 - 22:35 Uhr

C++ templates --> C# 2.0 Generics

23.10.2004 - 09:44 Uhr

Hab so ein Tool auch schon gesucht, leider aber nichts gefunden. Neben den einfachsten Sensoren wie Anzahl Klassen oder Anzahl Methoden pro Klasse interessieren mich aber auch Auswertungen bezüglich Komplexität, Abstraktionsgrad, Öffentlichkeit (ist jegliche Funktionalität gegen aussen abgreifbar oder alles privat versteckt), Hierarchietiefe, etc...

20.10.2004 - 19:37 Uhr

Original von NoOneKnows
Mediator Pattern.

Das Mediator Pattern ist imo ziemlich wichtig, habe es (implizit) schon mehrmals verwendet. Gerade bei WinForms ist es sehr nützlich falls viele Controls vorhanden sind die voneinander abhängen ...

Gerade bei einem gerade aktuellen Beitrag hier im Forum wäre es z.b. wohl besser verwendet worden 😉

20.10.2004 - 19:31 Uhr

Stichwort: State Machine

18.10.2004 - 08:12 Uhr

Ja, tönt wahrscheinlich. Ein Thread wird nur beendet wenn die Methode normal ausläuft (mittels return oder keinen weiteren instruktionen mehr) oder wenn eine Exception auftritt die nicht abgefangen wird. (Abort und Interrupt provozieren solche Exceptions, mehr können sie aber auch nicht ausrichten!)

17.10.2004 - 14:21 Uhr

Falls du auch mit einer OpenSource Lizenz (z.b. BSD License) leben kannst gibt es viele komfortable Plattformen, die bekannteste ist wohl SourceForge ... du hast keine eigene Website nehm ich an?

Wenn ich etwas suche schaue ich normalerweise bei CodeProject, SourceForge und noch ein par kleineren Sammlungen (SharpToolbox etc.) vorbei ... (oder ich benutze gleich google..)

17.10.2004 - 14:06 Uhr

Original von Franknstein
Der Thread bekommt auch die Threadabortexception, aber er kann sie ja nicht abfangen und weiß daher auch nicht, dass erbrechen soll. Nun bekommt der Thread die Threadabortexception und springt deshalb aus der Whileschleife aus.

Wenn ein Thread eine Exception nicht behandelt (gilt für ALLE exceptions, so auch für ThreadAbortException), dann wird er automatisch gekillt. Is es der Hauptthread erhälst du dann eine schöne Fehlermeldung ... allerdings kann die CLR keine Threads killen die auf ein Win32 Ereignis warten (z.b. WaitForSingleObject syscall), eine Abort Exception wird dort erst wirksam sobald der Syscall zurückkehrt (darum funktioniert Abort auch nicht in allen Fällen, meist kann man dann aber z.b. mit Win32 timeouts arbeiten) ...

17.10.2004 - 13:11 Uhr

Wie sollte der Deconstructor auch aufgerufen werden wenn die laufende Methode des anderen Threads noch immer implizit die Instanz referenziert (du kannst ja in der Methode auf die Klassenmembers zugreifen)? Kleiner Denkfehler?

16.10.2004 - 01:57 Uhr

Original von moson

Original von Franknstein
In wie weit währe es denn legal, wenn ich mir mit einer TV-Karte bei Viva Plus/TTV Sonntags abends die Rockclips mitschneide, in das MP3-Format konvertiere und dann höre?

Völlig legal. Dafür zahlst du GEZ.
Tip:
>
, mit dem Prog und nem Radio kannste den Radio Stream aufnehmen und anschließend einzelne Lieder als MP3s extrahieren. Die Qualität ist deinem Radio entsprechend. Näheres kann ich dir auch nich sagen, ich nutze es nicht.

Die Musikindustrie (und somit viele Politiker) ist da aber anderer Meinung. Trotz GEZ.

13.10.2004 - 01:43 Uhr

Original von EvilTK
Aus dem C:\UNIWISE.EXE brauchst du kein C:\UNIWISE.EXE machen 😉 Die haben automatisch ein @ vorne dran. (Oder sowas ähnliches aufjeden fall funktioniert es)

Auch "C:\UNIWISE.EXE" wird als "C:\UNIWISE.EXE" gespeichert, das @ und die -notation haben nur eine Bedeutung für den C# compiler - die entsprechenden Zeichen werden (falls nicht mit einem @ unterbunden) bei der Kompilierung ersetzt ...

13.10.2004 - 01:37 Uhr

Bevor du eine Spalte ändern kannst musst du sie erst erstellen:

dgts.GridColumnStyles.AddRange(new new DataGridColumnStyle[] {...});
12.10.2004 - 03:07 Uhr

Zitat aus der T-SQL Doku:

Disabling CHECK Constraints
Existing CHECK constraints can be disabled for:

INSERT and UPDATE statements, thereby allowing data in the table to be modified without being validated by the constraints. Disable a CHECK constraint during INSERT and UPDATE statements if new data will violate the constraint or if the constraint should apply only to the data already in the database.

Das ganze läuft auf ein ALTER TABLE vor und nach dem Statement hinaus, geht offenbar also nicht einfacher als einfach das Constraint kurz zu unschädlich zu machen und danach wieder zu reaktivieren (entspricht dem kurzen deaktivieren der "Enforce constraint for INSERTs and UPDATEs" Checkbox im Enterprise Manager).

12.10.2004 - 02:41 Uhr

Du willst gemeinsamen Speicher über verschiedene Anwendungen (Prozesse) hinaus? Das geht in Win2k/XP so einfach nicht (Speicherschutz) ... Für ein "Event Handling" über Prozessgrenzen hinaus gibt's aber trotzdem verschiedenste Techniken, u.a. mit Win32 Kernel-Objekten und entsprechenden syscalls, mit COM+ oder auch Remoting ...

Stichworte: IPC, Interop, WaitForSingleObject, ...

11.10.2004 - 20:05 Uhr

Workaround: Mit Invalidate kannst das Betriebssystem anweisen entsprechende Bereiche neu zeichnen zu lassen.

Allgemein (damit hab ich gute erfahrungen gemacht): Zeichne immer in einen Buffer und kopiere diesen Buffer (nur) genau dann in das Steuerelement, wenn das Betriebssystem auch tatsächlich zeichnen will (z.b. nie im constructor oder page_load o.ä.). Weise dann das Betriebssystem an dass es neu zeichnen soll falls sich im Buffer was ändert ...

btw: wozu eine picturebox?

11.10.2004 - 12:48 Uhr

sieht gut aus! ... (leider ohne quelltext)

11.10.2004 - 12:37 Uhr

Ein Beispiel wie es programmiertechnisch aussehen könnte ist z.b. die NeuroBox ... hast den Quellcode mal angeschaut? Ansonsten macht das Arbeiten mit neuronalen Netzem imo nur wenig sinn wenn man die Mathematik dahinter nicht versteht ... ansonsten empfehl ich wirklich ein gutes Buch anzuschafen (oder ggf eine entsprechende Vorlesung zu besuchen...)

06.10.2004 - 20:49 Uhr

Du könntest eine View definieren die nur die benötigten Daten aus den systables ausliest und den usern nur leserecht auf diese View geben, nicht aber auf die systables selber.

06.10.2004 - 20:46 Uhr

prinzipiell ist es sicher möglich, aber wohl nur mit einem win32 syscall.

update: Schau dir mal die source von Miranda oder ähnlichen opensource tools an die das können, da findest sicher den passende api funktion ...

06.10.2004 - 20:44 Uhr

Ein typed ADO.NET DataSet ist nicht viel anderes als eine In-Memory Datenbank, die sich auch bequem in einm XML File Serialisieren kann ... da müsste es auch möglich sein, einen CryptoFilter dazwischenzuschalten um die Datei gleich zu verschlüsseln ...

06.10.2004 - 20:39 Uhr

Das wirst du von hand ersetzen müssen, z.b. mit der Replace Methode ...

04.10.2004 - 13:17 Uhr

z.b. für einfachste data-mining anwendungen mit nicht-sparse cubes? 😉

04.10.2004 - 12:46 Uhr

Stell dir die 4. Dimension zb. als Farbe vor ... (ich habe keine Probleme damit mir einen 100 Dimensionen reichen Raum vorzustellen..?)

04.10.2004 - 10:40 Uhr

Das funktioniert? Kann ich mir nicht vorstellen...

03.10.2004 - 17:36 Uhr

leite vom button ab und überschreibe das zeichnen ... (dann zeichnest du einfach deine Grafiken) ... ist imo der sauberste weg (abgesehen vielleicht von einem kompletten skinning framework falls sowas existiert, die werden aber wohl ähnlich arbeiten)

03.10.2004 - 17:33 Uhr

Vererbt werden sollte nur, wenn auch tatsächlich ein ist-ein Verhältnis herscht - nicht nur weil vielleicht die gleichen Variablensätze verwendet werden oder ähnliche oder gleiche Methoden definiert sind. Falls tatsächlich ein solches Verhältnis herrscht, kann es in diesem Fall mangels Mehrfachvererbung leider nicht wirklich sauber gelöst werden, ich weiche da normalerweise auf ein containment-pattern aus, d.h. ich lagere die ähnlichkeiten aus in eine gemeinsame klasse/struktur (oder enum wie du es gemacht hast) von der ich dann überall wo es gebraucht wird eine instanz als Klassenvariable erstelle ... hatt nebenbei auch einige vorteile (z.b. können mehrere instanzen die gleiche instanz der gemeinsamen Klasse verwendet) ....

30.09.2004 - 18:33 Uhr

Warum nicht? Bei einem Quader sind im allgemeinen ja auch nicht alle Seitenlängen gleich lang, nur weil es auch einen Würfel gibt bei dem das so ist...?

-> insgesammt hast du dann 31012 = 360 Plätze

29.09.2004 - 17:06 Uhr

Sehe ich auch so.

Hast du schon versucht, gleichzeitig die MSDE und den SQL Server zu installieren? Oder falls das nicht geht, nur die MSDE und die SQL Server Config/Dev Tools, nicht aber der Server selber? Mit dem Enterprise Manager und dem Querry Analyzer kannst auch direkt mit einer MSDE arbeiten, macht eigentlich keinen Unterschied auf dem dev Rechner (ausser man stösst an irgendwelche künstlichen Limiten) ...

29.09.2004 - 13:30 Uhr

uh, die haben da offenbar einiges abgemurkst in der VS.NET Standard Version 😭

29.09.2004 - 08:25 Uhr

Für was sind denn die Logon_Type Werte LOGON32_LOGON_NETWORK und LOGON32_LOGON_NETWORK_CLEARTEXT gut? Wenn man sich per AD anmeldet? (dann ist man natürlich auch automatisch auf den anderen Rechner im Netz berechtigt, aber das ist wohl nicht dein problem/fall ...)

28.09.2004 - 19:14 Uhr

Ja. Via Controls Collection kannst alle child controls durchgehen und jeweils auf deren Position direkt zugreifen (lesen und schreiben) ... geht aber natürlich nur wenn das Control die Positions-Eigenschaft nicht mit eigenem (blockierenden) Implementierungen überschrieben hat.

28.09.2004 - 18:21 Uhr

Hast du dir die advapi32 schon mal genauer angeschaut? Könnte evtl. weiterhelfen ... (bietet jedenfalls methoden für (netzwerk) logons)