Laden...

Forenbeiträge von DarKlajid Ingesamt 386 Beiträge

26.02.2007 - 11:44 Uhr

Dann ist da doch ein (Paradebeispiel fuer einen ugly hack, aber was soll's) Loesungsansatz. Such das Fensterchen nach dem Neustart periodisch. Wenn es weg ist, wurden die Daten geladen. Hoffentlich.

26.02.2007 - 11:41 Uhr

Die Regexp koennte vielleicht (ich weiss nicht genug ueber deinen Text) so aussehen:


(DeinSuchString)(?=[^>]*<)

Oder so, falls du nur nach ganzen Woertern suchen willst.


\b(DeinSuchString)\b(?=[^>]*<)

Disclaimer: Ich hab das nur rudimentaer getestet..
Wenn du mir jetzt a) erklaerst was du genau willst und b) mir erklaeren kannst, was ich dir gerade als Loesung praesentiert hab, dann helf ich gern bei weiteren Problemen (z.B. sag ich dir dann, wie du das Problem mit dem "muster" ersetzt "Muster" loest).

26.02.2007 - 11:26 Uhr

Wenn du feststellst, dass das Dingen zwischenzeitlich als Anwendung zu sehen ist:
Hat das Dingen vielleicht zwischendurch ein (verstecktes?) MainForm?
Das waere der einzige Ansatz den ich sehen wuerde..

26.02.2007 - 11:16 Uhr

Mahlzeit.

Selbst Microsoft hat inzwischen ein Tutorial/eine Anleitung fuer die Nuetzung von PostgreSQL. Wer also ueber den MS SQL Server Tellerrand schauen und eine wirklich gute Open-Source Datenbank kennenlernen mag:

http://port25.technet.com/archive/2007/02/22/postgresql-on-windows-a-primer.aspx

23.02.2007 - 16:18 Uhr
static void Main(string[] args)
        {
            // Entspricht einem new String(), auf den x zeigt.
            String x = "Das Original";
            // y und x sind eine Referenz auf den gleichen String (Original)
            String y = x;
            // x ist eine _neue_ Referenz auf einen neuen String
            x = "Geändert";
            // y wird nach wir vor als "Original" ausgegeben
            Console.WriteLine(y);
        }
23.02.2007 - 15:12 Uhr

Oder das ganze problemlos mit einer eMail an den Autor und einer entsprechenden Nachfrage wasserdicht klaeren..

23.02.2007 - 15:10 Uhr

System.ValueType ?

23.02.2007 - 14:49 Uhr

Deine "Zellen" Analogie klingt immer nach neuronalem Netz, aber du willst ja anscheinend eher dann "Organe" bauen.

Der Vergleich hinkt m.E. nach, denn (als Verfechter der Steinzeit..) ich wuerde ins Feld fuehren:

  • Zellen sind Objekte.
  • Zellen spezialisieren sich (Vererbung)
  • Zellen haben einen festen (Bau-)Plan. Was einmal eine Leberzelle war wird nicht wieder zur Stammzelle.
  • Es gibt eine ueberschaubare Anzahl interessanter Zellen, die man rel. einfach getrennt beschreiben kann (Klassen..). Es sind nicht beliebige und willkuerliche Zellen moeglich.

Heureka, die Steinzeit-OOP besteht aus ... Zellen. Dann koennte man jetzt noch den MSDN Webcast eines deutschen Entwicklers rauskramen, der Microkernel (nicht im typischen OS Sinn) und Zellenbasierte Entwicklung thematisiert.. Allerdings hat auch er wieder eine andere Idee als du.

Aus eigener Sicht kann ich da eine Faszination am Experiment verstehen. Irgendeinen (..) Vorteil in dieser Vorgehensweise sehe ich jedoch nicht. Aber es ist ja auch dein Baby..

Innovation in der Entwicklung wuerde ich dann eher bei AOP und/oder MDA suchen..

23.02.2007 - 13:35 Uhr

