Laden...
Avatar #avatar-2343.png
preli myCSharp.de - Member
Student Österreich Dabei seit 11.07.2007 343 Beiträge
Benutzerbeschreibung

Forenbeiträge von preli Ingesamt 343 Beiträge

03.09.2007 - 22:41 Uhr

Original von ikaros
Eine einfache Lösung wäre der Cast auf den Typen(der != null für positiv ergeben sollte).

Wie genau soll das funktionieren?

Mfg Preli

03.09.2007 - 20:21 Uhr

Hallo allerseits!
Mein Problem sieht wie folgt aus. Ich habe ein Objekt der Klasse PropertyInfo und möchte abfragen ob es sich dabei um eine List<xyz> handelt und zusätzlich noch ob die darin enthaltenen Klassen ein bestimmtes Interface implementiert.

Bis jetzt habe ich nur von "einfachen" Properties abgefragt, ob diese ein bestimmtes Interface implementieren. Das hab ich wie folgt gelöst:


PropertyInfo i = ... ;
if (i.PropertyType.GetGenericTypeDefinition().GetInterface("IDBObject") != null) {
...
}

Für etwaige Vorschläge wäre ich sehr dankbar.

Mfg Preli

31.08.2007 - 22:41 Uhr

Original von Froggie
wie gesagt habe ich mich informiert, aber nie irgendeine andere Lösung gefunden.

Hallo Froggie!
Das du immer vom Ansatz her auf gleiche bzw. ähnliche Lösungen stößt, liegt daran, dass sich diese Lösung in der Praxis einfach am besten bewährt hat. Wie schon erwähnt wurde kann es auch anders gemacht werden, jedoch wenn man an großen Projekten arbeitet können dadurch ganz "nette" Fehler entstehen, das Programm kann schwer gewartet werden, ...
Außerdem hat so eine "Standardlösung" den Vorteil, dass sich auch andere Programmierer leichter in ein Programm hineinversetzen können.

Mfg Preli

31.08.2007 - 19:33 Uhr

Original von herbivore
naja, es gibt ja noch zwei andere Timer-Klassen (die zugegeben mit extra Threads arbeiten).

Ja, das stimmt. 😁
Da erspart man sich wahrscheinlich einiges an Tipparbeit.

Mfg Preli

31.08.2007 - 14:46 Uhr

Hallo!

Ein Vorschlag meinerseits: Du musst in deiner Add-Methode nicht unbedingt die Datei bzw. den FileWriter schließen. Du könntest deinem LogWriter eine eigene Close Methode geben, in der dann das close des FileWriters aufgerufen wird.

In der Add-Methode solltest du dann jedoch statt close ein Flush einfügen, wenn du willst, dass der Eintrag auch noch drinnen ist, selbst wenn auf das Close vergessen wird.

Mfg Preli

31.08.2007 - 14:33 Uhr

Hallo!

Scheinbar musst du auf Threads ausweichen.
die funktionieren auch in Windows Diensten. 😉

Mfg Preli

29.08.2007 - 22:05 Uhr

Original von MrSparkle
Wo kann man darauf verzichten, bzw. wie kann man es performanter gestalten?

Ich habe es zwar noch nie selbst getestet, aber angeblich soll die benutzung von generischen Listen oder Funktionen schon um einiges schneller (angeblich bis zu 10 mal so schnell) sein, als normale Collections, bei denen gecastet wird.
Wäre interessant das ganze mal mit einem kleinen Tool zu testen.

Mfg Preli

20.08.2007 - 16:41 Uhr

Original von burninhell
Wenn ich nun in der main den Konstruktor der GUI aufrufe und im Konstruktor der GUI den Konstruktor der Businessklasse aufrufe habe ich eine Verkettung, die nur in eine Richtung geht

Es ist zwar auf gar keinen Fall zu empfehlen, aber es wäre durchaus trotzdem möglich in den Businessklassen auf die GUI zuzugreifen. Wenn man an den Konstruktor der Businessobjects ein GUI Objekt mitübergibt. Sowas wie parent, owner oder so.


