Laden...
O
onlinegurke myCSharp.de - Member
Student/Hilfswissenschaftler Dresdner in Karlsruhe Dabei seit 15.01.2007 778 Beiträge
Benutzerbeschreibung

Forenbeiträge von onlinegurke Ingesamt 778 Beiträge

22.05.2007 - 10:48 Uhr

Ersetz mal 'Database' mit 'Initial Catalog' und bei 'User ID' bin ich mir nicht sicher, ob das wirklich zusammen geschrieben wird.

Generell ist aber der Einsatz eines System.Data.SQLClient.SQLConnectionStringBuilder (oder wie auch immer der genau heißt) wärmstens zu empfehlen, dann passieren dir solche Sachen nicht!

21.05.2007 - 15:24 Uhr

@herbivore

{ und } können das Ende eines beliebigen Codeabschnitts sein, also von

  • einer Klassendefinition
  • einer Methodendeklaration
  • einer Struktur
  • einer Enumeration
  • einer Eigenschaft
  • einer Get-Deklaration
  • einer Set-Deklaration
    ...
    u.v.m.

Ich hab vor einiger Zeit ja mal ein Progrämmchen programmiert um bestehenden Quellcode zu sortieren, da ging's dann im Parser drum zu erkennen, was der gerade eingelesene Code nun darstellt, um z.B. die Eigenschaften zu sortieren und auszulagern. Eine nicht funktionierende Vorversion davon für VB.NET (das sagt einem ja, welcher Codeabschnitt gerade beendet wird) steht auch irgendwo unter Projekte. Bei C# ist sowas aber viel aufwändiger, weil man die ganze Zeit die { und } mitzählen muss (außerdem ist eine Felddefinition nicht wirklich erkennbar)

21.05.2007 - 13:01 Uhr

Was mich an C# stört ist aber die Uneindeutigkeit von { und }, weil das das Parsen von Quelltext sehr erschwert...

21.05.2007 - 12:58 Uhr

Die Aussage sollte sein, dass das vermeintliche Feature von anderen Sprachen, statische lokale Variablen anlegen zu können (z.B. eben VB.NET), nur eine reine Compilezeitgeschichte ist, und damit in meinen Augen nicht wirklich ein Limit...

21.05.2007 - 12:30 Uhr

Naja, ich will ja nix sagen, aber auch statische lokale Variablen gibts bei VB.NET, die sind im IL-Code auch als Klassenvariablen implementiert. Wenn ich eine statische Integer-Variable mit dem Namen i in einer Methode Test anlege, dann erzeugt VB automatisch die Klassenvariable $STATIC$2001$Test$i, die im IL-Code mit dem Modifikator specialname ausgestattet ist.

21.05.2007 - 08:14 Uhr

Ja, das ist in der Tat möglich, nur solltest du dir bewusst sein, welche Folgen das hat, die sind nämlich ziemlich heftig. Die komplette Shell wird ersetzt und du brauchst eine neue. Erstmal fehlen dir gewohnte Sachen wie Startleiste, Desktop (glaub ich, bin mir aber nicht sicher) und halt Explorer. Und da brauchst du noch ne andere Shell und die aufzutreiben dürfte nicht unbedingt trivial sein. Ich hab das Experiment mal unter 98SE gemacht (ging damals auch schon). Die Optik hat danach teilweise (hab mehrere Shells probiert) wirklich nach was ausgesehen, aber entweder war die Shell alles andere bedienerfreundlich, oder instabil, oder beides.

16.05.2007 - 11:08 Uhr

Das bedeuted, dass du auf dem Ordner, wo das Projekt gespeichert ist, ziemlich wenig Rechte hast, und es daher durchaus zu kleineren und größeren Problemen kommen kann (ich durfte am Anfang, wo ich das gleiche Problem hatte, nicht mal eine Datei erstellen, obwohl ich eigentlich Schreibrechte hatte... 🙁 )

16.05.2007 - 11:06 Uhr

