Laden...
L
Benutzerbeschreibung

Forenbeiträge von Lord Hessia Ingesamt 497 Beiträge

14.09.2006 - 11:42 Uhr

Also wenn ich Dinge wie DataBinding richtig verstanden habe, dann benötigt man damit doch auch keinen SQL-Code mehr oder? Alternativ ist vielleicht auch NHibernate (gibt's noch andere Open Source Objekt-Relationale-Mapper?) interessant für Dich.

14.09.2006 - 11:21 Uhr

Am besten lädst Du Dir einen gescheiten Editor runter (z.B. Crimson - der ist kostenlos). Dann kannst Du auch sehen, in welchem Encoding die Datei gespeichert ist und dieses ggf. ändern. Mit Notepad klappt das nicht!

14.09.2006 - 11:18 Uhr

Für generische Listen verwendet man als Typ <T>

14.09.2006 - 11:17 Uhr

Wenn Du die Tabelle erstellt hast, dann musst Du doch auc wissen, wie die Felder heißen!? 🤔

13.09.2006 - 19:46 Uhr

Die Lösung des eigentlichen Problems scheint zwar schon gefunden, aber das will ich trotzdem noch einen Nachsatz zur GPL loswerden. Software, die unter der GPL angeboten wird, die kann man kostenlos nutzen und trotzdem Geld für sein Programm verlangen, man muss aber einen entsprechenden Hinweis hinzufügen.
Wenn man was an der unter der GPL stehenden Software ändert, dann muss man auch allen Quellcode öffentlich machen, der

ganz oder teilweise von dem Programm oder Teilen davon abgeleitet ist .
s. dazu auch: http://www.gnu.de/gpl-ger.html

13.09.2006 - 14:14 Uhr

Also ich kenne es z.B. von phpBB her so, dass eine weitere Tabelle angelegt wird mit Suchworten. Jedes Wort, dass irgendwann mal gepostet wurde und nicht in einer Sperrliste steht, das wird darin aufgeführt. Über eine weitere Tabelle werden Post und Suchwörter verknüpft.
Diese Liste muss natürlich nicht nur beim Erstellen sondern auch beim Update und Löschen (falls es das gibt) aktualisiert werden.

13.09.2006 - 12:57 Uhr

Original von purestrain
Just my 2 cents und off-topic

Wie steht es eigentlich unter VB.NET, wenn ich in c# 2 Methoden haette, die unterschiedliche Gross/Kleinschreibung haben?

VB.NET ist doch case insensitive, oder?

Ja. Wenn die beiden Methoden sonst die gleiche Signatur haben, dann kannst Du die in VB nicht verwenden.

13.09.2006 - 12:48 Uhr

Mh, also die von Dir gepostete Variante liefert bei mir auch immer leere Content-Daten zurück. Bist Du sicher, dass es per POST-Übergabe aus Formularen auch nicht funktioniert?

P.S.: Kannst Du bitte noch Code-Tags um den Quellcode machen?

13.09.2006 - 11:24 Uhr

Original von herbivore
Du könntest aber eine Klasse zur Anzeige von Messagen.Boxen schreiben, die immer nur eine zur Zeit anzeigt.

Das sieht dann so aus: http://www.deanliou.com/WinRG/ 😁

13.09.2006 - 11:10 Uhr

Ich nehme mal an es geht um diese Zeile:

(int)selectedTablesList.ht[idx] == selectedTableIndex

Warum vergleichst Du nicht direkt idx == selectedTableIndex ?

13.09.2006 - 10:50 Uhr

Ich habe mir den Code jetzt nicht angesehen, aber das hört sich sehr so an, als ob Du die Events, die Du beim Anzeigen des Dialogs mit += abonierst nicht wieder mit -= entfernst, wenn Du den Dialog schließt. Beim erneuen Anzeigen werden sie dann weider hinzugefügt.

12.09.2006 - 19:08 Uhr

Den Iterator und die zu durchlaufende Collection kann man in foreach nicht ändern. Das müsste eigentlich sogar Fehler verursachen, nicht bloß die Aktualisierung fehlschlagen.
Am einfachsten ist es, auf eine andere Schleife umzusteigen.

12.09.2006 - 18:26 Uhr

Ich weiß ich bin anspruchsvoll, aber wenn Du jetzt noch Kommentare einfügen könntest, wo jetzt was nicht funktioniert, dann wäre schon viel geholfen.

Außerdem wäre es super, wenn Du nur den Code postest, der auch relevant ist.

12.09.2006 - 17:45 Uhr

Das hängt davon ab, was Random liefert. Zahlen ab 0 oder ab 1?

Die MDSN sagt Returns a nonnegative random number.

Also nehme ich mal an Werte ab 0?

Dann solltest Du

int index = r.Next(array.Count - 1);

verwenden

12.09.2006 - 17:37 Uhr

Etwas Code bitte

12.09.2006 - 17:32 Uhr

Das liegt daran, dass der Index immer von 0 bin Count - 1 geht. Das hatte ich auch übersehen 🙄

12.09.2006 - 16:40 Uhr

Um nochmal auf die ursprüngliche Frage zurückzukommen. Im WSDL-Abstract der W3C steht folgendes:

WSDL has four transmission primitives that an endpoint can support:

  • One-way. The endpoint receives a message.
  • Request-response. The endpoint receives a message, and sends a correlated message.
  • Solicit-response. The endpoint sends a message, and receives a correlated message.
  • Notification. The endpoint sends a message.

Although the base WSDL structure supports bindings for these four transmission primitives, WSDL only defines bindings for the One-way and Request-response primitives. It is expected that specifications that define the protocols for Solicit-response or Notification would also include WSDL binding extensions that allow use of these primitives.

Heißt das jetzt, dass die .NET Web Services nur deshalb keine "Events" unterstützen, weil diese in SOAP nicht spezifiziert sind?

12.09.2006 - 16:17 Uhr

Du brauchst zusätzlich noch Attribute, auf denen die getter und setter arbeiten.

12.09.2006 - 16:12 Uhr

Ich meinte das so:


Random r = new Random();
this.listausgabe.Items.Add(r.Next(array.Count));

wird zu


Random r = new Random();
int index = r.Next(array.Count)];
this.listausgabe.Items.Add(originalListbox.Items[index]);

