Laden...
Avatar #avatar-1860.gif
der Marcel myCSharp.de - Member
Ingenieur-Studi Dresden Dabei seit 11.02.2006
Benutzerbeschreibung

Forenbeiträge von der Marcel Ingesamt 564 Beiträge

26.06.2006 - 16:28 Uhr

Hi!

Das ist eigentlich nur grundlegende Mathematik:

für die x-Koordinate im kartesichen Koordinatensystem (p ist der Prozentwert in Form von 0 bis 1, r ist der Radius des Diagramms):
x(p)=rcos(p2PI)
y(p)=r
sin(p2PI)

du musst x(p) und y(p) nur noch in Bildschirmkoordianten umrechnen und schon hast du es.

Viele Grüße 🙂

Der Marcel

23.06.2006 - 20:43 Uhr

Hi!

Ich weiß es nicht ganz 100%ig, aber zumindest ist mir nichts bekannt, was dies leisten würde.
MS hat diesen Weg sicher bewußt nicht eröffnet, da es aus MS-Sicht ein super Einfallstor für Schadprogramme wäre.
Generell ist es so, dass ein Programm immer unter dem Account läuft, aus dem heraus es gestartet wurde. Darüber hinaus kann sich kein Programm mehr Rechte beschaffen, als es laut Account haben darf.

der Marcel

15.06.2006 - 23:41 Uhr

Hi!

Das ist die SID. Also wie herbivore schon sagt, die genaue Windows-interne Benutzerkennung. Wie du sie über .Net abfragen kannst, habe ich in Nochmal Registry... beschrieben 😉

Viel Spaß!

der Marcel

10.05.2006 - 23:28 Uhr

Hallo Alois!

Für Welche Zeile zeigt der Debugger denn die Exception an? Sonst kann ich auch nur Rätselraten machen, da ich den Fehler nicht sehe 🙂

der Marcel

EDIT: Möglich wäre, dass du mit mf eine neue Instanz von MainForm erstellst, diese aber nicht die ist, die angezeigt wird, kann das sein? Du müsstest in dem Fall der Klasse mit dem Konstruktor die Referenz auf die bestehende MainForm-Instanz mitgeben.

08.05.2006 - 12:11 Uhr

Hi du mit dem langen Namen! 🙂

Ich habe das hier über Google finden können: http://www.codeproject.com/cs/miscctrl/maskedcsedit.asp

Hatte auf codeproject einen Artikel über eine Masked TextBox in Net1.1 gefunden. Den Link hab ich aber leider verschmissen und nicht mehr über Google gefunden.

Viel Erfolg damit!

der Marcel

EDIT: Hab noch was gefunden: http://www.codeproject.com/vb/net/Complete_Textbox.asp

08.05.2006 - 10:48 Uhr

Hi Andi123!

Das Thema gab es tatsächlich schon öfters und die Lösungen wurden auch diskutiert.
Du kannst zum Beispiel ab dem Vorhandensein einer neuen Datei in regelmäßigen Abständen die Dateigröße prüfen. Sobald diese sich nicht mehr verändert, ist der Kopiervorgang abgeschlossen.

der Marcel

07.05.2006 - 14:55 Uhr

Hi Nullpunkt!

Richtig!

Dann Adde es doch erst dann, wenn es da ist! Das heißt auf null prüfen und wenn dem so ist, nicht adden und weiter. Wenn dies nicht geht, dann musst du die schon erwähnten Platzhalter einfügen.
Der Vorteil den ich beim Dictionary sehe, ist, dass es 2 Elemente haben kann, welche sich zB jedoch schon als queue[0] und queue[89] ansprechen lassen. Über die Schlüssel kann man ja auch einfach iterieren und so jedes vorhandene Element ansprechen.

der Marcel

EDIT: Wenn es nicht geht, bützen dir auch die Platzhalter nichts, denn auch die musst du ersetzen, wenn die eigentliche Referenz dann mal auf ein Objekt zeigt 🙂

