Laden...
K
karoue myCSharp.de - Member
Student Dresden Dabei seit 29.04.2008 85 Beiträge
Benutzerbeschreibung

Forenbeiträge von karoue Ingesamt 85 Beiträge

30.09.2013 - 23:46 Uhr

Danke, der Link ist super!

29.09.2013 - 20:16 Uhr

Vielen Dank für eure Antworten, das hilft mir auf jeden Fall weiter.

Dann werden ich es wohl wirklich nicht so genau nehmen und mich nur grob an den Schichten orientieren und wo nötig eventuell noch zusätzliches Einfügen.

Den Link von LatinChriz werde ich mir auf jeden Fall noch genau ansehen, danke!

Ich werden dann mal versuchen mir einen für meine spezielle Anwendung passenden Aufbau zu überlegen.

Über weitere Beiträge freue ich mich natürlich trotzdem 😃

29.09.2013 - 16:40 Uhr

Danke erstmal für die Antwort!

Da ich das wie gesagt nur als Hobby betreibe muss auf dem Papier gar nichts gut aussehen und ich bin auch der einzige Programmierer. Allerdings wird das Projekt schon ein bisschen größer und soll vielleicht auch mal auf meiner Homepage herunterladbar sein.
Entsprechend möchte ich das ganze übersichtlich und gut wart- und erweiterbar programmieren. Da erschien mir die Aufteilung in diese Schichten geeignet.

Achso, wegen der Klasse Person:
Diese soll dann eigentlich keine Datenbankoperationen enthalten sondern nur direkt mit anderen Objekten arbeiten.
Entsprechend dann also wohl eher ins Business Layer nach dieser Argumentation. Erscheint dann eigentlich logisch, stimmt 😉
(Die Klasse Person war hier aber eh nur als Beispiel)

29.09.2013 - 14:57 Uhr

Hallo,

ich möchte mal wieder ein Projekt in C# realisieren und dabei ordentlich die drei Schichten GUI, Business Logic Layer und Data Access Layer trennen.

Ich habe bereits gegoogled aber meist nur Forenbeiträge gefunden die immer wieder unterschiedliche Ansichten vertreten.
Daher möchte ich mich nun nochmal hier umhören.

GUI erscheint mir soweit klar: Die anderen Schichten kennen die GUI nicht, sondern die GUI ruft Funktionen aus dem BLL auf und abonniert Events vom BLL.

Ins Business Logic Layer kommt die eigentliche Programmfunktion und das Data Access Layer stellt den Zugriff auf die Daten bereit.

Nun soll es z.B. eine Klasse "Person" geben. Das Data Access Layer lädt die Daten aus einer DB oder einer Datei und das Business Layer soll mit dem Objekt Person arbeiten.
Aber wird die Klasse Person dann im Data Access Layer oder im Business Logic Layer definiert?

Gibt es überhaupt klare Definitionen/Vorschriften was in die einzelnen Layer soll oder implementiert das jeder ein bisschen anders?

Vielleicht hat auch jemand einen guten Link zu dem Thema wo die einzelnen Layer verständlich erklärt werden.
Da C# nur ein kleines Hobby ist möchte ich mir nur ungerne ein teures Lehrbuch anschaffen, wenn aber jemand hier einen heißen Tipp hat würde ich mich auch darüber freuen.

Lg Karoue

29.12.2012 - 18:32 Uhr

An sich funktioniert der Code, aber wenn ich in der Methode generatePassword() statt einer 4 eine 3 als Obergrenze der Zufallszahl wähle (für int method), dann werden keine Großbuchstaben generiert.

Das liegt daran, dass bei

_rnd.Next(0, 4);

die größte Zahl die zurückgegeben wird 3 ist. Wenn du also

_rnd.Next(0, 3);

hast so ist die größte zurückgegebene Zahl 2.

Insofern ist deine Zufallszahl immer kleiner der bei .Next angegebenen Zahl.