P.S.: Beim Posten von Quell-Code ist es immer hilfreich, die Codetags zu verwenden. Das kannst Du auch nachträglich noch ändern, damit auch Leute, die diesen Thread später lesen sollten, einen schön formatierten und gehighlighteten Code zu sehen bekommen.

12.09.2006 - 15:50 Uhr

Du darfst natürlich nicht r.Next zu der Liste hinzufügen, sondern musst diesen Wert als Index verwenden mit dem Du auf die Elemente der original Listbox zugreifst, also quasi originalListbox.Items[zufallszahl]

12.09.2006 - 11:06 Uhr

Original von dschmoegner
Allerdings ist jetzt schon wieder alles anderst

Ja, das kenn ich...

Original von dschmoegner
Die Daten werden von mir am Ende im csv als Importdateien abgelegt. Kann da also nicht auf mögliche Implementierungen zurückgreifen.

Da würde ich - wenn es auch nicht mehr interessant für Dich ist - doch gerne nochmal anknüpfen. Es ist ja kein Problem, die Daten dann wieder aus der Datenbank zu exportieren (viele DBMS unterstützen da auch csv als Dateiformat). Dann hättest Du das DBMS halt nur mal kurz "missbraucht" als Dublettenfinder.

12.09.2006 - 10:43 Uhr

In diesem Bereich gibt es ja bereits einige kommerzielle Lösungen, die einiges leisten aber auch entsprechend teuer sind. Die machen dann auch mehr als ein einfaches Soundex.

Wenn die Dubletten aber wirklich nur in Einfachheit vorkommen, wie Du's beschrieben hast (also Schreibfehler bzw. andere Schreibweise), dann dürfte ein Soundex schon Deinen Anforderungen genügen.

Die meisten Datenbanken unterstützen Soundex und Du könntest somit einfach alle Einträge nacheinander dort mit einem angepassten SQL-Statement einfügen und Dir die auswerfen lassen, die vermutlich doppelt sind. Da muss dann jemand per Hand drüber gehen und die eingetragenenen und die nicht eingetragenen Werte entsprechend Mergen, aber das dürfte deutlich einfacher sein, als 4000 Einträge per Hand zu machen. Ich würde mal schätzen, dass die beschriebene Lösung zuz programmieren maximal 2-3 Stunden in Anspruch nimmt, während das händische Einfügen wohl eher Tage dauert.