Wenn du es über eine Schleife machst würd ich aber nie über Enum.GetNames gehen, sondern den Enumerationswert erst auf Integer casten und dann die 64 Fälle durchprobieren, damit hast du das Problem mit den Flagkombinationen nicht.

16.05.2007 - 09:08 Uhr

Ja, dazu müsste man aber wissen, was ein IView ist. Wenn es eine Schnittstelle ist, die Inhalte anzeigen soll und dabei z.B. Formulare benutzt, dann gehört TopLevel definitiv nicht rein. Wenn es ein Formular sein soll, dass eben über eine Schnittstelle erreichbar sein soll, dann gehört es rein. Es kommt also auf den Abstraktionsgrad an, den du brauchst/haben willst/sollst etc.

16.05.2007 - 08:28 Uhr
  1. (Meiner Meinung nach) Falsches Forum (das betrifft das Thema ComponentModel, und das gehört eher in die Basistechnologie)

  2. Das was du brauchst ist kein Designer, sondern ein Editor. Bei http://www.codeproject.com gibts irgendwo eine ziemlich respektable Basisklasse für so einen Editor (übrigens vom gleichen Autor auch eine ebenfalls sehr gute Basisklasse für Designer). Dann kannst du dir einen komplett neuen Editor basteln. Der 'Hinzufügen' Button fehlt, weil KeyValuePair<string, eRecordSetView> keinen parameterlosen Konstruktor hat. (Dictionary<string, eRecordSetView> implementiert ja die ICollection<KeyValuePair<...>> und nur deshalb wird überhaupt ein Editor angezeigt)

15.05.2007 - 16:55 Uhr

Original von Jo0oker
einen ansatz habe ich schon.

Schön für dich.

Der einfachste Weg ist mit Sicherheit IO.Path.GetFileNameWithoutExtension von beiden Pfaden zu vergleichen, bzw. wenn die unbedingt im gleichen Verzeichnis liegen müssen halt auch das Verzeichnis...

15.05.2007 - 16:52 Uhr

Es geht in der Tat eleganter (aber nicht effizienter): Array.ConvertAll

15.05.2007 - 14:22 Uhr

Dann blende die Funktion für Intellisense und in der Doku aus und überlade sie in der abgeleiteten Klasse, dann kommen eventuelle DAU-Entwickler auch nicht auf die Idee, die Methode so auszuführen, dass da was schief geht. Kosten des Verfahrens: Ein Cast, der aber gegenüber den Redudanzen, die du sonst hast, vernachlässigbar ist.

15.05.2007 - 14:09 Uhr

Na dann mach doch eine Basisklasse, mach die AddVariant-Methoden virtual und überschreib sie dann, indem du noch eine Prüfung davor schiebst, die halt schaut, ob der Typ des angegebenen Objektes tatsächlich zb IDocumentVariant ist...

15.05.2007 - 10:34 Uhr

wert.Value = System.DBNull.Value;
//oder auch
wert.Value = null;

Das sind aber zwei grundverschiedene Dinge. Hast du's schon mit beidem probiert?

15.05.2007 - 10:10 Uhr