Ansonsten denke ich (ohne es es jetzt überprüft zu haben), dass es vermutlich viele Beispiele zur Passwortgeneration im Internet gibt, vielleicht findest du dort einen besseren Algorithmus.

LG karoue

19.12.2012 - 19:06 Uhr

Hallo,

vielen Dank für die zahlreichen Antworten!

Ich denke ich werde dann wie mehrfach empfohlen die Komprimierung grundsätzlich lokal durchführen und danach, bzw. parallel die Datei übertragen.

Das mit 7zip klingt auch interessant, möglicherweise kann man hier bessere Kompressionsraten erreichen, ich schau mir das mal an!

Danke!

LG Karim

17.12.2012 - 21:58 Uhr

Hallo,

ich würde gerne ein simples Programm entwickeln welches bestimmte Dateien als ZIP-File komprimiert auf meinem Onlinespeicher sichert.

Die Komprimierung soll mit der SharpZip Library umgesetzt werden.

Meine Frage ist nun, ob es wohl insgesamt schneller ist wenn ich erst lokal auf der Festplatte das Archiv erstelle und dieses dann nur hochlade, oder direkt auf den Server komprimiere, also den ZipOutputStream direkt in eine Datei auf den Server schreiben zu lassen.

Hintergrund der Frage ist, dass die Uploadbandbreite nicht sehr groß ist.

Vielleicht hat hier ja jemand eine Idee was der bessere Ansatz wäre!

Danke,
LG Karim

30.07.2012 - 21:02 Uhr

FlowLayoutPanel vielleicht?

23.07.2012 - 16:59 Uhr

Alles klar, wenn das Performance mäßig keine nennenswerte Rolle spielt, dann ist es vermutlichst die simpelste Methode mit zwei FileSystemWatchern zu arbeiten.

Danke!

23.07.2012 - 14:05 Uhr

Danke für die ganzen Antworten!

du könntest 2 FileSystemWatcher verwenden. Einer der nur auf Dateien horcht und der andere horcht nur auf Verzeichnisse.

Diese Lösung hatte ich ja bereits im Eingangspost erwähnt, ich frage mich jedoch, wie das Perfomance technisch aussieht?
Zwei Watcher werden sicher kein Problem sein, aber wenn ich fünf verschieden Ordner überwache wären wir schon bei zehn.
Ist das zu vernachlässigen oder wird sich das auswirken?

LG Karim

22.07.2012 - 20:43 Uhr

Background Image von dem Panel kann natürlich immer nur ein Bild sein, aber du kannst mehrere Bilder selber auf das Panel zeichnen.

Du zeichnest die Bilder doch eigentlich auch:

imageList2.Draw(theGraphics, new Point(85, 85), 0);

und

imageList2.Draw(theGraphics, new Point(85, 185), 0);

(Ist übrigens beide mal das selbe Bild)

Allerdings zeichnest du auf die Form und nicht auf das Panel.

Schau am besten mal hier:

[Artikel]Zeichnen in Windows-Programmen

LG Karim

22.07.2012 - 20:32 Uhr

An sich eine super Sache, aber das Problem ist, es könnte ja auch sein, dass eine Datei/ein Verzeichnis gelöscht wurde (oder verschoben) und dies das Event ausgelöst hat.
In dem Fall würde bei deiner Lösung wohl eine IO-Exception auftreten 😦.

Eine Möglichkeit wäre vielleicht noch eine Datei- und eine Verzeichnis-Liste zu erstellen und bei Änderung gegen diese zu prüfen.

Aber ich hatte/habe eigentlich die Hoffnung, dass es beim FileSystemWatcher noch irgendeinen "Trick" gibt sofort in Erfahrung zu bringen, was es war.

22.07.2012 - 18:17 Uhr

Hallo!