Aber - warum?
Im Code sowas zusammen zu bauen ist m.E. nach muessig. Mit einem anderen Tool dergleichen zu generieren geht auch ohne solche Spruenge.. MDA koennte dir vielleicht gefallen. Ich sehe halt aktuell gar keinen Vorteil und dafuer aber eine Menge Aufwand die du betreibst. Gern lass ich mich belehren, aber kannst du das Konzept (vor allem in Bezug auf die Zielsetzung/Intention) nochmal teilen?

23.02.2007 - 13:15 Uhr

Original von Stu42
du machst dir Sorgen 🙂

wenn du alleine an einem Project arbeitest, ist es eh wurst, da nur DU den code lesen musst.

Aehm.. Das er sich Gedanken macht, finde ich loeblich. Auch wenn nur DU den Code lesen musst. Vielleicht aendert sich das mal? Vielleicht willst du ihn auch in 2 Jahren nochmal lesen? Vielleicht musst du mal bei einem Bewerbungsverfahren Code vorlegen? Und alte (schlechte) Gewohnheiten lassen sich schlecht ablegen, wenn man dann im Berufsalltag gelandet ist..

23.02.2007 - 13:06 Uhr

Original von pkoeppe
Welcher Variante ist nun der Vorzug zu geben?

s. Herbivore: Welche "Rundung" brauchst du?
Was erscheint dir besser (zu lesen/schreiben)?

Original von pkoeppe
Hatte irgendwo im Netz mal eine Gegenüberstellung gefunden, bei der der Compiler-Cast um 80% schneller war als der Cast der Convert-Klasse.

Hast du eine fertige Applikation, bei der Profiling den Engpass bei double zu int casts aufzeigt? Nein? Dann ist der Grundgedanke schon ein Fall von "premature optimization". Wieder vergessen..

23.02.2007 - 12:26 Uhr

Ah, ich sehe/verstehe das Problem..
Nein, das meinte ich eig. nicht. Ich sprach von entweder vorwaerts oder rueckwaerts durchlaufen. Nicht wild rumspringen. Bei nochmaligem Lesen des Originalbeitrages scheint das aber gewollt zu sein..

23.02.2007 - 12:18 Uhr

Hmm.. Hab ich schon diverse Male gesehen, wenn auch eher in der Java Welt..

23.02.2007 - 12:08 Uhr

Dann nimm zwei. Nicht die Bonbons, sondern Enumerator..

23.02.2007 - 12:04 Uhr

Herbivore: Nein, sein Problem ist, dass er


<foo>
<index>13</index>
</foo>

auf Abruf haben will, danach dann ggf. aber


<foo>
<index>42</index>
</foo>

Um nochmal kurz zu dem Schema zu kommen: Solche XML Dateien sind der Grund dafuer, warum ich immer wieder predige das XML zu haeufig und zu dumm angewandt wird. Dieses Schema ist einfach grauenhaft.

Und jetzt schalten wir wieder zur Frage zurueck:

Mit einigen Funktionen des XmlDocuments kann man XPath Expressions benutzen um bestimmte Nodes zu selektieren (Wenn jetzt der Name nicht klar ist..).
XPath kann widerum nicht nur (wie im simpelsten Fall) Nodes nach Struktur und Name selektieren, sondern auch Praedikate (zweiter Google Term) benutzen um die Suche noch weiter einzugrenzen.

Wenn du das hinbekommen hast, schrei. Wenn nicht, schrei auch. Aber liefer Details und Beispiele.

23.02.2007 - 11:16 Uhr

Ich vermute das (seltsam anmutende) XML Schema ist so vorgegeben und muss hingenommen werden.

Momentan scheint dein Code sequentiell durch die ganze Datei zu laufen und alle Werte zu ermitteln die du brauchst. Das ist nicht die optimale Loesung (lies: XPath koennte es besser), aber es ist immerhin moeglich. Was genau ist jetzt erstmal hiermit das Problem? Wenn du den Index pro Abschnitt bestimmst und weisst welchen Index du suchst, was geht dann nicht?

23.02.2007 - 10:49 Uhr

Original von TomB
Hm, scheinbar hab ich eine Lösung gefunden, hab aber keine Ahnung ob das nur zufällig geht und ob das in der Form Probleme machen kann.