07.05.2006 - 14:31 Uhr

Hi Nullpunkt!

Dann doch ein Dictionary! 🙂

Welche Objekte möchtest du denn Adden?
ich dachte vorhin inet.Document.Links[7] ist nicht das Element, welches du Adden möchtest. Scheint es aber zu sein, oder?
Mit dem Dictionary müsste der Fall doch dann klar sein. Wenn die Elementposition vorher fest steht, dann erstellst du ein Dictionary<int, Link>. das int steht als Schlüssel für die Position in der Reihenfolge und der Wert ist dann das zugehörige Objekt (in meinem Beispiel Link) an dieser Stelle. Ich denke, du hast bisher vielleicht den Sinn von Schlüssel und Wert verwechselt.

der Marcel

07.05.2006 - 14:20 Uhr

Hi!

Nun habe ich 2 Fragen:
Weißt du bei jedem Element die exakte Position in der Liste? (also zB Index 100)
Oder fügst du zwischen 2 vorhandenen Objekten eins ein und die genaue Indexierung ist variabel?
Wenn die Indexierung variabel ist (was ich bisher nicht angenommen hatte), dann wäre vielleicht eine List<> doch das richtige, diese hat eine Methode Insert 😉

der Marcel

07.05.2006 - 13:15 Uhr

Hi Nullpunkt!

Da die Reihenfolge bei dir anscheinend von vornerhein feststeht (Soll heißen, dass du schon beim ersten weißt, dass es meinetwegen an die 100. Stelle kommt) würde ich auch ein Dictionary verwenden.

Mein Vorstellung, welche ich beim Antworten hatte, war das Codebeispiel von herbivore in Grundlegendes zu Hashtables, welches ich hier nochmal herausgreife:

a [5] = 97;
a [8798] = 97;
a [9979679] = 97;

Das würde an dieser Stelle bedeuten, dass der Schlüsseldatentyp ein int ist.
Bei

Dictionary<HtmlElement,string> hans = new Dictionary<HtmlElement,string>();
hans.Add(inet.Document.Links[7],"test");

geht wahrscheinlich schief, dass inet.Document.Links[7] = null ist und damit kein Objekt dahinter steht. Stattdessen würde ich eben schreiben

Dictionary<int, string> hans = new Dictionary<int, string>();
hans.Add(7,"test");

😉

der Marcel

EDIT1+2: Berichtigungen

EDIT3: Seltsamerweise bekomme ich auch leere Seite bei der deutschen Dictionary-Hilfe in der MSDN, würde meinen, ich war da schonmal.
Alternativ steht sie aber in der Offline-Version der MSDN auf Deutsch bereit.

07.05.2006 - 11:25 Uhr

Hi!

Muss jetzt mal eine ganz dumme Frage stellen: Ist die Methode überhaupt beim EventHandler regiistriert? Ich weiß, im Designer sollte das so sein, aber hast du das schonmal geprüft? Der Fall würde ja alles erklären 🙂

der Marcel

07.05.2006 - 11:08 Uhr

Hi!

Wenn du die Reihenfolge vorher schon genau weißt, würde ich die Hashtable weiter vorne sehen 🙂

der Marcel

07.05.2006 - 10:41 Uhr

Hi!