12.09.2006 - 01:47 Uhr

Ja, die mangelnde Aussagekraft und leider auch die Häufigkeit hat's mit der Klassen-Bezeichnung class Form1 gemeinsam 😁

11.09.2006 - 12:09 Uhr

Wofür benötigst Du denn bei manchen Einträgen den Key? Speichere doch einfach alle Werte ohne Key und greife über den Index darauf zu.

11.09.2006 - 10:09 Uhr

Wie sollte das gehen? Über was willst Du die Objekte später unterscheiden können?

11.09.2006 - 10:07 Uhr

Mit der Fehlermeldung kannst Du jetzt z.B. hier im Forum nochmal suchen und u.a. folgendes finden: SecurityPermission bei Application.Exit()

08.09.2006 - 21:47 Uhr

Hallo,

ich schaffe es einfach nicht, Thread.Invoke() aufzurufen, da es angeblich nicht definiert ist. Vielleicht kann man es ja wirklich nur aus unmanaged Code heraus aufrufen. Gibt's denn nicht noch irgendeine andere Möglichkeit, in einem Konsolenprogramm von einem bestimmten Thread aus die Ausführung einer Methode im Hauptthread anzustoßen?

Ich bin mittlerweile zu jeder Schandtat bereit, wenn damit nur das Problem endlich gelöst wird. Ich hatte z.B. jetzt im Hauptthread einen FileWatcher eingerichtet und im anderen Thread in diese Datei geschrieben, um so zu signalisieren, dass der Hauptthread eine bestimmte Methode aufrufen soll. Das hat aber auch nicht geklappt, da der FileWatcher wieder in einem eigenen Thread bearbeitet wird und man so auch nicht zurück in den Hauptthread kommt.

08.09.2006 - 16:40 Uhr

Ja, wenn man nicht jede Doku bis ins kleinste Detail studieren will, dann ist es auf jeden Fall sinnvoll, Close immer aufzurufen, wenn es angeboten wird.
Dieses gibt in der Regel eine unmanaged Ressource frei, auf die Du andernfalls bis zum Sankt Nimmerleinstag einen Verweis hältst, was diese zum einen blockieren kann und zum anderen den Garbage Collector diesen Verweis nicht entfernen lässt.

08.09.2006 - 16:25 Uhr

Du wirst das richtige Encoding verwenden müssen.

08.09.2006 - 13:31 Uhr

Original von willy
Was TiTime gesagt hat, ist auch richtig, denn mit dem Installer, wird dein dll mitgenommen, da brauchst du nicht jedesmal die exe und die dll zu kopieren.

Ja, das habe ich auch schon in meinem ersten Beitrag gesagt. Ich weiß nicht, wo das Problem ist. Dll kopieren will my_csharp offenbar nicht (sonst hätte er es ja getan) und die Anleitung zum Setup-Erstellen will er sich auch nicht durchlesen. Da bleiben dann nicht mehr so viele Möglichkeiten.

08.09.2006 - 12:57 Uhr

Original von my_csharp
Aber ich brauche trotzdem eine Antwort im Forum.

Warum?

08.09.2006 - 10:23 Uhr

@Hufy: svenson hat doch schon die richtige Signatur der Methode gepostet, die Fehlermeldung steht genau an der richtigen Stelle - also wo ist Dein Problem?
Eine Funktion aufrufen wirst Du doch wohl können

08.09.2006 - 10:19 Uhr

Ich kenne den Aufbau von CE-Anwendungen nicht, aber warum fragst Du beim beenden - wenn wirklich die 9 und nicht irgendein logischerer Button wie z.B. Cancel das Programm beenden soll - nicht nach, ob gerade eine Textbox ausgewählt ist. Das ist aber alles ziemlich mies, ich würde auf einen anderen Button umsteigen.

Was erwartest Du denn beim Setzen des Focus auf die Form? Ich würde erwarten, dass ein Kind-Element (vermutlich das erste oder das mit der kleinsten ID) ausgewählt wird. Und genau das geschieht ja offenbar auch.

07.09.2006 - 21:14 Uhr