Ich frage mich gerade, ob ich beim FileSystemWatcher irgendeine Möglichkeit übersehe die mir mitteilt ob eine stattgefundene Änderung einen Ordner oder eine Datei betrifft?
Es gibt das Filter Property, allerdings sollen schon beide Fälle überwacht werden, es oll jedoch anders reagiert werden.

Bei meiner Suche bin ich bisher nur auf die Lösung gestoßen mehrere Watcher zu verwenden, also einen für Dateien und einen für Verzeichnisse.
Das geht auf jeden Fall, aber gibt es keinen effizienteren Weg?

LG Karim

21.07.2012 - 20:21 Uhr

Vielen Dank für die Antworten, dann werde ich es wohl über ein Event lösen (bzw. einen entsprechenden Parameter). 😃

LG Karim

21.07.2012 - 19:38 Uhr

Hallo!

Ich frage mich, wie man in folgender Situation am besten vorgeht.

Ich habe eine Klasse die eine gewisse Funktionalität bereitstellt. Dabei wird ein FileSystemWatcher verwendet. Sobald eine Instanz der Klasse erstellt wird, wird der Watcher aktiviert und reagiert auf neue Dateien. Diese werden dann entsprechend verarbeitet. Dabei können Exceptions auftreten.

Dazu gibt es nun eine GUI. Wenn das Programm startet wird ein Ordner für den FileSystemWatcher per GUI gewählt und dann entsprechend eine Instanz der oben beschriebenen Klasse erzeugt.
Wenn die Bearbeitung einer Datei in dieser Klasse erfolgreich war wird dies per Event an die GUI kommuniziert und ein notifyIcon gibt eine entsprechende Nachricht aus.

Wenn nun eine Exception auftreten sollte soll ebenfalls eine Nachricht vom notifyIcon angezeigt werden. Meine Frage ist jedoch nun, wie bekommt die GUI die Exception "mit"?
Ich rufe die Methode zum Vearbeiten einer Datei ja nicht aus der GUI Klasse auf als das ich die Exception dort mit try/catch fangen könnte.

Ein Event für den Fall einer Exception kommt mir aber auch ungünstig vor?!

Ich würde mich freuen, wenn mir hier jemand einen guten Weg weisen könnte.

Vielen Dank,
LG Karim

24.01.2012 - 15:04 Uhr

Hallo,

Steht doch eigentlich schon da, oder verstehe ich dich falsch?


if (result == MessageBoxResult.OK)
{
                    //ButtonClicked
}

An die Stelle //ButtonClicked kannst du doch jetzt die Methode packen die beim "ClickEvent" ausgeführt werden soll.

Oder hast du eine MsgBox mit Yes/No? Dann musst du natürlich bei DialogResult auf Yes und nicht OK prüfen.

Lg Karim

19.09.2011 - 01:02 Uhr

string Ordnerneu = ordner + "\\" + file2.FullName;  

Hallo,

Du setzt "Ordnerneu" aus "ordner" und "file2.FullName" zusammen, d.h. mitten im Pfad erscheint plötzlich ein Laufwerksbuchstabe (der von file2, wie du sagtest z.B. E:\), daher die Exception, dass es sich um ein ungültiges Pfadformat handelt.

LG Karim

22.08.2011 - 23:35 Uhr

Jetzt habichs selbst ausprobiert - also in VB wird das Form_Closed ausgelöst

In C# wird es auch ausgelöst im Load Event, zumindest wenn ich eine Form habe und bei dieser direkt im Load-Event wieder Close aufrufe.

22.08.2011 - 17:01 Uhr

Wahrscheinlich wird die Form bereits wieder geschlossen, noch bevor das Event registriert wurde.

11.08.2011 - 00:06 Uhr

Hallo,

ich habe heute zum wiederholten Male das selbe Problem:

Ich habe eine Form mit mehreren ToolStrips und einem MenuStrip.
In diesen befinden sich natürlich auch Einträge. Alles wurde mit dem Designer vom Visual Studio 2010 angelegt und auch immer korrekt angezeigt.