Ich verfolge den Thread schon von Anfang an.
Nun möchte ich dazu ersteinmal meine Meinung loswerden. Wenn man von der Assembler-Programmierung herkommt, kann ich die Punkte, warum gotos Methoden vorzuziehen sind, nachvollziehen. Sobald man aber die Assembler-Programmierung verlässt, geraten diese (erstmal schneinbaren) Vorteile ad absurdum, da labels und gotos eine Linearität des Programms voraussetzen, welche es gar nicht mehr gibt. Ein modernes Windows-Programm reagiert ereignissgesteuert mit dafür vorgesehenen Methoden. Klassen kann man schreiben und anwenden. Der Anwender der Klasse will von dem Inhalt derer nicht viel erfahren, umgedreht ist es der Klasse egal, wer sie anwendet. Labels sind an dieser Stelle nicht nur unangebracht sondern äußerst unpraktisch.
Daher sollte man das Rad nicht neu erfinden wollen und in der objektorientierten Programmierung Methoden einsetzen. Letztenendes läuft Cyrons Vorschlag mit Labels auch nur eine händische Methodenimplementierung hinaus (Ein Block an Anweisungen wird gestartet, wenn dieser abgearbeitet ist, wird zurückgesprungen)
@Cyron: In so einem Forum muss man sich vor Augen halten, dass man schriftlich mit den anderen kommuniziert. Daher kommt ein und derselbe Beitrag bei 10 Personen in 10 verschiedenen Sichtweisen an. Generell ist dir niemand böse oder macht sich lustig, das möchte ich dir versichern. Für ein Forum wie dieses ist es durchaus eine sinnvolle Sache dieses Thema zu diskutieren. So hast du deine Argumente gebracht und wir unsere Gegenargumente 🙂 Peinlich muss es dir aus diesem Grund erst Recht nicht sein! Im Prinzip ist es eine echt gute Sache, dass du dir solche Gedanken machst und zeigt, dass du dich in das Thema reinkniest 👍 Allerdings ist die Gegenmeinung praktisch bewährt und etabliert. 😉

der Marcel

07.05.2006 - 10:18 Uhr

Hi!

In einer Hashtable wären Platzhalter nicht notwendig 🙂

der Marcel

07.05.2006 - 10:02 Uhr

Hallo gwert_a!

Das ist nett von dir, dass du dir die Mühe machst und soviel Code tippst. 👍 Letztenendes finde ich aber, dass es für den Fragestellenden schwer ist, sich in soviel Code hineinzufinden. Schließilich wurde der Code nicht von Ihm geschrieben und zudem wirken deine (für dich verständlichen Berzeichnungen) für ihn dann vielleicht völlig aus dem Zusammenhang gerissen und unverständlich. Daher würde ich dir als Tipp geben, wenn du jemandem hilfst, nur die prägnantesten Teile als Code-Schnipsel zu geben. 😉

der Marcel

07.05.2006 - 02:33 Uhr

Hallo Daniel_g!

Öffentliche Events, bei denen sich eine andere Form einklinken kann, können dazu benutzt werden. Die Events transpoertieren die benötigten Daten einfach mit, wenn sie gefeuert werden.

der Marcel

07.05.2006 - 02:30 Uhr

Hi!

Die Grundidee dazu 🙂 : Du fügst in Form1 dem Click-EventHandler des Buttons eine Methode hinzu, welche Form2 instanziiert und über Show aufruft.

der Marcel

07.05.2006 - 02:26 Uhr

Hi!

Für diese Aufgabe eignet sich eine Hashtable statt einer gewöhnlichen Liste ganz gut. Verwende dafür das Dictionary<T,T>, die Schlüssel/Wert-Datentypen kannst du dabei selbst festlegen und über die Collection der Schlüssel könntest du iterieren.

der Marcel

05.05.2006 - 18:55 Uhr

Hi!

Ich habe den Thread mal eben kurz überflogen.
Es gibt einige mathematische Bedingungen (Formeln), bei denen Primzahlen herauskommen. *4k+1 *4k+3 *6k+-1

Hier der Link zur Wikipedia

Vielleicht hilft euch das ein Stück weiter. Im Prinzip könnte man ja k mit einer Zufallszahl füllen. 🙂

der Marcel

02.05.2006 - 23:47 Uhr

Hi!

Über Remoting stellt ein Server ein Serverobjekt bereit, auf das der Client zugreifen kann. Wenn man das geschickt macht, lassen sich sogar Events auf diese Weise verschicken. Beispiele findest du dazu in der MSDN.