MSDN, NetworkStream.Read()
Remarks
This method reads data into the buffer parameter and returns the number of bytes successfully read. If no data is available for reading, the NetworkStream.Read method will block until data is available. To avoid blocking, you can use the DataAvailable property to determine if data is queued in the incoming network buffer for reading. If DataAvailable returns true, the Read operation will complete immediately. The Read operation will read as much data as is available, up to the number of bytes specified by the size parameter. If the remote host shuts down the connection, and all available data has been received, the Read method will complete immediately and return zero bytes.

Was soll da jetzt ungeklaert sein?

23.02.2007 - 10:39 Uhr

Original von pkoeppe
Hallo,

bisher dachte ich, dass

(Int32)einInt  

und

Convert.ToInt32(einInt)  

das gleiche Ergebnis liefern. Allerdings musste ich gerade feststellen, dass dem nicht so. Zum Beispiel wird bei x,5 bei ersterer Variante immer abgerundet und bei der zweiten mal auf und mal ab. Woran liegt das?

Das du "einInt" als Plathalter fuer z.B. 0,5 nimmst, find ich etwas seltsam.
Zum Thema: Herbivore hat ja schon gesagt, dass beides unterschiedlich implementiert ist. Ich wollte nur nochmal auf das "mal auf- und mal abrunden" kommen:

MSDN, Convert.ToInt32(double)
Return Value
value rounded to the nearest 32-bit signed integer. If value is halfway between two whole numbers, the even number is returned; that is, 4.5 is converted to 4, and 5.5 is converted to 6.

23.02.2007 - 10:35 Uhr

Zeig doch mal was du bisher versucht hast oder woran es scheitert. Es geht doch nur darum, dass wir dir dann gerne Fehler korrigieren oder sagen wo der Ansatz nicht passt - aber ungern/gar nicht komplette Loesungen produzieren wollen wenn vorher kein sichtbarer Aufwand des Fragestellers betrieben wurde.

So richtig hilfreich koennte (und wuerde man vermutlich auch) man dir antworten, wenn:

A) Du deine Intention beschreibst. Oftmals lassen sich Probleme in diesem Forum mit einem "Mach es lieber geschickter so" beantworten, wenn man verstanden hat was der Mensch auf der anderen Seite eigentlich haben moechte.

B) Du dein Problem konkret einfasst. Der Thread hier wollte am Anfang irgendwie seriell kommunizieren, jetzt geht es um XML. Und selbst da ist das Problem nur "Geht nicht". Nimm Bezug auf C und D

C) Du moeglichst nahe an der Realitaet stehende Nutzdaten (Dateien, Resourcen, in diesem Fall der XML Struktur) beispielhaft aufzeigst.

D) Du (auch ggf. nicht funktionierende) Codebeispiele (C3 Codetags nicht vergessen) bringst, die zeigen DASS du etwas versucht hast und WIE du es versucht hast.

Das ganze ist fuer dich nicht viel Aufwand und erspart uns das herumraten. Ausserdem hilft man lieber Leuten die augenscheinlich auch selbst arbeiten.. 😃

No offense intended.

22.02.2007 - 17:15 Uhr

Gratulation zu der Loesung..
Magst du vielleicht nochmal aufzeichnen wofuer das jetzt ist? Also - was du damit vorhast? Das hab ich bisher nichtmal im Ansatz verstanden und interessieren wuerd es mich ja..

22.02.2007 - 16:20 Uhr

Original von el_MKay
Auf das Stichwort "XPath" muss man erstmal kommen 😃

Schlechte Ausrede.

MSDN..
XmlDocument.SelectNodes (inherited from XmlNode):
Overloaded. Selects a list of nodes matching the XPath expression.

Danke.

Bitte.

22.02.2007 - 16:15 Uhr

Google, XPath Tutorial -> Erster Treffer..

22.02.2007 - 16:04 Uhr

Original von el_MKay
Hi, mit deinem Code komme ich nicht so ganz klar.
Mein XML sieht folgendermaßen aus:

<?xml version='1.0' standalone='yes' ?>
<DOWNLOADS>
<FILE>
<URL></URL>
<DESCRIPTION></DESCRIPTION>
</FILE>
<FILE>
<URL></URL>
<DESCRIPTION></DESCRIPTION>
</FILE>
</DOWNLOADS>

Wie kann ich jetzt mit deiner Methode prüfen, ob <URL> existiert. Bzw was ist an meiner Methode falsch? 😃

Edit: Ich habe nicht nur ein <URL>-Tag der auf Existenz überprüft werden soll, sondern mehrere verschiedene. Und nur dann soll er mit dem File-Block weiterarbeiten.


XmlDocument doc = new XmlDocument();
doc.Load(Pfad + "file.xml");

XmlNodeList xnl = doc.SelectNodes("//FILE[URL and DESCRIPTION]");

foreach (XmlNode xn in xnl) {

// Was denn pruefen?

}
22.02.2007 - 14:53 Uhr

Errrmm..

Google, C# XSLT

Resultat ist z.B. das hier.

22.02.2007 - 14:41 Uhr

Ich vermute du versuchst gerade dein an anderer Stelle gepostetes MSI-/Installations-Problem zu umgehen?

Original von 7.e.Q
Wie realisiert man sowas am besten?

XSL / XSLT

22.02.2007 - 14:36 Uhr

Nur aus Neugier (und vielleicht ist die Frage dumm): Zeichnest du bei jedem OnPaint den Graphen komplett neu?
Wie waere es, wenn du stattdessen im TimerEvent einen Zeichenvorgang in ein Bild startest und in der Komponenten.OnPaint nur noch das fertige Bild zeichnest/kopierst?

Grob also double buffering manuell?
Auf der anderen Seite sind meine Erfahrungen mit .Net und zeichnen so ziemlich genau exakt null.

22.02.2007 - 14:31 Uhr

Das wird jetzt arg off-topic (und ich bin schuld), aber ein Nerd ist eher eine traurige Gestalt. Du suchst vielleicht das Wort Geek.. 😉 Wie auch immer, ich halt mich hier nun bedeckt mit Nebensaechlichkeiten.

22.02.2007 - 14:27 Uhr

Original von BerndFfm
Beachte dass MySQL kostenpflichtig ist wenn du was verkaufst, SQL Server Express jedoch nicht.

Es gibt bei MySQL zwei Lizenzen. GPL oder die kommerzielle Lizenz. Solltest du dein Programm unter der GPL veroeffentlichen, kannst du es trotzdem verkaufen..
Die GPL verbietet nicht den Verkauf (dazu gibt es einen Haufen expliziter Infos, Google hilft), verlangt aber natuerlich die Nutzung der GPL fuer die gesamte Applikation (obwohl man hier vielleicht diskutieren kann, dass die Verbindung Datenbank <-> Applikation nicht gleich dem verlinken von Libraries ist).

Grundproblem: Es gibt jede Menge FUD rund um die GPL. Und MySQL hat einen viel zu schlechten Ruf.. Schade.

Um der Diskussion hier noch etwas beizusteuern und weil ich eben doch ein Freund der Open-Source Projekte bin: PostgreSQL ist frei in so ziemlich jedem Sinne (BSD License) und eine hervorragende Datenbank. C# Support faende man hier.

In diesem Sinne: Willkommen im Forum.

Edit: GPL Link eingebaut, weil's gerade spannend war 😉

22.02.2007 - 13:45 Uhr

(Genau um 1337 so eine Antwort zu posten ist a) Zufall oder b) Humor. Sorry, couldn't resist){gray}

22.02.2007 - 12:53 Uhr

Original von sra
Mir ist klar, dass das so einfach wohl nicht sein wird, aber ich bin schliesslich Programmierer und sollte das schon packen können 😄

In diesem Fall: Viel Glueck.

22.02.2007 - 12:52 Uhr

Original von JAck30lena
gut in ordnung ich habe mich falsch ausgedrückt.

man hat explizit in shoutcast meines wissens nicht die möglichkeit nur benutzer mit bestimmten userdaten zuhören zu lassen.

Mit Bordmitteln? Korrekt. Ansonsten gibt Google fuer "Shoutcast Authorization" z.B. das hier.
Icecast kann das von Hause aus.