Plötzlich jedoch sind die MenuItems einfach "weg". Im Designer und auch beim Ausführen der Anwendung sind die ToolStrips und der MenuStrip leer.

Die MenuItems selbst existieren jedoch noch und werden im Designer Code auch instanziert sie werden nur nicht zu dem jeweiligen Tool-/Menustrip hinzugefügt.
Wenn ich dies im Designer Code manuell ergänze (Items.AddRange(...), sowie es auch im Designer sonst ist) funktioniert das zunächst und sie werden wieder angezeigt im Designer, kurz darauf sind sie aber wieder weg.

Was kann man da jetzt am schlauesten machen???

Beim ersten mal (heute das zweite mal) klappte das mit dem manuellen hinzufügen im Designer Code soweit ich mich erinnere, zumindest ging es ja wieder...

Danke,
LG Karim

21.07.2011 - 14:14 Uhr

Theoretisch reicht es wenn deine Anwendung im Systemordner liegt, also i.d.R. C:\Windows\

Dann kannst du in der Konsole den Name der EXE (ohne das .exe) eingeben und das Programm wird gestartet.

Ggf. solltest du so auch noch Parameter übergeben können.

LG Karim

21.07.2011 - 13:43 Uhr

Hallo,

danke, aber leider hilft das nicht wirklich: In dem einen Thread wird lediglich gesagt, dass bei .Print() die Standard-Einstellungen verwendet werden und das andere Beispiel bezieht sich auf WPF, ich benutze jedoch WinForms 😕.

Trotzdem danke!

LG Karim

21.07.2011 - 13:01 Uhr

Hallo,

ich zeige in einem WebBrowser Control eine HTML-Seite an (die eigentlich nur aus einer Tabelle besteht).
Diese soll mach auch drucken können, was über


webBrowser1.Print();

theoretisch auch funktioniert.
Da die Tabelle allerdings i.d.R. breiter als hoch ist sollte die Seite im Querformat gedruckt werden.
Dies lässt sich einfach mit


webBrowser1.ShowPageSetupDialog();

einstellen.

Das Problem ist nun aber, dass es erstens sehr nervig ist, jedesmal Querformat im Dialog einzustellen wenn dies ohnehin immer verwendet werden soll und zweitens sind die meistens Nutzer für die ich dieses Programm erstelle bereits mit so etwas überfordert.

Daher die eigentliche Frage:
Gibt es keine Möglichkeit das PageSetup für das WebBrowser Control im Code vorzunehmen?
Oder notfalls eine komplett andere Methode ein HTML Dokument zu drucken (eben mit dieser Einstellung)?

Danke,
LG Karim

26.02.2011 - 12:25 Uhr

Wenn die TextBox auf einer TabPage ist kannst du nicht in

this.Controls

nach ihr suchen, sondern musst in dern Controls der Page schauen.

LG Karim

05.02.2011 - 17:22 Uhr

Was genau meinst du mit die Eingabe soll in einer Textbox gespeichert werden?
Das diese dort angezeigt werden soll?


textBox1.Text = "Text";

//oder andersrum

string text = textBox1.Text;

Oder was meinst du?

Und die andere Form anzeigen:
Imm ClickEvent des Buttons:


Form1 frm1 = new Form1();
frm1.Show();

Wenn du das meinst wären dies allerdings Grundlagen.

LG Karim

05.02.2011 - 16:17 Uhr

Hier (in der Program.cs) die zu öffnende Form angeben:


[STAThread]
        static void Main()
        {
            [...]
            Application.Run(new Form3());
        }

LG Karim

30.11.2010 - 18:12 Uhr

Es gibt doch ganz normal das Click Event, das kann man doch einfach im Designer sogar bei Events auswählen?!


private void textBox1_Click(object sender, EventArgs e)

LG Karim

15.04.2010 - 16:10 Uhr