der Marcel

02.05.2006 - 23:16 Uhr

Hi!

Wenn alles Net2.0-Programme wären, dann über Remoting.
Ansonsten müssten m.E. spezielle APIs dafür bereitgestellt werden.

der Marcel

02.05.2006 - 22:40 Uhr

Hi!

einfache Zeilen lassen sich mit dem StreamReader lesen.

der Marcel

02.05.2006 - 20:43 Uhr

Hi NonSense!

Was möchtest du denn eigentlich machen? Bist du dir sicher, dass der Code wirklich funktioniert? Ich denke nicht.

der Marcel

02.05.2006 - 14:07 Uhr

Hi Khemisset!

Das sind wirklich die Grundlagen zu Arrays. Deine Fragen können mit hoher Wahrscheinlichkeit schon durch das lesen vom guide to C# aus dem Weg geräumt werden. Beherzige bitte herbivores Vorschlag ein Buch über C# zu lesen. Auf die Schnelle kommst du heute auch mit dem guide klar.

der Marcel

EDIT: Bei herbivores letzter Antwort gibts es nichts an Code zu zeigen. Versuche doch bitte ersteinmal Arrays zu verstehen. Wenn du das hast, wird dir ein kleine (manchmal nachteilige) Eigenschaft aufallen, welche die ArrayList (besser List<T> in Net2.0) löst.

02.05.2006 - 13:16 Uhr

Hi housefreak!

Noch einfach wäre, wenn du

myPl.MyValue.AddRange(entry);

in einer öffentlichen Methode von MyPlaylist_x kapselst. So kannst du oben stehenden Zugriff in der Methode ausführen und mit dieser dann auch das Event feuern.

der Marcel

EDIT: letztenendes läuft ja herbivores Vorschlag fast auf das selbe hinaus. Nur eben eine extra Klasse mit Vererbung fällt dabei raus.

02.05.2006 - 13:11 Uhr

Hi Khemisset!

Wie die anderen schon sagen, ist das ausbügeln von selbst verantworteten Programmierfehlern ein ganz schlechter Stil 😉
Mit der count-Eigenschaft der ArrayList bekommst du zurück, wieviele Elemente sie hat. Bei n Elementen kannst du also bis zum (n-1). Element zugreifen. n-1 deshalb, weil das erste Element den Index 0 besitzt und so weiter und so fort. 😉

der Marcel

EDIT: Das wurde schon gesagt, habe ich übersehen 😁

01.05.2006 - 10:36 Uhr

Hallo herbivore!

Mir sind allerdings Fälle bekannt, indem es nicht gelingt Net1.1 Programme mit dem 2.0 Framework laufen zu lassen. 😉 Dies betrifft den Grafikkartentreiber von ATI.

der Marcel

29.04.2006 - 23:32 Uhr

Hi!

Das Thema wurde schon mehrfach diskutiert. Folgende Links sollten dir helfen:
mehrere Programminstanzen verhindern?
Dateiassoziation
Programm on Top

Du erstellst doch gar keine Instanz MainForm.
Falls MainForm deine Form-Klasse ist, erstelle zunächst eine Instanz und rufe dann Show auf.

MainForm mf = new MainForm();
mf.Show();

der Marcel

EDIT: Sorry, habs gesehen. MainForm ist der Instanzname und die zugrundeliegende Klasse AktualCall.
Aber dennoch. in der Main-Methode erstellst du gar kein Objekt MainForm. Das fehlt dir.

29.04.2006 - 22:04 Uhr

hi!

Original von Weyoun
Leider gibt das Programm keine Lösung heraus (irgendwann bricht es mit einer Fehlermeldung ab "Der Index war außerhalb des Arraybereiches")

Die Fehlermeldungen sind doch sehr prägnant und geben einen guten Anhaltspunkt, was schief läuft.