22.02.2007 - 12:14 Uhr

Original von JAck30lena
und die shoutcast und ähnliche nur in die öffentlichkeit streamen.

Unfug/Falsch.

Zudem klingt seine Anforderung in meinen Ohren nach "Ich will Musik hoeren", nicht nach "Ich will Tage lang basteln und irgendwann kommt vielleicht auch mal nen Ton an"..

21.02.2007 - 14:07 Uhr

Pure Neugier: Warum erfindest du das Rad hier neu? Ist das ein Hobby oder brauchst/willst du das nur haben? Im letztgenannten Fall wuerde ich doch eine beliebige Alternative (Google spuckt da sicherlich noch Tonnen weiterer aus) nehmen..

21.02.2007 - 13:44 Uhr

Und man fragt sich ebenfalls, warum du einen String in einen float in einen String baust.. Der String enthaelt doch anscheinend die richtige Genauigkeit und einen exakten Wert. Wenn du das jetzt nicht zum rechnen brauchst, warum willst du das nicht so belassen?

20.02.2007 - 14:56 Uhr

In Strings? Nein. In regulaeren Ausdruecken waere es das Zeichen fuer den "Start of Text" Anker.
Will sagen:

^bla

matcht

blafasel

aber nicht

faselbla

Kein Plan ob das problemrelevant ist, fuerchte ich.

20.02.2007 - 01:50 Uhr

Original von svenson

Original von marsgk
Es gibt halt einfach keine Möglichkeit das Encoding sicher festzustellen.

Kommt auf den Inhalt an. Im Prinzip aber schon - wenn auch nicht ganz sicher:


>

Die Idee ist ganz nett, aber sie hat mehrere Schwaechen.
Wie du schon erwaehnt hast, ist der Inhalt eine davon. Ansonsten ist es ein recht grosser Overhead dafuer, dass eigentlich (tm) die Applikation in den meisten Faellen wissen sollte, welches Encoding genutzt werden wird..

20.02.2007 - 01:47 Uhr

Original von BerndFfm
PS.: Was ist eine Byte Order Mark ?

Obwohl das nicht hierher gehoert: Google gibt zu dem Begriff eigentlich NUR korrekte Ergebnisse zurueck.. Anders: Das ist kein Geheimnis und das kann man sich in 2s ersuchen. Oder man hat entsprechend viel mit Unicode machen muessen, dass Google hier nichts neues erzaehlen kann...

20.02.2007 - 01:29 Uhr

Ich tendiere zu "Doku lesen", aber grob: Wenn du eine Assenbly signierst, dann ist das nicht anders als die (seit Jahren bekannte, keinesfalls innovative) Signierung eines Java-Applets, einer eMail oder sonstwas.
Die Signatur stellt in diesem Fall zwei Sachen sicher: Der Code wurde nicht veraendert und jemand mit dem passenden private Key (lies: DU) hat den Kram unterschrieben.

Was dsa jetzt mit leicht oder weniger leicht crackbar zu tun hat, kannst du mir vielleicht anhand eines plausiblen Beispiels verdeutlichen?

Edit: Deine Files werden native kompiliert? Bist du dir sicher? Das klingt gerade nach einem gewaltigen Mischmasch, was deine Fragen angeht..
Und selbst wenn sie es werden: Wo ist der Zusammenhang zum Thema?

19.02.2007 - 18:29 Uhr

Original von Hockl
In Basic geht das ja sehr elegant mit dem MID-Befehl.

Es ist doch immer wieder verwunderlich, wie stark Geschmaecker auseinander gehen koennen.. 😉

19.02.2007 - 14:58 Uhr

Original von der-basti

ProcessStartInfo psi = new ProcessStartInfo("cmd.exe");  
psi.WindowStyle = ProcessWindowStyle.Normal;  
psi.Arguments = "help";  
Process.Start(psi);  