Der Ort der Datei ist zum Beispiel dann wichtig wenn das Programm die Datei z.B. exportieren soll. Ausserdem können so einfach zwei Programme auf die gleiche Einstellungsdatei zurückgreifen. Desweiteren kann die Datei auch für andere Zwecke als dem speichern von Einstellungen dienen, zum Beispiel könnten darin Spielstände oder Highscores etc. gespeichert werden.

15.04.2010 - 14:44 Uhr

Ja, kenne ich.

Es gibt einen Grund warum ich dieses jedoch genau nicht verwenden möchte: Ich möchte den Speicherort und Namen der Einstellungsdatei selbst wählen.

14.04.2010 - 23:05 Uhr

Hallo,

ich möchte euch gerne mein Projekt vorstellen: SettingsManager

Es handelt sich dabei um eine DLL zum einfachen Speichern von Einstellungsdaten. Hier die Beschreibung von meiner GoogleCode Seite:
Die SettingsManager Programmbibliothek ermöglicht das einfache Speichern und Laden von Einstellungen oder Konfigurationen. Die Einstellungsdateien können an einem beliebigen Ort gespeichert werden und beliebig viele Einstellungen enthalten. Zusätzlich kann für jede Einstellung ein Standardwert angegeben werden, so dass einzelne oder alle Einstellungen zurückgesetzt werden können. Alle in einer Einstellungsdatei enthaltenen Einstellungen können aufgelistet werden. Einzelne Einstellungen lassen sich jederzeit hinzufügen oder entfernen.

Falls ihr Interesse habt könnt ihr euch die DLL ja mal runterladen. Auf der GoogleCode Seite gibt es auch eine Wiki mit kurzer Dokumentation zu den Funktionen.

Direkter Download: Klick
Weitere Infos: Klick

Freue mich über Rückmeldung!

LG Karim

27.03.2010 - 09:42 Uhr

Hallo,

das Programm ist ganz nett und für mich auch sehr nützlich. Da ich einen Laptop habe an dem ich einen zweiten Bildschirm benutze, kommt es öfter mal vor, dass wenn der Bildschirm getrennt ist, manche Programme in dem somit nicht sichtbaren Bereich starten. Dank dem Programm kann ich sie nun einfach rüberziehen.

Das funktioniert auch alles tadellos, bis auf eine Sache: Man sieht nur die untere Hälfte von meinem 2. Monitor (1280x1024).

Wäre schön, wenn das behoben werden könnte.

LG Karim

12.03.2010 - 23:17 Uhr

Normalerweise bekommt man den Code ganz einfach bei Google direkt, nämlich hier:

http://www.google.de/cse/

LG Karim

10.03.2010 - 20:04 Uhr

verwendetes Datenbanksystem: XML

Hallo,

ich bin zur Zeit dabei eine Software zur Filmverwaltung zu erstellen und die Filme sind in einer XML Datei.

Theoretisch wäre der Abschnitt für einen Film so aufgebaut:


<Movie ID="001">
<Title>Filmtitel</Titel>
<Length>Spieldauer</Length>
<Available>Verfügbarkeit</Available>
<...></...>
</Movie>

Ich habe jedoch auch schon oft XML Datein gesehen wo der Wert, also zum Beispiel Name des Films als Attribut angegeben ist z.B. so:


<Movie ID="001">
<Title Value="Filmtitel" />
<Length Value="Spieldauer" />
<Available Value="Verfügbarkeit" />
<... Value="..." />
</Movie>

Was sind Vor- und Nachteile bzw. was ist allgemein sinnvoller? Möglicherweise auch in Betracht darauf, dass die Datei mal sehr gross werden wird.

Wäre über Tipps etc. dankbar.

LG Karim

09.03.2010 - 18:35 Uhr

Danke, das Type.GetType war was ich gesucht habe.

Vielen Dank!

LG Karim

09.03.2010 - 18:11 Uhr

Hallo,

tut mir leid, dass die Überschrift vermutlich sehr unklar ist, aber ich wusste nicht wie ich es sonst kurz beschreiben soll.