//ACHTUNG: folgendes Beispiel ist BÖSE!!! NICHT zuhause nachmachen
public BusinessclassA(Form1 form) { //Konstruktor der Businessklasse
   this.Form1 = Form1;
}

Es sei jedoch nochmal erwähnt, dass so etwas NICHT gemacht werden sollte 🙄, da dadurch der Sinn der OOP verloren geht. Wenn du es anders rum machst (siehe obige Posts) ist dein Programm weniger fehleranfällig, leichter wartbar und wiederverwendbarer.

Ist vielleicht am Anfang unlogisch warum man es so machen sollte, aber wenn man sich näher damit beschäftigt, macht es auf jeden Fall Sinn.

Mfg
Preli

16.08.2007 - 22:01 Uhr

Original von Reman
Dabei immer: Englische Bezeichnungen. Denglisch find ich furchtbar.

Kann ich mich nur anschließen. Man sollte sich entscheiden. Entweder Englisch oder Deutsch (ich nehm eigentlich immer Englisch).

Bei den Namespaces finde ich die Lösung, so wie es in Java oft gemacht wird recht interessant, auch wenn ich es nicht so mache:
Nehmen wir an von einer Homepage namens www.xyzpage.net wird eine Bibliothek veröffentlicht, sieht der Namespace wie folgt aus:


namespace net.xyzpage.product
//und eventuell noch: 
net.xyzpage.product.catA
net.xyzpage.product.catB
....

Vorteil: da die Internetadresse weltweit einmalig und eindeutig ist, können keine Namenskonflikte entstehen.
Firmennamen alleine können (vor allem weltweit betrachtet) oft gleich sein.

Mfg Preli

16.08.2007 - 20:00 Uhr

Vielen, vielen Dank herbivore!

Das ist DIE Idee, hätte ich auch draufkommen können. Vor allem weil ich vor kurzem sogar ein Beispielprogramm mit generischen Methoden durchgeschaut habe.

Danke, danke, danke

Mfg Preli

16.08.2007 - 19:59 Uhr

Original von juetho
List<ClassA> oder List<IDBObject>

Wollte ich anfangs machen, aber wenn ich eine List<IDBObject> erstelle kann ich nicht nach List<ClassA> casten und der Benutzer (der Funktion) müsste jedes Element der Liste einzeln durchgehen bzw. casten.

Wenn ich eine List<ClassA> erstelle gibts gleich zwei Probleme:
1.) Der tatsächliche Typ ist erst zur Laufzeit bekannt (wenn die Objekte aus der DB gelesen werden) und bis jetzt hab ich noch keine Möglichkeit gefunden, eine Liste zu erstellen, wo der Typ erst zur Laufzeit bekannt ist
2.) Ich kann eine List<ClassA> nicht zurückliefern, wenn der Rückgabetyp List<IDBObject> ist, da ich ja nicht von List<ClassA> nach List<IDBObject> casten kann.

Mfg Preli

16.08.2007 - 19:48 Uhr

Hallo allerseits!

Mein Problem sieht folgendermaßen aus:
Habe eine Funktion load, die Objekte aus einer Datenbank lädt und diese als Liste bzw. Array zurückgibt.
Alle Objekte, die zurückgeliefert werden, sind von Klassen, welche ein bestimmtes Interface IDBObject implementieren.


interface IDBObject {
  //...
}

public class ClassA : IDBObject {
   //...
}

//...

public IDBObject[] load() {
  //...
}

//...

Nehmen wir an load liefert jetzt ClassA Objekte zurück und der Programmierer (der die Funktion aufruft/benutzt) möchte so einfach wie möglich auf seine ClassA Objekte zugreifen und auch deren Funktionen benutzen.
Sieht vielleicht einfach aus, aber wie würdet ihr das am besten machen?

Mfg Preli

14.08.2007 - 22:55 Uhr

Original von Lion1984
Also wenn er verschicken kann, soll er ja grundsätzlich empfangen uach können.