Dein Code ruft "cmd.exe help" auf, was nicht geht. Genausowenig wie dein "cmd.exe cd&quot; nicht tut was du willst. Man koennte "cmd.exe /c help" aufrufen und wuerde die cmd.exe Hilfe sehen. Man koennte auch "cmd.exe /c cd&quot; aufrufen und wuerde in einer Shell die sich direkt danach beendet ins Wurzelverzeichnis des Laufwerks wechseln.. Da fehlt mir jetzt aber ein wenig die Sinngebung..?

18.02.2007 - 15:06 Uhr

Original von Amanogawa

if (i = "0")  

Wenn du doch selbst sagst, dass es eine einfache Frage ist.. Wieso hast du keine Loesung gefunden? 😉

In der Zeile sind zwei sachen falsch:

  • Du vertauscht einen Vergleichsoperator mit einem Zuweisungsoperator. Du willst da nicht a = b schreiben..
  • Du vergleichst eine Zahl (0, 4711, 42) mit einer Zeichenkette ("a", "17", "Egal23")

Reichen die Hinweise? 😉

15.02.2007 - 15:38 Uhr

Aehm...
Nein, du hast die Frage nicht verstanden. 😉

Zum Thema: Kann es sein, dass du fuer diese DLL die richtige DllImport.CallingConvention setzen musst?

Ich bin kein P/I Experte, aber ansonsten sieht deine Deklaration fuer mich gut aus..

Edit: $*#@$* Smilies aus.

15.02.2007 - 15:11 Uhr

Original von phunkydizco
Ich brauche alle Zeilen aus der DataTable bei denen der Wert eine bestimmten Spalte nicht eindeutig ist. Es soll eine Fehlermeldung ausgeben und die Zeilen schließlich gelöscht werden.

Warum, wenn mir die dumme Frage erlaubt ist, ist dann nicht die Tabellendefinition dahinter nicht schon entsprechend? Warum darf man ueberhaupt erst zweimal das gleiche eingeben? Oder was uebersehe ich?

15.02.2007 - 12:44 Uhr

Original von liberado
du bekommst ja alle mit dem group by und anzahl > 1 !

Quatsch. Eben nicht.
Durch das Group By bekommt er halt von jedem mehrfachen Vorkommen nur eine ID.

15.02.2007 - 12:05 Uhr

Bei mir mal getestet:


 select * from bentest;
+------+-------+
| id   | text  |
+------+-------+
|    1 | foo   |
|    2 | bar   |
|    3 | foo   |
|    4 | bla   |
|    5 | fasel |
|    6 | bla   |
+------+-------+
6 rows in set (0.00 sec)

select count(*) as anzahl,id,text from bentest group by text having anzahl > 1;
+--------+------+------+
| anzahl | id   | text |
+--------+------+------+
|      2 |    4 | bla  |
|      2 |    1 | foo  |
+--------+------+------+
2 rows in set (0.00 sec)

Sowas?

14.02.2007 - 14:19 Uhr

Oder man lernt wie string.Format() funktioniert.. 😉

14.02.2007 - 14:07 Uhr

Kannst du mir jetzt nochmal erklaeren wie du SIP und ISDN verheiraten willst?
Was hast du genau vor?

14.02.2007 - 10:19 Uhr

Entweder
DateTime.ParseExact()
oder die RegExp.

Das Ganze manuell zu machen halte ich fuer ungeschickt. Die RegExp so zu bauen, dass sie mehr als das blosse Stringformat prueft halte ich fuer zu stressig/besch.. les- und wartbar.

Ich denke DateTime.ParseExact() ist schon genau das was du haben willst..

13.02.2007 - 13:18 Uhr

Original von dr4g0n76

"wenn du doch nach wie vor manuell etwas tun musst (naemlich in diesem Fall die zu speichernden Properties zu definieren)"
Die Property-Angaben sind nur eine Einschränkung. Wird nichts angegeben würde alles gespeichert werden.

Wie herbivore schon beantwortet hat: ALLES laesst sich eben nicht serialisieren.

Original von dr4g0n76
Ich suche einfach nach einem geeigneten Objekt-Persistenz-Manager.

Hatte ich schon db4o erwaehnt? 😉

13.02.2007 - 13:16 Uhr

Schreibst du vielleicht ein \n beim urspruenglichen Verschluesseln? Ist allerdings ins Blaue geschossen..