Na, es liegt wohl eher an der fehlenden dll. Die wird nicht mit in die exe gepackt. Di musst Du noch mit auf den anderen Rechner kopieren - oder gleich nen Installer basteln (zu Setup Projekt müsste sich hier auch einiges in der Suche finden lassen).

07.09.2006 - 10:58 Uhr
if (datum + TimeSpan(0,0,5) < zweitesDatum) {
  
}
06.09.2006 - 19:19 Uhr

Ich glaube, bei Threadersteller und Lösungsschreiber handelt es sich um zwei verschiedene Personen.

Nichtsdestotrotz sind es natürlich die Patterns die die Welt bedeuten - oder so...

05.09.2006 - 17:19 Uhr

Original von cb666
der browser wird von <table verwirrt, das es nicht <table> ist.

Ok, dann habe ich da jetzt unser Missverständinis kapiert, glaube ich. Du willst also einen 'intelligenten' Algorithmus haben, der nicht komplettierte Tags schließt?

05.09.2006 - 17:00 Uhr

Das heißt, Du zeigst die eingegebenen Daten auf der nächsten Seite an, um dem Benutzer - vom Browser interpretiert - darzustellen, was er eigegeben hat?

Aber warum wird ein Browser von <table verwirrt? Er nimmt das doch einfach als gewöhnlichen Text an... und gibt es genauso aus.

05.09.2006 - 16:46 Uhr

Ich habe diese Diskussion auch gestern schon verfolgt, aber nicht geantwortet, weil ich absolut verwirrt bin, was genau Dein Problem ist.
Also, Du hast eine Webseite mit einem RichText-Editor und ein paar Textfeldern und willst nun, dass man in den Editor html-Tags schreiben kann und in die Textfelder nicht? Und wo genau gibt's Probleme mit der Anzeige?

04.09.2006 - 15:55 Uhr

Durch Deserialisierung!

Aber Spaß bei Seite. Im Moment machst Du alles händisch, d.h. Du ließt die Attribute Deiner Klassen aus und schreibst sie in eine XML-Datei. Beim Laden müsstest Du dann selber ein neues Objekt anlegen und dessen Werte setzen.

Wenn Du aber nach dem unter dem ersten Link vorgestellten und von svenson angesprochenen Verfahren vorgehst, dann schreibst Du einfach das Objekt in die Datei uns ließt es wieder aus, ohne Dich um seine Interna zu kümmern.

04.09.2006 - 11:10 Uhr

Welche Variante hast Du denn zum Schreiben der XML-Datei verwendet?

04.09.2006 - 11:08 Uhr

Prüfsumme bedeutet, dass Du Dir aus dem Inhalt der Datei einen eindeutigen (oder zumindest relativ eindeutigen) Schlüssel erzeugst. Wurde etwas geändert, dann sieht man das, weil erneutes Erzeugen eines Schlüssels aus der geänderten Datei einen anderen Schlüssel erzeugt.
Ein ganz einfaches aber ebenso bescheuertes Beispiel für eine Prüfsumme wäre z.B. das Zählen der Buchstaben. Diese ist natürlich alles andere als eindeutig, da man ja "schmidt" durch "mueller" erstezen kann und die Anzahl gleich bleibt. Deshalb gibt es deutlich ausgefuchstere Verfahren. Siehe zum Thema auch Hashverfahren oder MD5.

04.09.2006 - 02:04 Uhr

Original von Programmierhans
Thread.Invoke ?

Nicht dass ich das nicht versucht hätte... Aber IntelliSense im SharpDeveloper hat es nicht angezeigt. Evtl. liegt's an diesem Hinweis aus der MSDN:

This method is for access to managed classes from unmanaged code, and should not be called from managed code. For more information about IDispatch::Invoke, see the MSDN Library.

Wie ernst sind denn solche "should not" Aussagen aus der MSDN zu nehmen?

03.09.2006 - 21:48 Uhr

Ich würde gerne nochmal nachhaken: Wie kann man in einer Kondolenapplikation innerhalb eines Threads sagen, dass eine bestimmte Methode im Hauptthread ausgeführt werden soll?

03.09.2006 - 15:54 Uhr