Muss nicht unbedingt sein. Firewalls haben oft unterschiedliche Ansichten was mit Pakten passieren soll, die ihrer Ansicht nach nicht durch dürfen. Manche verwerfen die Pakete einfach. Der Empfänger weiß gar nicht, dass er jemals etwas bekommen hätte sollen und für den Sender sieht es aus, als ob der Empfänger nicht existieren würde. Der Sender oder das sendende Programm merkt nicht, dass es eine Firewall ist, die da den Weg blockiert.

//edit: was nicht heißt, dass es daran liegen muss. Aber es wäre theoretisch möglich. Schon mal probiert Firewall zu deaktivieren. (nur kurz zum Testen ob es daran liegt versteht sich)

Lg Preli

13.08.2007 - 14:22 Uhr

Hallo ceroun!

Hatte bis jetzt nie mit Irrlicht Problemen. Soweit ich weiß benutzt die Irrlicht.net.dll die Irrlicht.dll
Kontrollier vielleicht mal ob sich die irrlicht.dll im gleichen Verzeichnis der Irrlicht.net.dll befindet, die du benutzt.

Mfg Preli

13.08.2007 - 11:37 Uhr

hallo felixH!

herbivore hat schon recht, eigentlich sollte man das mit einem Event machen. (Auch wenn es vielleicht so funktionieren sollte, wie ich es gesagt hab)
In Zukunft wirst du sicher mit events glücklicher. 😉

Mfg Preli

13.08.2007 - 09:28 Uhr

Original von barzelona
Also ich würde es so versuchen:

  • Im UserControl
    _ Delegant erstellen
    _ Event des Typs (deines) Deleganten erstellen

Ich hoffe ich irre mich nicht, aber ich denke dass es auch so gehen sollte wie er es gemacht hat. (Also ohne das Schlüsselwort event) Ansonsten hat er es ohnehin fast so gemacht wie du ihm geraten hast:

// deklaration in dem UserContol
namespace ArmControl
{...
    public class ArmControl : System.Windows.Forms.UserControl
    {...
        public delegate void MoveDelegate( float X, float Y); //Im UserControl Delegant erstellen
        public MoveDelegate MoveHandler; //stimmt: hier könnte nach public noch das Schlüsselwort event eingefügt werden, aber so müsste es auch klappen

Mfg Preli

13.08.2007 - 09:20 Uhr

Versuchs mal damit:

ArmControl.ArmControl mover = new ArmControl.ArmControl();
                        ...
                        mover.MoveHandler = new ArmControl.ArmControl.MoveDelegate(eDelegate);

Wenn ich mich jetzt nicht verschaut habe, liegt es daran, dass der namespace nicht bekannt ist. Wenn dir die obige Lösung nicht gefällt, kannst du auch eine weitere using hinzufügen:

using ArmControl;

Mfg Preli

12.08.2007 - 23:58 Uhr

Danke für die Mithilfe barzelona!

Habe jetzt schon ein bisschen was ausgetestet. Funktioniert eigentlich ganz gut bis jetzt.

Für alle, die den FileSystemWatcher auch benutzen wollen: Nicht vergessen - Unterverzeichnisse werden erst mitüberwacht, wenn die Property IncludeSubdirectories auf true gesetzt wird. (war bei mir defaultmäßig auf false gesetzt)

Mfg Preli

12.08.2007 - 22:45 Uhr

Hallo alle zusammen!

Ich bin mir nicht sicher, ob so etwas überhaupt möglich ist, bis jetzt habe ich noch nichts gefunden, mit dem ich ganz einverstanden wäre.

Gibt es eine Möglichkeit, dass mein Programm benachrichtigt wird, wenn Dateien verändert werden. Und damit meine ich nicht nur eine bestimmte Datei, sondern alle Dateien eines bestimmten Laufwerks oder Ordners. Mein Programm läuft im Hintergrund und sollte eine Datei verändert werden, soll mein Programm dies erkennen und darauf reagieren.

Irgendwelche Ideen?

Mfg Preli

//edit: Hab jetzt den FileSystemWatcher gefunden: http://msdn.microsoft.com/library/deu/default.asp?url=/library/deu/vbcon/html/vbconIntroductionToFileSystemComponents.asp

Werde mich mal damit beschäftigen. Hat den schon mal jemand ausprobiert? Oder weiß wie es mit der Performance aussieht?

10.08.2007 - 09:23 Uhr

Hallo!
Mir ist dieses Problem mit dem fehlenden index bei der foreach Schleife auch schon öfter untergekommen. In der Zwischenzeit hab ich es mir jedoch angewöhnt bei Scheifen, bei denen ich einen index brauche einfach eine for-Schleife zu benutzen.

Wenn ich mir jedoch einen von herbivores Vorschlägen aussuchen müsste/dürfte:

foreach (String strOld in astrOld) { // normale Foreach-Syntax
   astrNew [index] = strOld.Trim (); // index ist der default-Variablenname
}

Dieser Vorschlag gefällt mir irgendwie. Ein Vorteil denk ich wäre, dass wenn sich ein Fremder, oder man selbst nach einigen Monaten das Programm nochmal durchsieht, man gleich weiß was die Variable index in einer foreach Schleife bedeuten soll.

Mfg Preli

09.08.2007 - 17:44 Uhr

Naja, 50.000 Datensätze pro Tag, sind umgerechnet 0,5788 Datensätze pro Sekunde, was eigentlich nicht wirklich viel ist. Wenn davon ausgegangen wird, dass die Daten einigermaßen gleichmäßig auf den Tag verteilt reinkommen.
Von der Perfomance her ist die Architektur denk ich ziemlich egal. Worüber man sich mehr Sorgen machen sollte, ist ob die Bandbreite ausreicht.

Mfg Preli

09.08.2007 - 16:52 Uhr

Original von Vincenz
nimm doch nvarchar, da werden exakt die Anzahl Zeichen gespeichert, die die enthaltenen Daten haben.

Ich kann mich irren, aber ich bin mir ziemlich sicher, dass nvarchar auch einen kleinen Geschwindigkeitsnachteil gegenüber varchar hat (sonst hätte man diesen Datentyp bestimmt schon aus dem Verkehr gezogen)

Mfg Preli

09.08.2007 - 16:45 Uhr

@Elric: Danke fürs Ausbessern, jetzt hab ich auch nochmal was dazugelernt. Die id hab ich ganz vergessen. Was für ein dummer Fehler von mir 🙁

Mfg Preli

09.08.2007 - 16:37 Uhr

@veasel: Bei deinen Bedenken muss ich dir zustimmen. Es kommt nun eben immer auf das Einsatzgebiet drauf an. Wenn hauptsächlich blöcke verschoben werden, ist mein Vorschlag bestimmt nicht so schlecht. Müsste man eben jetzt den genauen Einsatz wissen.

Richtig gut finde ich die Idee von Friedel, denn eigentlich dürfte so ein bisschen herumschieben nicht besonders lange dauern. Dadurch müsste sich das Problem eigentlich lösen lassen. 👍

Mfg Preli

09.08.2007 - 16:22 Uhr

ne, ne, keine Angst, beim Text ist das nicht so. Da werden nur die enthaltenen Zeichen übertragen (plus kleinem Oberhead nehm ich an). nchar hat dafür einen gewissen Geschwindigkeitsvorteil.

Mfg Preli

09.08.2007 - 16:15 Uhr

Bin mir nicht sicher ob dir mein Tipp weiterhilft, da ich deinen Algorithmus jetzt nicht im Detail kenne und die Hintergründe weiß, aber vielleicht hilft dir mein Denkanstoß ein wenig:

Wenn du jetzt zum Beispiel 1000 Zeilen hast (angenommen) und du möchtest 800 nach oben verschieben, wäre es effizienter die erste Zeile vor den 800 zu nehmen und hinter die 800 zu verschieben. Würde theoretisch aufs gleiche rauskommen, nur dass du statt 800 Zeilen nur eine verschieben müsstest.

Mfg Preli

09.08.2007 - 15:56 Uhr

Nun ich bin zwar eher mit MySQL und Oracle vertraut, aber das Statement scheint mir irgendwie merkwürdig.
Ich würde das Ganze so machen:

INSERT INTO mw_table (ms_id,datum,mw) 
VALUES(SELECT ms_id, datum, mw from mw_table 
             where (ms_id = 205) AND (datum > "01.01.2005 00:00:00");

Ich kann jedoch keine Garantie dafür abgeben, da ich mir nicht 100%ig sicher bin, wart lieber noch andere Meinungen ab.

Ach ja: Die Datensätze sind dann natürlich "doppelt" drin, einmal mit der alten und einmal mit der neuen Nummer. Ob das vom Prinzip her so klug ist weiß ich nicht.

Mfg Preli

09.08.2007 - 09:10 Uhr

Was ist System schonender,
die Tabellen in DataSet's zu speichern oder sich die Mühe machen die Tabellen auf eigene Objekte zu mappen?

Ich bin sicher, wenn man es geschickt anstellt kann man wie du so schön sagst "System schonender" arbeiten, wenn man selbst was programmiert. Das sollte dann aber schon gut durchdacht und an die Bedürfnisse des Programmes angepasst sein, sonst würd ich besser gleich DataSet nehmen.
Hab mich mal lange mit diesem Thema beschäftigt und auch eine Fachbereichsarbeit darüber geschrieben. 😉

Ach ja, wegen deinen SQL-Statements: Mir wurde in der Schule immer gesagt joins sind schneller, kann aber auch gut sein dass blackcoin recht hat und das in der Zwischenzeit schon egal ist.

Mfg Preli

08.08.2007 - 14:12 Uhr

Original von dennisspohr
Wie durchsuche ich denn webbrowser1.DocumentText nach z.B. "<link"??

Nun da DocumentText ein gewöhnlicher string ist (soweit ich mich recht erinnere), kann man auf den auch alle StringFunktionen anwenden, wie zum Beispiel IndexOf zum Suchen.

Mfg Preli

08.08.2007 - 09:08 Uhr

Nun, bin mir nicht sicher ob das so leicht ist.
Ich stell mal eine Lösung von mir vor, vielleicht gehts auch einfacher, aber möglicherweise bist du ja mit dieser Möglichkeit auch schon zufrieden:
1.) du lädst mal die seite runter (z.B. mit WebClient.DownloadFile)
2.) suchst nach dem Eintrag <link rel="shortcut icon" href="xxx" />
Bei xxx steht dann die Datei, die brauchst du dann nur noch runterladen und anzeigen

Zum Beispiel bei myCSharp.de:

<link rel="shortcut icon" href="http://www.mycsharp.de/favicon.ico">

Aber Achtung, es können auch noch weitere Optionen (wie type) angegeben sein, wie zum Beispiel bei gmx:

<link rel="shortcut icon" type="image/x-icon" href="//img.ui-portal.de/gmx/homegmx/icons/favicon.ico" />

Mfg Preli

//edit: da war ich wohl etwas zu langsam. sorry.

03.08.2007 - 17:25 Uhr

Original von MrSparkle
Einen Wysiwig-Editor zu bauen, stelle ich mir als eine der schwierigsten Aufgaben vor, weil man ja einen HTML-Renderer programmieren muß, der W3C-konform ist UND IE/FireFox/Opera-kompatibel ist UND Editier-Funktionen bieten muß. Nun den HTML-Renderer lassen wir (zumindest in der ersten Version) aus, da es wie du schon bemerkt hast recht schwierig ist. Es gibt wie ich so gerne sage nur eine "one-way-Lösung" also den Export nach HTML. Eine HTML-Datei, welche zum Beispiel mit einem anderen Editor erstellt wurde, zu bearbeiten ist also nicht möglich.

@schaedld: bei über 500 Beiträgen kann ich mir nicht vorstellen dass du in C# und .net nicht fit bist. 👍

Mfg Preli

03.08.2007 - 10:50 Uhr

Kann mich SteelWarrior nur anschließen. Wir sind noch am Anfang, überlegen aber währendbei auch immer, wie wir ein bestimmtes Problem dann auch programmiertechnisch umsetzen. Deshalb schon Klassendiagramme und dergleichen.

Einstieg ist denk ich aber noch leicht möglich.

Besucherzähler und andere Scripts in diesem Umfang werden bestimmt eingebaut werden.

Mfg Preli

03.08.2007 - 09:07 Uhr

Nun das mit PHP wurde noch nicht im Detail besprochen.
Was jedoch schon beschlossen wurde ist, dass es eine Art ScriptBibliothek geben wird, aus der Scripte dann ausgewählt werden können. Sprich vordefinierte Scripte. Wenn diese Scripte dann verändert oder angepasst werden sollen oder der Benutzer ganz eigene Scripte erstellen möchte, wird ihm wohl nichts anderes übrig bleiben, als den PHP Code selbst zu editieren.
Vielleicht bauen wir auch ein, dass einfache Sachen ohne PHP Kentnisse zu realisieren sind: zum Beispiel: Bei klick auf Button A wird die Eigenschaft X von Objekt B verändert.

Einen Webserver zu integrieren wäre auch eine gute Idee, aber wie schon gesagt, so weit sind wir noch nicht.

Mfg Preli

03.08.2007 - 09:03 Uhr

Original von Jo0oker
Kannnst du mir deshalb sagen, wie ich Parameter an das Script weitergeben kann?

Das ist eigentlich ganz einfach. Wenn du Parameter an ein Script übergeben möchtest, musst du eigentlich nur die entsprechende Variable erstellen und in die Variablenliste des Scriptes hinzufügen. Danach kannst du die Variable benutzen, als ob sie im Script selbst erstellt wurde.


//neues Scripterobjekt erstellen
Scripter sc = new Scripter();
//Variable erstellen, die an das Script übergeben wird
Variable v = new Variable("Hallo", VarType.String);
v.Name = "s";
//Variable in varlist des Scripters einfügen
sc.varlist.addVariable(v);

Im Script kann die Variable dann über den Namen s angesprochen werden.

Mfg Preli

03.08.2007 - 00:53 Uhr

Über die Lizenzen hab ich mir noch keine Gedanken, aber eher nicht kommerziell.

Ach ja, es wurde bereits begonnen. Aber Einsteigen ist noch möglich.

Mfg Preli

02.08.2007 - 12:04 Uhr

Ja, das sollte funktionieren.

31.07.2007 - 13:40 Uhr

Sorry, wegen dem Fehler.
Hab das ganze selbst nicht getestet. Hatte das Demo nur auf meinem Computer weil ich mal so ein PC-Optimierungs-Tool programmieren wollte. Bin dann aber nicht bis zur CPU-Auslastung gekommen. 😁

Mfg Preli

31.07.2007 - 10:19 Uhr

Original von Jo0oker
Wenn ich eine Datei importiere, muss ich da noch mehr in dem script einegeben als:
import("hallo.scri"); ?
Ich bekomme immer eine fehlermeldung.

Ich denke ich weiß warum es bei dir nicht funktioniert. Es kommt immer darauf an, wie du das Script öffnest. Du solltest einstellen, dass alle *.scri Dateien standardmäßig mit dem Programm ScriptingV1.exe geöffnet werden. Dann klappt es. Wenn du die ScriptDatei zum Beispiel öffnest, indem du sie auf die exe-Datei ziehst sind ein paar Parameter falsch und alle Funktionen die sich auf Dateien beziehen (so auch import) funktionieren nicht richtig. Dieses kleine Problem wird in der nächsten Version ausgebessert.

Mfg Preli

31.07.2007 - 09:28 Uhr

i=1;
while(i=>30)
{
i=i+1;
}

Erstens musst du ≥ schreiben und nicht =>.
Zweitens: In die Schleife kommt er gar nie rein, da i zu Beginn eins ist und deshalb i nicht größer oder gleich 30 ist. Wie wärs mit ≤ 30
Drittens: Bei mir fagen die while-Schleifen immer mit do an:


i=1;
do(i<=30)
{
i=i+1;
}

Bei import musst du eigentlich nur darauf achten, dass die Datei auch vorhanden ist. Wie schaut denn die Fehlermeldung aus.
Kleiner Tipp von mir: such mal nach der Datei "error.log" In den meisten Fällen wird sie neben der Scriptdatei oder dem Interpreter erstellt und beinhaltet mehr Fehlerdetails.

Mfg preli

29.07.2007 - 19:11 Uhr

Ja hab schon an einen WYSIWYG gedacht.
Grundsätzlich soll natürlich eine HTML Datei erstellt werden. Was auch noch eine Rolle spielen wird sind dann: Javascript, AJAX, PHP und CSS.

Mfg Preli

29.07.2007 - 11:33 Uhr

Hallo,
ich habe ein kleines Demo-programm, dass dir zeigt wie man so etwas realisieren kann.
Ich hängs einfach mal an.

Hoffe es hilft dir.

Mfg Preli

//Hinzugefügt: ach ja, das Beispiel ist nicht von mir. Es ist auch nicht gerade in einem perfekten Programmier Stil, jedoch zeigt es recht verständlich was man wissen möchte.

29.07.2007 - 00:14 Uhr

Hätte da schon einen kleinen Tipp, weiß jedoch nicht ob dir das weiterhilft.
Also ich hatte mal ein PDF-Tool (fragt mich nicht mehr welches) das automatisch eine Art PDF-Drucker installiert. Druckt man über diesen Drucker, wird das Dokument in ein PDF umgewandelt. Eigentlich eine recht gängige Lösung soweit ich weiß.
Man müsste also nur von C# aus einen Webbrowser auffordern über solch einen Drucker zu drucken und schon hätte man vermutlich ein PDF Dokument.

Kommt jetzt eben drauf an, ob das dann auch auf anderen Computern laufen soll. (Wahrscheinlich schon). Dann wäre das nicht gerade optimal, Drucker installieren, wer weiß welche Webbrowser da alles drauf sind, ...

Mfg preli

29.07.2007 - 00:04 Uhr

Original von kaikai1
kann ich denn auch nach dem Text suchen?

klar kannst du. Einfach in einer for-schleife von 0 bis Anzahl der Elemente in listView2 gehen und den Text vergleichen:
if (listView1.Items[e.Index].Text == listView2.Items_.Text)
//gefunden;

Ob das für dein Problem eine "schöne" Lösung ist, ist jedoch eine andere Frage.

Mfg Preli

28.07.2007 - 23:57 Uhr

Na klar geht so etwas.
Du musst nur irgendwo die aktuellen Kurse herbekommen. 😁

Da gibts sicherlich einige Internetseiten die Kurse anbieten. Ob es jedoch auch welche gibt die sie so anbieten, dass du sie einfach weiterverarbeiten kannst weiß ich nicht. Am besten mal danach googeln.
Im schlimmsten Fall musst du eben eine Seite wie zum Beispiel yahoo nehmen, die solche Kurse anbietet. Den Quelltext der Seite in dein Programm laden und dein Programm selbst analysieren lassen.

mfg Preli

28.07.2007 - 22:49 Uhr

Hallo, ich bin's wieder mal!

Ich habe vor als nächstes Projekt ein Programm in C# zu programmieren, mit welchem man Homepages bauen kann. Einfach und trotzdem "mächtig".
So etwas gibt es schon reichlich, ich weiß, jedoch haben die meisten dieser Programme mehr oder weniger Nachteile und (ich für meinen Teil) bin eigentlich mit keinem so richtig einverstanden.
Also, wer hat Lust mitzumachen? Irgendwelche Interessenten?
Zurzeit gibt es zwei Personen (inklusive mir) die sich daran beteiligen möchten.
Ich hab zwar noch nicht besonders viele Einzelheiten, aber das liegt daran, dass noch nichts genaues feststeht.

Wenn es euch interessiert was ich sonst noch so gemacht habe an Programmen könnt ihr ja auf meiner Homepage vorbeischauen: www.saftware.net

Mfg Preli

28.07.2007 - 08:27 Uhr

Ich trau mich auch zu behaupten, von dem Thema etwas Ahnung zu haben. Habe vor einem Jahr eine lange Arbeit über persistent Frameworks geschrieben.
Laut meinen Erkenntnissen ist es schon sehr von Vorteil Daten auf die man öfters mal zugreift im Hauptspeicher (am Besten direkt im eigenen Programm) zu halten, als sie erst aus der Datenbank oder von der Festplatte zu holen. Da kann man die Zugriffsgeschwindigkeit schnell mal verzehnfachen oder auch vertausendfachen.

Die Anzahl an Objekten bzw. Datensätzen sollte natürlich begrenzt sein (je nach physikalischem Arbeitsspeicher). Wenn die Grenze erreicht wird, werden eben die am Seltensten benutzten Datensätze aus dem Arbeitsspeicher entfernt.

Gibt im Internet sicherlich einige Bibliotheken die sich mit dieser Thematik beschäftigen.

Mfg preli

27.07.2007 - 20:55 Uhr

Original von Jo0oker
Wozu ´sind die Example gedacht, und was können die?

lg Jo0oker

Welche example meinst du jetzt? Gehts um LUA?

Mfg Preli

25.07.2007 - 23:07 Uhr

Also ich muss zugeben, dass ich Singleton sehr gerne benutzte. Man muss jedoch wirklich aufpassen, dass dadurch keine unsauberen Programme entstehen.

Ich bin auch dafür kein eigenes Schlüsselwort einzuführen, obwohl ich die Idee genial finde.
In der SharpDevelop Entwicklungsumgebung gibt es jedoch eine Vorlage für den Singleton Designpattern. Sprich möchte man eine neue Datei erstellen, kann man sich durch diese Vorlage ein wenig Schreibarbeit ersparen.

Mfg Preli

25.07.2007 - 11:27 Uhr

Euch ist aber klar, das es schon zig Skriptsprachen gibt, und viele in .NET eingebunden werden koennen

Also mir für meinen Teil ist das klar. 😁

Aber diese Skriptsprachen sind alle nicht von MIR programmiert worden. Ich behaupte auch gar nicht, dass meine Sprache jetzt soooo toll ist, aber ich bin trotzdem (zumindest ein wenig) stolz auf mich selbst, da es ja doch keine leichte Übung ist.
Und nun wollte ich meine Freude mit jemand teilen, sprich den Mitgliedern dieses Forums. 😉

Mfg Preli

25.07.2007 - 11:15 Uhr

Original von Richter
Uh, das ist Richtig Cool.
Bau unbedingt ein, dass man eigene Funktionen in deiner Scriptsprache erstellen kann. Dann könnte ich es Wunderbar in einem Projek von mir einsätzen, damit jeder damit eine eigene KI für das Spiel schreiben kann. Mach ja weiter 😄

So viel Begeisterung hätte ich gar nicht erwartet, ich hoffe das ist ernst gemeint und nicht sarkastisch. X(

Also eigene Funktionen kann man bereits einbauen. Wenn du die Skriptsprache in einem deiner .Net Projekte einbauen möchtest kannst du dort die Spache um Klassen und Funktionen erweitern

ODER

Wenn du die Skriptsprache direkt benutzen möchtest kannst du auch eigene Funktionen schreiben. Mehr dazu steht auf der Dokumentationsseite ganz unten unter dem Kapitel "Importieren und eigene Funktionen" --> http://www.saftware.net/scriptingv1_doc.php

Mfg Preli