Original von Weyoun
Kann es daran liegen, dass, wenn der String mal nur 7 oder 8 Zeichen lang ist (kommt vor, wenn relativ kleine 3-stellige Zahlen miteinander multipilizert werden), kein Vergleich der 9-ten Stelle vorgenommen werden kann?
Das wäre sehr schade, da dann das komplette Programm für die Katz' wäre.

Nein, du kannst die 9. Stelle nicht prüfen, wenn der String nur 8 Zeichen hat 😉 Du kannst aber prüfen, ob die Stelle existiert. Also ob der Index größer gleich der Länge ist. Wenn dies der Fall ist, kannst du die Schleife mit break; abbrechen. Dein Programm ist deswegen nicht für die Katz.

der Marcel

29.04.2006 - 20:46 Uhr

Hi Weyoun!

Das liegt nicht am ch sondern an quersumme! 🙂

In er While-Schleife würde ich als erste Anweisung die quersumme 0 setzen, sonst bleibt der vorherige Wert erhalten.

der Marcel

EDIT: Welchem Zweck dient der Algorithmus eigentlich? 🙂

29.04.2006 - 20:40 Uhr

Hi Weyoun!

Mit herbivores Code passiert das nicht. Zeige doch mal den Code (mit dem drumherum). Vielleicht machst du ja einen anderen fundamentalen Fehler. 😉

der Marcel

27.04.2006 - 21:34 Uhr

hi!

deine schwester sekkieren?

der Marcel

27.04.2006 - 21:31 Uhr

Original von herbivore
Hallo rockthecity,

sei bitte ein bisschen vorsichtiger bei der Wahl des Titels. Nicht das unser Forum noch wegen Terrorverdacht geschlossen wird. 🙂

herbivore

😁 auf den ersten Blick sah es wirklich komisch aus 🙂

der Marcel

27.04.2006 - 18:09 Uhr

Hi!

Das habe ich vorhin übersehen. Mit MyTable.NewRow() sprichst du die Methode statisch, also ohne Instanz von MyTable, an. Das funktioniert natürlich nicht. Einfach nur NewRow() müsste reichen, damit sprichst du die Methode innerhalb der Klasse an.

der Marcel

27.04.2006 - 18:01 Uhr

Hi!

Du instanziierst auch eine blankoform und benennst die Instanz Form2. Das ist eigentlich sinnlos 😉

Richtig lautet es:

Form2 form2 = new Form2()
form2.Show();

der Marcel

27.04.2006 - 17:57 Uhr

Hi Diemo!

Meinst du innerhalb der Klasse, welche erbt?
Dann müsste base.NewRow funktionieren.

Mit base greift man auf Eigenschaften und Methoden der Basisklasse zu.

der Marcel

27.04.2006 - 17:49 Uhr

Hi DaMoe!

Das ist ja die harte Variante 🙂

der Marcel

27.04.2006 - 17:46 Uhr

Hi!

Eine genauer Thread zu dem Thema befindet sich in den FAQ 😉

Prüfen, ob es sich bei einer Stringvariable um eine Zahl handelt

der Marcel

27.04.2006 - 11:04 Uhr

Hallo!

Folgendes lässt sich bei mir erzeugen:

DateTime jetzt1 = DateTime.Now;
DateTime jetzt2 = DateTime.Now;

if (jetzt2 > jetzt1)
   textBox1.Text = "Yes";
else
   textBox1.Text = "No";

Dies lässt bei mir No in der TextBox stehen, weil der Rechner beim Abrufen von jetzt1 und jetzt2 einfach so schnell ist, dass die beiden identisch sind und die größer-Bedingung nicht erfüllt ist. Ein simples ≥ korrigiert das Problem.

Kann es bei dir auch daran liegen?

der Marcel

27.04.2006 - 10:57 Uhr

Hi herbivore!

Was ist, wenn ich weiß, dass eine bestimmte Exception auf jeden Fall auftreten kann? Zum Beispiel, dass beim Zugriff auf eine Datei der Zugriff verweigert wird? Dann möchte man doch vielleicht gar nicht die Standardfehlerroutine durchlaufen, sondern das Problem eleganter behandeln, oder?