Was heißt Linie? Wenn es eine Gerade ist, dann stimmt die Aussage von Mystique, ansonsten ist die Bogenlänge einer Funktion f(x) gleich dem Integral von x1 bis x2 (Anfangs und Endpunkt) über Wurzel (1+(f'(x))²)

//Edit: Letzteres ist natürlich eigentlich auch nur ein Pythagoras, insofern hatte Mystique da auch Recht...

15.05.2007 - 08:48 Uhr

Morgen allerseits,

Ich bin 19 Jahre alt, Zivi (noch, bis Ende Mai) am Uniklinikum Dresden und wenn ich damit fertig bin erstmal n Jahr in Irland und dann Student (eigentlich wollte ich immer Mathematik machen, jetzt kippts langsam Richtung Informatik)

Auch ich habe Hobbys (welch Wunder):

An erster Stelle steht natürlich meine Freundin, und da die gerade Abi geschrieben hat war das in der letzten Zeit fast meine einzige Freizeitbeschäftigung...

Alles Andere ist dann ungeordnet:
-Orientierungslauf: Beim OL weiß sicher wieder keiner was das ist, deswegen erklär ich's mal (ganz kurz). Man rennt mit Karte, Kompass und Chip bewaffnet durch den Wald und muss möglichst schnell halt Kontrollpunkte (Posten) finden, wo dann mittels Chip die Zeit genommen wird.
-Rennen: Ich gehe jede Woche mal eine Stunde rennen (~12km)
-Programmieren: Ich programmier noch nicht lange (seit Beginn des Zivis), und arbeitsbedingt in VB.NET, wenn ich damit fertig bin wechsle ich aber vllt zu C#, Freizeitmäßig hab ich bis jetzt recht wenig programmiert, das größte Projekt sind meine beiden Ameisenvölker (AntMe)
-Tanzen: Ich gehe gerne Tanzen (nicht Disco, sondern Gesellschaftstanz), seit der neunten Klasse (also jetzt 5 Jahre). Dieses Jahr war ich sogar beim Semperopernball mit dabei...

Gruß,
Georg

//Edit: Ich hab vergessen zu erwähnen, dass ich eigentlich auch zur musikalischen Fraktion gehöre (10 Jahre akustische Gitarre)...

14.05.2007 - 17:05 Uhr

Nein, du verwechselt da etwas. Component ist eine Klasse, IDataAdapter eine Schnittstelle. Eine Klasse kann genau eine Klasse erben, aber mehrere Schnittstellen implementieren. Ein IDataAdapter definiert ja, was ein Adapter überhaupt ist, eine Klasse, die IDataAdapter nicht implementiert, ist demzufolge kein Adapter.

14.05.2007 - 15:47 Uhr

der kleinste gemeinsame Nenner ist immer Object 🙂,
der größte gemeinsame Nenner von DataAdaptern (egal ob typisiert oder nicht) sollte doch aber IDataAdapter sein, oder nicht? Und IDataAdapter bietet dir genau das, was du brauchst...

14.05.2007 - 13:48 Uhr

Naja, man könnte den Befehl höchstens einfach mal ausführen und dann den IDataReader fragen, was anderes geht nicht (wie auch, der Select-Befehl ist ja nur eine arme kleine Zeichenkette, die von der großen weiten Welt (Datenbank) keine Ahnung hat...)

14.05.2007 - 10:09 Uhr

Naja, wenn du so ne Sachen öfter machen willst eignet sich da vorkompilierter Code immer besser, weil die Ausführungszeit halt bedeutend niedriger ist. Ob man das jetzt in eine View oder in eine Skalarfunktion packt ist Ansichtssache, aber separieren sollte du solche Berechnungen meiner Meinung nach auf jeden Fall (Es sei denn es geht nicht anders)

14.05.2007 - 09:02 Uhr

Komplette Entwurfszeitunterstützung ist aber ein Thema, dass die Autoren der Artikel auf codeproject.com oft stillschweigend übergehen. TypeConverter manchmal, Editoren eher selten, Designer eigentlich gar nicht...

11.05.2007 - 14:14 Uhr

Der Editor heißt (Reflector) System.Drawing.Design.ImageEditor und befindet sich in der Bibliothek System.Drawing.Design, da kommst du also nicht wirklich ran, bzw., der wird so gestaltet sein, dass du nicht einfach kommen kannst und sagen, hier das Projekt nehmen...
Einzige Lösung: Eigenen Editor schreiben...

11.05.2007 - 10:41 Uhr

Hm, du arbeitest also wie in dem CodeProject-Artikel mit ICustomTypeDescriptor, was mir persönlich nicht so zusagt, weil du da eine Vererbungshierarchie aufbaust (alle Collections, die dieses Verhalten an den Tag legen müssen SelectedObjectsTypeConverter erben), die m.E. nicht sein muss. Mir persönlich gefällt der Ansatz wie ich das schon oben gesagt hab über TypeConverter besser, weil da die Vererbungshierarchie wegfällt und die ganze Geschichte damit unglaublich viel mächtiger wird (man könnte einen TypeConverter auch ohne Probleme auf Klassen anwenden, die in Fremdbibliotheken sind, auf die man keinen Zugriff hat).

ICustomTypeDescriptor ist (vermute ich mal, anhand des Designs) für andere Aufgaben gedacht, z.B., wenn eine Instanz erst zur Laufzeit entscheiden soll welcher Editor benutzt werden soll, vor allem auch welcher TypeConverter benutzt werden soll, dann ist das das Einsatzgebiet. Solange ein statischer TypeConverter aber zum Ziel führt finde ich, sollte man ihn benutzen...

11.05.2007 - 09:13 Uhr

Naja

(double)var

wenn var die Variable ist, sollte ausreichend sein. Außerdem musst du nur einen von den beiden zwingend konvertieren, die andere Konvertierung dürfte implizit klappen...

11.05.2007 - 08:10 Uhr

oder noch genauer:

Was ist daran genauer? Wenn ein Double genau rauskriegen willst und dazu zwei Floats dividierst hast du rein gar nichts gekonnt, außer eine niedrigere Genauigkeit. Die 8 Byte Speicher, die du dabei sparst kann man unter Jux verbuchen. Was am Ende am besten ist, kann man so sowieso nicht sagen (Was ist denn die 1 und was die 400?)

11.05.2007 - 07:58 Uhr

Sub ist das VB-Schlüsselwort für Funktionsdefinitionen; es wird in C# nicht benötigt.

Das ist nicht ganz richtig. Sub wird in C# sehr wohl benötigt, heißt aber anders (void). Das Schlüsselwort Function (VB) wird in C# allerdings wirklich nicht benötigt.

10.05.2007 - 15:29 Uhr

Das wird unter Garantie nicht gehen, da .NET-Assemblys immer in IL geschrieben kann, womit C++ logischerweise nichts anfangen kann. Was höchstens noch gehen würde (kann ich aber nicht sicher sagen, weil ich davon wenig Ahnung hab), wäre den gleichen Code mit einem C-Compiler und mit einem .NET-Compiler für C zu kompilieren, dann hast du zwei DLLs, die aber den gleichen Inhalt haben (müssten)

10.05.2007 - 08:02 Uhr

Du willst also nur den Quellcode ohne Kommentare messen? Geht nicht, nicht einfach, da müsstest du ja erst einen Parser schreiben, der erkennt, wann Quellcode Quellcode ist...
Außerdem gehören Kommentare auch mit zum Quellcode

Gegen die Diskriminierung von Kommentaren!

09.05.2007 - 17:04 Uhr

kann mir jemand helfen?

Wie? Genau sagen, was du machen musst können wir (d.h. die Community) erst, wenn wir detaillierte Informationen haben, ab wann zwei Nummern für dich gleich sind. Die beiden Vornullen wären für mich bei Telefonnummern schon ein Unterschied...

09.05.2007 - 15:38 Uhr

Ich würd dir aber empfehlen aus

if (InputData != String.Empty)
if System.String.IsNullOrEmpty(InputData)

zu machen, weil du sonst keine Überprüfung auf Null-Werte hast...

09.05.2007 - 15:34 Uhr

Nur so, wär es nicht viel einfacher und repräsentativer die Dateigröße der Codedatei zu ermitteln?

09.05.2007 - 15:31 Uhr

Nein, ich mein, die Variante über UserControl wär ja genau das, aber gehört hab ich's noch nicht (im Bereich der theoretischen Informatik fehlt mir quasi alles, weil ich (noch) nicht studiert habe)...

09.05.2007 - 14:29 Uhr

Ja, wenn man streng nach dem Prinzip der Objektorientierung vorgeht, müsste man das so machen, aber, angenommen ich möchte spezielle ComboBox machen, mit der man automatisch immer alle auf dem Rechner installierten Laufwerke auswählen kann und das gewählte Laufwerk als DriveInfo-Objekt abfragen kann (keine Ahnung ob's die Klasse gibt, aber das ist ja egal). Dann lässt einem das Design der ComboBox keine ausreichende Chance, und eine komplett neue ComboBox zu entwickeln, dafür ist der Entwicklungsaufwand dann doch zu groß...

09.05.2007 - 13:57 Uhr

@herbivore:
Naja, das Problem ist ja nu, dass man auf das Desgign der ComboBox wenig Einfluss hat. Klar könnte man ein UserControl erstellen und darein dann eine ComboBox, womit man dann nur bestimmte Eigenschaften nach außen geben könnte, aber das giubt ja wohl ein deutliches Effizienzproblem...

09.05.2007 - 13:22 Uhr

Gibt es eine Einstellung die mir auch die Verweise in abgeleiteten Klassen anzeigt? Klar geht das mit dem normalen Suchen, wäre aber schöner wenns mit der alle verweise suchen funktion ginge.

Nein, das geht nicht, das kann auch gar nicht gehen, da der Grundsatz der Objektorientierung es verbietet (eine Klasse sollte nichts über ihre Erben wissen). Was aber geht ist der Umweg über den Compiler (Feld umbenennen und dann hast du alle Verweise als Fehlermeldungen 😄), Nachteil an der Sache, ist, dass Intellisense logischerweise nicht funktioniert und du die Variable danach natürlich wieder zurück umbenennen musst (also am besten Lesezeichen drauf)...

//Edit: Falsches Zitat...

09.05.2007 - 13:04 Uhr

Was willst du denn wissen?

Bücher kenn ich dazu allerdings nicht...

09.05.2007 - 08:19 Uhr

Du kannst es mal probieren und dein eigenes ToolStripItem bauen, indem du ein Control definierst, dass die Tabelle beinhaltet und dann ein ToolStripControlHost verebst...

03.05.2007 - 16:29 Uhr

VS lange Zeit offen gelassen, aber das kann's ja wohl nicht sein...

Der Fehler ist eigentlich mehr oder weniger von jetzt auf gleich aufgetreten, ohne irgendwelche Veränderungen am Code. Ich meine, ja, Microsoft ist ja für die Eigendynamik seiner Programme bekannt, aber das witzige dabei ist, das Projekt ist das winzig kleine Testprojekt gewesen, das vom Riesenprojekt mehr oder weniger erstellt wurde (eine Codedatei generiert, die anderen aus einem Archiv entpackt), bei dem Großprojekt gibts keinerlei Probleme. Naja, keine Ahnung, ist wie gesagt nur ein kleines Testprojekt, da ist das nicht tragisch, aber den Fehlertext fand ich mal wieder genial...

03.05.2007 - 16:19 Uhr

Morgen allerseits,

VS hat mir gerade folgenden Fehler gebracht: "Das Designerladeprogramm hat keine Stammkomponente bereitgestellt, aber den Grund nicht angegeben. "

Abgesehen davon, dass ich diese Fehlerbeschreibung fast mit unter die Top 10 der blödsinnigsten Fehlertexte aufnehmen würde (die Nummer 1 "Die Datei existiert" schlägsts nicht, aber ist auch nicht schlecht), hat jemand ne Idee, was das sein könnte?

03.05.2007 - 15:47 Uhr

Hallo

  1. Wenn man mit Zeichenkettenverkettungen arbeitet, bei denen mehr als zwei Zeichenketten im Spiel sind, ist der +-Operator zu langsam, mögliche Alternativen sind für eine bekannte Anzahl Zeichenketten String.Concat() oder (besser) einen System.Text.StringBuilder, bei dem du Zeichenkette dann einfach mit ToString() ermittelst.

  2. Die einfache Methode, die du wahrscheinlich gesucht hattest, ist String.Join. Wenn du mit einer List<String> arbeitest (sehr zu empfehlen), dann kannst du die Foreach-Schleife auf String.Join(Environment.NewLine,l.ToArray) verkürzen.

03.05.2007 - 15:09 Uhr

glücklicherweise gibts ja aber im Unterforum Komponenten noch die Klasse RoBitmap, deren Methoden Get-/SetPixel die von Bitmap von Haus aus um Faktor 800 (Angaben des Autors) schlagen, wodurch das Iterieren doch wieder interessant wird...

03.05.2007 - 14:30 Uhr

Nicht direkt, aber mit Dictionary<TKey,List<TValue>> sollte das auch nicht das Problem darstellen.

02.05.2007 - 14:29 Uhr

_Original von budili_deaktiviere oder disable... ?

lieber deaktivieren...

hört sich an wie Mdi-Anwendung, ist dem so?

Und was genau willst du machen?

02.05.2007 - 14:00 Uhr

TypeConverter sind ausschließlich für das ComponentModel gedacht, deshalb liegt die Klasse TypeConverter auch in genau diesem Namensraum, also für Anzeige im PropertyGrid, um damit Entwurfszeitdienste bereitstellen zu können (Das gilt für den gesamten Namensraum ComponentModel, der ja auch nicht in der CLR, sondern nur in der System.dll steht).

@DaRula:
Wenn du in der DB nicht irgendwelche Aliase oder Klassenkürzel, sondern die voll qualifizierten Namen der Typen reinschreibst (Type.AssemblyQualifiedName glaub ich), dann sollte es gehen (und das nicht nur für Klassen aus der CLR).

Casts auf Typeobjekte sind Blödsinn, weil du nicht auf Objekte, sondern eben nur auf Klassen casten kannst, und Type-Objekte sind genauso Objekte wie alle anderen auch (sie beschreiben halt Klassen, na und?). Diese Casts sind aber eh sinnlos, weil der Datentyp im DGV eh Object ist, auch wenn du den Typ mittels Typeobjekt eingeschränkt hast.

Wenn du implizite oder explizite Konvertierungen machen willst, dann geht das Zwangsweise nur mittels Reflection.

02.05.2007 - 13:12 Uhr

Naja, du kannst einen Umweg über HTML/CSS gehen 🙂, aber ansonsten gibt's glaub wirklich keine Möglichkeit. Den HTML-Code wiederum kannst du dir allerdings wieder per ASP.NET generieren lassen (damit schließt sich der Kreis dann, wenn auch ziemlich aufwendig, ASP.NET würd ich an der Stelle nicht nehmen)

02.05.2007 - 08:22 Uhr

Ich meinte damit, dass du eine eigene Collectionklasse schreiben musst und für die dann einen eigenen TypeConverter. Du kannst die Collectionklasse auch ICustomTypeDescrptor implementieren lassen, aber das würde ich dir nicht empfehlen (Das ist Designkram, das hat mit der Klasse eigentlich nix zu tun, insofern find ich das auch auf dem codeproject-Artikel doof gelöst...). Wie willst du denn deine Objekte darstellen? Angenommen die Klasse hat eine Eigenschaft mit der Kategorie "Darstellung", soll dann angezeigt werden "Darstellung (Objekt1)", oder sollen die Darstellungseigenschaften von allen Objekten in die Kategorie "Darstellung", oder oder oder...

30.04.2007 - 09:20 Uhr

Ich auch

30.04.2007 - 09:12 Uhr
  1. Kürzel machen RegexPatterns oft übersichtlicher, also statt [A-Za-z] \w, statt [0-9] \d usw. (eine ziemliche nützliche Übersicht findest du z.B. auf codeproject.com)

  2. Du schreibst das doch eh in eine Datenbank, ich weiß jetzt nicht wie dein DatenbankDesign aussieht, aber du könntest ja den Spalten die gleichen Namen geben, wie den Gebäuden/Forschungen/Schiffen etc. Auf alle Fälle kannst du es dir zu Nutz machen, dass zwische den Namen und dem Wert immer genau ein Zeichen liegt und das dann mit \b(?<Name>\w.+) (?<Wert>\d.+)\b auslesen. Daraus kannst du dann in ein Dictionary schreiben und den Rest kriegst du auch so hin 🙂

27.04.2007 - 15:51 Uhr

gelöst, das Problem war an einer anderen Stelle. Die System.ComponentModel-Klassen unterstützen keine Mehrfach instanzierbaren Attribute, leider...