Stimmt fast. Dein Projekt muss aber nicht zwangsläufig eine exe-Datei enthalten. Man kann mit seinem Projekt ja auch einfach nur einen dll erstellen, die man mit anderen Projekten verwenden will. Das (dll-)Projekt ist dann halt einfach nicht ausführbar.

Das mit den .NET-Framework dlls kannst Du auch einfach mal testen, wenn Du z.B. eine Klasse aus dem Namespace System.Data verwendest. Dann musst Du zunächst noch diese .dll einbinden.

03.09.2006 - 02:36 Uhr

Also auf eine Deiner Fragen gibt die SQLite-Homepage ganz klar Antwort:

The original author of SQLite has dedicated the code to the public domain. Anyone is free to copy, modify, publish, use, compile, sell, or distribute the original SQLite code, either in source code form or as a compiled binary, for any purpose, commercial or non-commercial, and by any means.

Und auch auf die Frage, ob es eine gute Wahl für den PDA ist, geben sie Auskunft:

Because an SQLite database requires little or no administration, SQLite is a good choice for devices or services that must work unattended and without human support. SQLite is a good fit for use in cellphones, PDAs, set-top boxes, and/or appliances. It also works well as an embedded database in downloadable consumer applications.

Ich denke auch, dass es gerade in solchen Bereichen seine Einsatzberechtigung hat.

03.09.2006 - 02:29 Uhr

Hm, also es handelt sich um eine Konsolenapplikation und der einzige Thread, den ich dort starte, das ist der für den HttpListener.

Ich habe mir jetzt mal, da Du mich auf die Idee mit den Threads gebracht hast, deren Namen ausgeben lassen und tatsächlich, der den Fehler verursacht, ist der vom HttpListener. Kannst Du mir da gerade noch einen Tipp geben, wie ich aus dem "herauskomme". Control.Invoke funktioniert ja vermutlich nur bei GUI-Anwendungen. Ich müsste ja wahrscheinlich im HttpListener-Thread sagen, dass er die Methodenaufrufe wieder im Hauptthread durchführen soll.

02.09.2006 - 18:13 Uhr

Wenn Dich die Sekunden nicht stören, dann kannst Du auch einfach tsErgebnis.ToString() zuweisen.
Um die Sekunden zu entfernen kannst Du tsErgebnis.ToString().Substring(0,5); schreiben.

Diese Varianten haben einen großen Nachteil: Sie versagen, wenn die Dauer über 24 Stunden ist. Da ist Jörgs Variante deutlich stabiler und schöner.

02.09.2006 - 18:01 Uhr

Hallo,

ich verzweifel gerade über dem seltsamen Verhalten eines COM-Objekts bzw. der Events, die es wirft und hoffe, dass mir da jemand helfen kann.

Das Problem ist folgendes:
Ich habe einige Events eines COM-Objekts aboniert. Nun hat der Benutzer meines Programms aber die Möglichkeit, die Konfiguration - während das Programm läuft - umzustellen. Je nachdem, was er geändert hat, müssen evtl. andere Events aus dem COM-Objekt registriert werden. Also will ich zunächst alle Events entfernen und sie anschließend neu registrieren. Bei entfernen mit -= bleibt das Programm aber einfach hängen. Keine Exception, nix - es geht einfach nicht mehr weiter.
Woran kann das liegen?

Dieses Verhalten tritt übrigens nur auf, wenn man eine Änderung an der Konfiguration meines Programms vornimmt, was folgenden Programmverlauf zur Folge hat:

  • Anforderung der Konfigurationswebseite
  • HttpListener bekommt das mit und zeigt die Webseite an
  • Änderung und Bstätigung der Konfigurationswebseite durch den Benutzer
  • HttpListener bekommt Änderung mit und weist Klasse AppSettings an, die Konfiguration wegzuschreiben
  • AppSettings schreibt die Konfiguration weg und benachrichtigt die Hauptklasse per Event, dass sich die Konfiguration geändert hat
  • Hauptklasse lädt die neue Konfiguration, analysiert sie und verfährt entsprechend der Änderungen (im konkreten Fall ruft sie die Methode unregisterListeners() der Klasse auf, die die Events des COM-Objekts registriert hat und diese bleibt dann hängen)

Wenn man einfach mal so aus der Hauptklasse die unregisterListeners aufruft, dann funktioniert das ohne Probleme.