der Marcel

27.04.2006 - 10:52 Uhr

Hi!

Die Operatoren wie <,>,≤, ≥ funktionieren.
Hast du die schonmal probiert?

der Marcel

EDIT: wieder ein doppelpost 😁

27.04.2006 - 10:16 Uhr

Original von talla
EDIT: Vielleicht sollten wir doch was wegen der nah aufeinander folgenden Posts machen 😉

🙂

27.04.2006 - 10:05 Uhr

Hi!

Wenn ich talla richtig verstanden habe, sind wir der selben Aufassung. Sollten einige Exceptions vorhersehbar sein, werden diese abgefangen und behandelt. Zum Schluss wird ein generisches Exception-Handling mit catch(Exception ex) angehangen um auch auf unvorhergesehene Fehler zu reagieren.
Falls keine vorhersehbar sind, fällt Schritt 1 natürlich raus und man macht nur ein generisches Exception-Handling.

der Marcel

27.04.2006 - 09:39 Uhr

Hi!

string MacAdress;

ist einfach ein string und kein Array.

richtig muss es also lauten:

string[] MacAdress = new string[2 * BiteLength];

Dann ist es ein Array und doppelt so groß wie MacByte.

der Marcel

27.04.2006 - 09:28 Uhr

Hi schaedld!

Ich denke, dassdas hier and er Exception schuld ist: MacAdress[i2], MacAdress[i2+1]
MacAdress muss doppelt soviele Elemente haben wie MacByte.

der Marcel

27.04.2006 - 09:23 Uhr

Hi maik!

Ist

DateTime.Now.ToString("yyyyMMddHHmmssfff");

das, was du möchtest?

Bei mir gibt das "20060427092423062" aus.

der Marcel

27.04.2006 - 01:20 Uhr

Hallo herbivore!

Ich denke, wir meinen das selbe. Mit meinem letzten Post meinte ich nicht, dass die Größenordnung des Fehlers gleich der Größenordnung der Auflösung ist. Sondern die mögliche Auflösung hängt vom konstanten Absolutfehler ab, denn man bei der Messung begeht.
Insofern habe ich aber bei meinem Beitrag als ich das Beispiel mit der Atomuhr nannte, die Angabe 10^-15s falsch als absoluten Fehler interpretiert, was aber ein relativer Fehler bezogen auf 1s ist.

der Marcel

26.04.2006 - 23:54 Uhr

Hallo Studi!

Eine gute Variante ist, dass die Anwendungslogik Events berteitstellt um anderen Programmteilen irgendetwas mitzuteilen und deine GUI sich bei den Events, die sie braucht, registriert. So ist sichergestellt, dass die Anwendungslogik die GUI nicht kennen muss.

Dazu ist vielleicht auch Problem mit EventHandler und Frage zu einem eigenen Event recht interessant.

der Marcel

26.04.2006 - 23:39 Uhr

Hi herbivore!

Auf der Seite war nur von Genauigkeit die Rede. 🙂
Die Angabe 10^-15s dürfte der Laufzeitfehler sein, welcher sich nach einer real vergangenen Sekunde einstellt. Die mögliche Auflösung hängt ja gerade von dem Fehler ab, den mann während der Messung begeht.
Wer misst, misst Mist 🙂

der Marcel

26.04.2006 - 19:47 Uhr

Hi svenson!

Das würde mich nun aber doch mal interessieren. 🙂
Habe mal etwas gegoogelt, und herausgefunden, dass es die Atomuhr in Frankfurt mit 10^-15s noch präziser als gefordert hinbekommt. Denkbar wäre, wie du sagst, auch das Ausnutzen von Schwingungen im GHz-Bereich.
Werde mal hier am Uni-Lehrstuhl nachfragen 🙂

der Marcel