Also folgende Frage:

Ich habe eine XmlDatei die Einstellungen speichert.
Dabei speichert sie den Wert und den Typ, also zum Beispiel:


    <Setting Name="AutoUpdate" Type="System.Boolean" Default="" Value="True" />
    <Setting Name="Titelleiste" Type="System.String" Default="" Value="Max Mustermann" />
    <Setting Name="Starts" Type="System.Int32" Default="" Value="456" />

Nun soll der angegebene Wert in den angegebenen Typen konvertiert werden. Doch wie übergebe ich den Typen? Ich kann doch keine switch Anweisung für alle existierenden Typen machen. Wie bekomme ich also den Typ String in einen richtigen Typ?

Ich hoffe man versteht mich^^.

Ich würde mich über antworten sehr freuen.

LG Karim

07.02.2010 - 10:50 Uhr

Vielen Dank für die vielen Antworten!

Mir ging es speziell darum, ggf. einen Mastermind-Klon zu programmieren.
Wenn ich also nun einen anderen Namen benutze und das Spiel leicht abändere, z.B. fünf statt vier zu erratende Farben, dann wäre das ok?

Lg,Karim

05.02.2010 - 15:18 Uhr

Hallo,

ich wollte fragen, ob es rechtlich eiegtnlich erlaubt ist ein bekanntes Spiel zu programmieren und dann als Freeware zu veröffentlichen.

Also zum Beispiel ein Monopolyspiel oder ein Mastermind, Uno, Risiko, usw.

Sind diese Spiele, bzw. das Spielprinzip nicht patentiert?
Wenn nein, darf man dann auch im Titel den Namen benutzen, also beispielsweise "MonopolyRemake" als Name?

LG Karim

04.02.2010 - 18:58 Uhr

Hallo,

ich würde meine Einstellungen gerne in einer *.settings Datei speichern.

Wenn sich diese jedoch ansschliessend im Ausgabeverzeichnis befindet trägt sie immer den gleichen Namen wie die Anwendung.

Also beispielsweise mein Programm heisst: Test.exe
Dann heisst die Settingsdatei: Test.exe.config

Ich würde die Datei aber gerne umbennen, z.B. in Einstellungen.config

Wie kann ich dies erreichen?

LG Karim

02.02.2010 - 21:15 Uhr

Dann ersetze

null

mit

""
02.02.2010 - 21:05 Uhr

Vielen Dank, das klappt nun alles soweit.

Eine allerletzte Frage hätte ich aber noch: X(
Gibt es eine Möglichkeit mit einem Event herauszufinden wenn ein Fenster geöffnet/geschlossen wird? Ich müsste sonst die Liste der Fenster immer in einem bestimmten Zeitintervall aktualisieren was sehr unschön und blöd wäre.

Danke im Vorraus,

LG Karim

02.02.2010 - 20:53 Uhr

Prüf doch mit einer If-Anweisung ob die Textbox nicht leer ist:


double Ergebnis = 0;

if (txbZahl1.Text != null)
{
     Ergebnis += Convert.ToDouble(txbZahl1.Text);
}

if (txbZahl2.Text != null)
{
     Ergebnis += Convert.ToDouble(txbZahl2.Text);
}

MessageBox.Show(Ergebnis.ToString());

LG Karim

01.02.2010 - 21:46 Uhr

Hallo,

vielen Dank für den Hinweis.

Mit den genannten Funktionen bekomme ich aber nicht nur geöffnete Fenster, sondern auch Komponenten, wie Buttons oder Labels aus geöffneten Programmen zurück. Wie kann ich die Ergbnisse nach Fenstern filtern?

LG Karim

31.01.2010 - 21:39 Uhr

Hallo,

ich möchte eine Taskleiste für meinen 2. Monitor programmieren.

Diese soll somit alle geöffneten Fenster anzeigen. Die Hauptfenster der einzelnen Prozesse zu ermittel ist kein Problem.
Doch angenommen man hat z.B. beim Firefox noch das Download-Fenster offen, wie kann ich dann den Titel/Handle vom Hauptfenster und dem Download-Fenster ermitteln?

Würde mich über Ideen/Anregungen freuen!

LG Karim

05.08.2009 - 16:49 Uhr

Hat sich erledigt, ich hatte eine Ressourcen Datei hinzugefügt, die 'Resources' hies, das geht natürlich nicht, hätt ich mir ja gleich denken können.

LG Karim

05.08.2009 - 16:43 Uhr

Hallo,

ich arbeite gerade an einem Projekt und verwende dafür die Visual Studio 2008 C# Express Edition.

Nun ist es, warum auch immer (das will ich ja hier fragen 😄) so, das wenn ich bei einem Control die Image Eigenschaft über den Designer setzen will (also bei Eigenschaften > Image und dann auf den Browse Button) folgende Fehlermeldung in Form einer Messagebox erscheint: "Ein Element mit dem gleichen Schlüssel wurde bereits hinzugefügt!".

Woran liegt das? Ich habe ja noch keine Datei ausgewählt (soweit komme ich ja nicht) sonst würde es vllt an gleichen Namen oder so liegen, aber...

Vllt weiss ja jemand was da los ist, ist sonst echt öde die Bilder anders hinzuzufügen.

LG Karim

25.07.2009 - 01:14 Uhr

Ich suche schon ewig nach einer Möglichkeit meine Anwendug mit Admin Rechten zu starten.

Es geht hierbei hauptsächlich um WinVista/Win7.

Die Anwendung soll eigentlich nur vor dem starten den UAC Dialog anzeigen bei dem der User der Anwendung dann eben die Rechte erteilt.

Falls ich ganz auf dem Holzpfad bin: Sinn der Sache ist das ich z.B. in den Ordner C:\Programme schreiben will. (z.B. eigenes Setup/Updater)

LG Karim

21.07.2009 - 00:34 Uhr

Also ich hab unter Win7 32bit keine Probleme

20.07.2009 - 19:30 Uhr

Wollte nur mal Fragen ob man den ColorSlider auch selbst verwenden darf?

LG Karim

19.07.2009 - 19:01 Uhr

Document Element ist eben nicht null, siehe Inhalt der XmlDatei weiter oben.

Trotzdem Danke.

19.07.2009 - 18:19 Uhr

Hallo,

ich stehe gerade auf dem Schlauch:

Ich habe ein XmlDocument mit folgendem Inhalt:

<SCSMP-Library />

und füge diesem nun mit folgendem Code weiteren Inhalt hinzu:


XmlElement SONG = LIBRARY.CreateElement(CreateString(50));
XmlElement ATTRIBUT;

ATTRIBUT = LIBRARY.CreateElement("Pfad");
ATTRIBUT.InnerText = strFile;
SONG.AppendChild(ATTRIBUT);

ATTRIBUT = LIBRARY.CreateElement("Title");
ATTRIBUT.InnerText = System.IO.Path.GetFileNameWithoutExtension(strFile);
SONG.AppendChild(ATTRIBUT);
                       
ATTRIBUT = LIBRARY.CreateElement("Format");
ATTRIBUT.InnerText = "MP3"; ;
SONG.AppendChild(ATTRIBUT);
                       
ATTRIBUT = LIBRARY.CreateElement("Counter");
ATTRIBUT.InnerText = "0";
SONG.AppendChild(ATTRIBUT);

ATTRIBUT = LIBRARY.CreateElement("LastPlayed");
ATTRIBUT.InnerText = "Nie";
SONG.AppendChild(ATTRIBUT);

LIBRARY.DocumentElement.AppendChild(SONG);

Bei der letzten Codezeile tritt jedoch nun eine NullReferenceException auf, und ich weiss grade echt nicht wieso 8o

Wäre für jede Hilfe dankbar,
LG Karim