Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von Midnight Run
Thema: Sauberes beenden eines Threads
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Danke für deine Hilfe. Ich werde es mir nun ansehen.

Gruß

Thema: Sauberes beenden eines Threads
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo FZelle,
den Button zu deaktivieren, wäre der einfachste Workaround, würde aber nicht das Problem beim schließen der Anwendung beheben.

Ich habe bereits mich eingelesen bei dem Tutorial von Albahari zum Thema, aber so spezifisch geht er darauf nicht ein.

Kennst du den eins ? Mich hat es schon gewundert, dass bei vielen Open Source Projekten auch so gearbeitet wird.

Gruß

Thema: Sauberes beenden eines Threads
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Freunde,
leider klappt es mit den Thread nicht so wie ich möchte, aber diesmal will ich alles sauber lösen.

Problem :
Diagnosetool, welches per Button Click ein Verzeichnis Überprüft, sprich es wird iteriert ob es bestimmte Dateien im Verzeichnis gibt. Dies soll sukzessiv angezeigt werden.

Also :

Datei 1 gefunden
Datei 2 nicht gefunden
etc ...

Danach wird noch ein Bild generiert, welches den Status Wiedergeben soll.

Dies geschieht alles in der Methode "Analyse". Nun hat der Entwickler vor mir, die komplette Methode in einem Foreground Thread starten lassen :


        private void btnStart_Click(object sender, EventArgs e)
        {
            tbOutput.Text = ""; 
            System.Threading.Thread analyseThread = new System.Threading.Thread(Analyse);
            analyseThread.Start(); 
        }

Das sukzessive Verhalten, wurde durch Invokes erreicht.

Nun ist es aber so, dass wenn man den Button zwei mal klickt der erste Thread noch weiterläuft oder wird das verhindert durch das neue erstellen des Threads:

System.Threading.Thread analyseThread = new System.Threading.Thread(Analyse);

???

Ein weiteres Problem, welches ich feststellte ist, dass wenn der Thread läuft und ich das Programm beende, dieser natürlich in eine Exception läuft, da die Form weg ist, aber der Invoke oder das Bild auf diese Zugreifen wollen.

Nun habe ich mir einige Artikel durchgelesen, aber komme der Lösung nicht nahe.

Ich würde denken, dass wenn man den Button zwei mal bspw. klickt, zuerst sichergestellt werden muss, dass der noch laufende beendet wurde.

Ich habe bei Stackoverflow den Artikel Is there a way to indefinitely pause a thread? gelesen und auch so umgesetzt, doch bei dem Thread.Join() hängt sich die Anwendung auf.

Ich habe es genauso umgesetzt, wie es Brannon beschreibt.

Auch bei schließen der Anwendung, also beim FormClosing Event, würde ich dieses prüfen.

Ich habe mich gestern ein wenig durch CodePlex Projekte gearbeitet um zu sehen, wie es andere lösen und fand ziemlich oft das Application.DoEvents() welches ich aber vermeiden will.

Habt ihr ein paar Lösungsansätze ?

Gruß

Thema: Sauberes beenden eines Threads
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hey,
und die Background Worker Class ist einfach nur ein Wrapper um einen Backgroundthread ?

Dort gibt es ja schon die Ereignisse "OnProgress" und "OnCompleted".

Mir fällt gerade kein Szenario ein, wann eine Applikation mit einem Thread weiterlaufen sollte. Vielleicht um Inkonsistenz zu vermeiden ?

Gruß

Thema: Sauberes beenden eines Threads
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Heißt das eigentlich, dass ich einfach ein Thread.IsBackground = true setzen könnte und somit einen Background Thread hätte ?

Das Application.DoEvents() nutze ich nur dafür um zu warten bis die arbeiten vorbei sind.

Wie entscheidet man den wann man einen Backgroundworker nutzen will, den Threadpool oder selbst den Thread erstellt ? Gibt es da so paar Dinge nach denen man sich richten kann ?

Gruß

Thema: Sauberes beenden eines Threads
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi,

Zitat von myUnderTakeR
Wo meinst du denn so eine Überprüfung zu benötigen?

Ich habe öfters gehört, dass es guter Stil ist, seine Methoden klein zu halten, also eine spezifische Aufgabe zu erfüllen um die Übersicht zu behalten. Wenn ich mir nun eine komplexe Aufgabe vorstelle und diese in einem Thread bearbeiten möchte, treffe ich auf diese Problem.

Natürlich kann ich alles fein ausarbeiten, aber ihr kennt das sicher wenn man sich 1 - 2 Monate wieder an das Projekt setzt, dass man erstmal wieder davor steht wie der Ochs vorm Berg :)

Ich bedanke mich für eure Antworten, danke ich werde mir alles nochmal ansehen ;)

Thema: Sauberes beenden eines Threads
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hey,

Zitat
Es wird ja eine komplette Iteration gewartet

Ich meinte, dass einmal die Iteration durchlaufen werden muss, bis wieder die Abfrage durchgeführt wird. Bei bspw. langen Datenübertragungen wäre dies mit einer langen Wartezeit verbunden.
Zitat
Aber was ist wenn die Operationen innerhalb der Schleife viel Zeit in Anspruch nehmen.
Zitat
Dann kann in der langen Operation an bestimmten Stellen auch _stopThread geprüft werden.

Das bedeutet wenn ich in meinem Thread mehrere Methoden aufrufe, sollte man auch diese mit einer Überprüfungen ausrüsten ? Mir würde das jetzt aus dem Kopf dann zu Komplex werden oder verstehe ich da was falsch ?

Danke für deine Antwort

Thema: Sauberes beenden eines Threads
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,
danke für eure zahlreichen Antworten. Ja, leider tue ich das 1:1 so, wie in meinem Beispiel, aber ich verspreche Besserung.

Ich arbeite leider mit .NET 3.5. Deswegen fallen die Lösungen mit .NET 4.0 weg.

Zu diesem Code habe ich eine Frage :


void run() {
   while(!_stopThread) {
      [DoSth]

      if([condition])
         break;

      [DoSth]
   }
}

Es wird ja eine komplette Iteration gewartet bis _stopThread true ist. Aber was ist wenn die Operationen innerhalb der Schleife viel Zeit in Anspruch nehmen.

Sollte man den Benutzer warten lassen ?

Und was ist wenn der Thread nicht aus Schleifenoperationen besteht. Sollte man dann in gewissen Abständen überprüfen ob der Boolean true ist ?

Danke

Thema: Sauberes beenden eines Threads
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,
ich habe da eine grundlegende Frage zum Thema Threading. Um genauer zu sein wie beende ich einen Thread sauber inmitten seiner Arbeit.

Ich habe mir ein paar Sourcecodes angesehen und diese bedienen sich oft dem Methode Thread.Abort().

Im Internet, bei Stackoverflow.com, habe ich einen Beitrag gelesen indem dieses Vorgehen als falsch betitelt wurde, da die Abort Methode nur bei ernsten Fällen eingesetzt werden sollte.

Man sollte lieber mit einem Boolean arbeiten, der, falls er einen bestimmten Zustand erreicht hat(true/false) aus dem Thread springt.

Meine erste Frage ist daher, wie macht man es richtig ?

Ich arbeite oft nach diesem Muster :

Thread t = new Thread(delegate()
{
  // Code
});

t.Start();

while(t.IsAlive)
{
  Application.DoEvents();
}

Meine nächste Frage ist, wie beende ich einen Thread sauber, wenn der Benutzer plötzlich das Programm schließt. Im Debugmode erkenne ich das, dass Programm noch läuft, sprich der STop Button ist noch eingeblendet.

Das würde bedeuten, dass wenn der Benutzer dies tut auch immer noch der Thread bei ihm läuft, oder ?

Ich habe zur Zeit ein Programm das viele Daten über FTP bezieht und der Benutzer könnte einfach das Programm genau bei diesem Prozess schließen. Wie kann ich dann den Thread sauber stoppen ohne Thread.Abort() ?

Danke für eure Hilfe

Thema: Überprüfen ob ein Wert eine bestimmte Anzahl von Zeichen hat in XSLT 1.0
Am im Forum: Datentechnologien

Hallo,
meine Frage ist ob es möglich ist in XSLT 1.0 einen Wert zu überprüfen auf das mehrfache vorkommen eines Zeichens.

Als Beispiel habe ich folgende XML Datei :

<node>
<value>123</value>
<value>ABC</value>
<value>1ABAA</value>
</node>

Jetzt möchte ich zum Beispiel nur die Werte bekommen die 3 mal das "A" besitzen. Das wäre in diesem Fall nur der Wert "1ABAA". Wie könnte ich da dran kommen ?

Danke

Thema: Lösungsweg : Datei von System nur beziehen, wenn Änderungen vorhanden sind
Am im Forum: Rund um die Programmierung

Sry, hier Abbildung 2 :

Thema: Lösungsweg : Datei von System nur beziehen, wenn Änderungen vorhanden sind
Am im Forum: Rund um die Programmierung

Hey Leute,
danke für eure Hilfe.

Ich denke mal ich muss da einfach tiefer gehen um euch das Problem nahe zu legen.

1. Im System befinden sich ein Server und mehrere Clients.
2. Es wird manuell am Server die IP Adressen der Clients eingetragen.
3. Der Server versucht, dauerhaft, die Clients zu erreichen und mit Daten zu beliefern( siehe Abbildung 1)

Abbildung 1 :
siehe Anhang


4. Die Clients bearbeiten diese Dateien, aber nur eine ist von Wichtigkeit.
5. Nun ist eben die Problemstellung, die Datei zu beziehen. Wann oder dauerhaft. Qualitätsmerkmale für diesen Prozess ist eben so Bandbreiten sparend wie möglich zu sein und auch wirklich nur auf Änderungen zu reagieren.
6. Das Problem mit dem Rückkanal vom Client zum Server ist, das die Clients sich bewegen. Das heißt sie können eine kurze Zeit lang nicht im System sein und erscheinen dann wieder.
Wenn nun gerade bei der Benachrichtigung vom Client zu Server keine Verbindung besteht ist dies natürlich schlecht. (Abbildung 2)

Abbildung 2 :
siehe Anhang

(rot markiert, Client ausserhalb des Systems)

Ich hoffe dies macht mein Problem verständlicher :)

Danke nochmals

Thema: Lösungsweg : Datei von System nur beziehen, wenn Änderungen vorhanden sind
Am im Forum: Rund um die Programmierung

Zitat von smoni
  • Wie frei bist du beim Client?
  • Wie frei bist du beim Server?


Sind diese von dir selbst modifizierbar/erstellbar?

Der Server sowie die Client Software besteht bereits und ist seit Jahren im Betrieb. Nun soll eben dieses Feature hinzugefügt werden.

Ich kann an beiden Komponenten nur Erweiterungen vornehmen keine komplette Architektur Umstellung.
Zitat
Was willst du in der Situation von uns hören?

Ich suche eben für diesen schlechten Fall, die beste Lösung. Würde ich jedes mal in gewissen Zeitabständen die Datei einfach von den Clients beziehen, würde ich Daten die ich bereits haben nochmals abholen und dies ist eben redundant.

Wenn ich dauerhaft die Leitung dadurch blocke bzw. die Bandbreite belege, finde ich das auch nicht allzu Produktiv.

Ich wollte einfach nur mal in der Runde diskutieren ob jemand mir Anregungen geben kann für eine bessere Lösung oder ob dies einfach der einzige Weg ist in diesem System.

Dank an alle

Thema: Lösungsweg : Datei von System nur beziehen, wenn Änderungen vorhanden sind
Am im Forum: Rund um die Programmierung

Hallo,
vorab danke für eure zahlreichen Antworten.

Zitat
Wie sehr kannst du auf die aktuelle Architektur Einfluß nehmen?
Nur Erweiterungen sind erlaubt.
Zitat
Welche Transfer-Möglichkeiten stehen dir zur Verfügung?
Nur FTP vom Server ausgehend.
Zitat
Gibt es neben den File-Transfer noch andere Kanäle?
Nein.

Danke für jede Hilfe.

Thema: Lösungsweg : Datei von System nur beziehen, wenn Änderungen vorhanden sind
Am im Forum: Rund um die Programmierung

Hi Christoph,
danke für deine Antwort. Aber wie das leider immer so ist, sind da einige Dinge die nicht funktionieren, da historisch gewachsene Dinge im Wege stehen.

Ich versuch dies einmal genauer runter zu brechen :

Ich habe einen Transfer Server. Dieser verschickt an alle Clients bestimmte Dateien. Der Server wird will auch bestimmte geänderte Dateien auf den Clients regieren können und diese Dateien dann beziehen.

Das Hauptproblem ist das es keine Client Server Architektur im eigentlichen Sinne ist.

Nicht die Clients melden sich beim Server sondern anders rum. Man muss jede IP von den gegebenen Clients im Server eintragen, damit dieser die mit den Daten versorgt. Dies wird über FTP gemacht.

Somit kann sich der Client doch gar nicht beim Server melden, oder verstehe ich da was falsch ?

Eine Idee von mir, wäre es die Datei eben nach dem Änderungsdatum jeweils einen anderen Namen zu geben. So könnte der Transfer Server sehen ob die Datei, geändert worden ist oder nicht.

Für weitere Anregungen bin ich gern zu haben :D

Thema: Lösungsweg : Datei von System nur beziehen, wenn Änderungen vorhanden sind
Am im Forum: Rund um die Programmierung

Hallo,
ich arbeite zur Zeit an einer Server Software zu Verteilung von Dateien an seine Clients.

Das heißt alle Clients die verbunden sind bekommen, die bestimmten Dateien zu geschickt.

Als zweite Aufgabe muss der Server bemerken ob sich eine bestimmte Datei, die auf den Clients liegt sich verändert hat und muss diese dann beziehen.

Genau an diesem Punkt bin ich gerade und überlege wie ich dies am besten lösen könnte.

Sagen wir ich habe 50 Clients. Und ich muss alle durcharbeiten und gucken ob die eine bestimmte Datei sich verändert hat. Wie löse ich dies am besten.

Meine erste Idee war es in einigen Zeitabständen die Datei zu überprüfen pro Client ob dessen Größe, Datum etc. sich gerändert hat. Aber damit würde ich ja die Leitung auch belasten.

Auf dieser, die Leitung, werden ja auch die Daten vom Server an die Clients verschickt und ich möchte nicht meine Bandbreite unnötigt belasten.

Meine zweite Idee war es das die Clients selber anmerken das sie da was geändert haben. So zusagen ein Event schmeißen.

Da weiß ich nun leider nicht ob das geht. Da ja Server und Clients zwei verschiedene Systeme sind.

Diese Funktion muss nicht in Echtzeit sein, aber Zeitnah. Also Verzögerungen sind schon okay.

Aber bei meiner Lösung wollte ich die Skalierbarkeit auch beachten. Man stelle sich 500 Clients vor.

Ich bin für jede Anregung zu haben.

Danke !

Thema: History/Vorschlagsmodus Modus für MaskedTextBox
Am im Forum: GUI: Windows-Forms

Hey Leute,
ich bin wieder da mit einer neuen Frage.

Ist es irgendwie möglich der MaskedTextBox eine Art History Modus anzuhängen ? Ich meine damit das wenn der Benutzer genau das selbe wie letztes mal eingibt ihm ein Vorschlag gemacht wird ?

Danke!

Thema: MaskedTextBox für IP Eingabe zwischen den "Oktetten" springen lassen
Am im Forum: GUI: Windows-Forms

Dankeschön. Funktioniert. Das mit dem e.Handled kannte ich gar nicht. Muss da mal nochmal nachschlagen.

Danke nochmals

Thema: MaskedTextBox für IP Eingabe zwischen den "Oktetten" springen lassen
Am im Forum: GUI: Windows-Forms

Hallo,
ich habe in meiner Anwendung eine MaskedTextBox die, die Oktetten einer Adresse hervorheben, sprich :

xxx . xxx . xxx . xxx

Nun möchte ich das wenn der Benutzer in diesem Feld ist, dass selbe verhalten bekommt wie man es unter der Windows Netzwerkadapterwahl hat.

Wenn der Benutzer die Pfeiltaste Rechts drück springt man direkt zum nächsten Oktett, das ist eben die nächste Position nach einem .(Punkt).

Ich habe folgenden Eventhandler nun erstellt :


        private void maskedTextBox1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                radButton9_Click(sender, e);
            }
            else if ((e.KeyCode == (Keys)190) || (e.KeyCode == Keys.Right))
            {
                maskedTextBox1.SelectionStart =
                    (maskedTextBox1.Text.IndexOf(',', maskedTextBox1.SelectionStart) == -1)
                                                ? 0
                                                : maskedTextBox1.Text.IndexOf(',', maskedTextBox1.SelectionStart);
            }
        }

Wenn die Tastatureingabe der Rechts Pfeil war gucke ich einfach nach dem nächsten Index von der aktuellen Position aus wo ein , erscheint und springe dort hin.

Soweit so gut. Den Fall das man ganz rechts ist habe ich auch bedacht und setze dann den SelectionStart auf 0. Aber hier liegt das Problem. Der Cursor springt nicht dann an die erste Position sonder an die zweite.

Ich habe schon alles beobachtet. Obwohl der Wert von SelectionStart auf 0 gesetzt wird steht der Cursor falsch.

Wo liegt mein Fehler ?

Danke

Thema: Firefox cookies in IE importieren
Am im Forum: Rund um die Programmierung

Ja, SQLite ist es. Per Google habe ich auch direkt einen Link zu deinem Problem gefunden :

Frage
Lösung

Thema: Designänderung - Best practice - Bestehendes Design verbessern
Am im Forum: Rund um die Programmierung

Hallo,
ich denke mal das dies eine andere Art von Frage ist wie sonst und auch etwas länger wird aber ich hoffe das es mich weiter bringt.

Ich habe vor kurzem ein kleinen App geschrieben. Die Hauptaufgabe der Anwendung ist es eine XML Datei zubearbeiten.

Die XML Datei kann wiefolgt aussehen :


<root>
 <farbe>2</farbe>
 <rahmen>
  <rahmen-dicke>4</rahmen-dicke>
  <rahmen-stil>5</rahmen-stil>
 </rahmen>
 <nummer>16354</nummer>
</root>

Nun soll meine Applikation diese XML verändern. Also keine allzu schwere Aufgabe. Da ist nur das Problem das dies Benutzerfreundlich geschehen soll, naja ein Problem ist es nicht, sondern meine Pflich

Es gibt also in der XML Elemente die einen festen Stamm von validen Daten haben. Z.B. Element "farbe" darf Werte von 1 bis 10 annehmen wobei 1 = weiss bedeutet 2 = rot etc.

Es gibt aber auch einige wo dies nicht der Fall ist z.B. "nummer" darf Nummerische Werte annehmen.

Intern wird nur mit den Nummern gearbeitet aber um dies Benutzerfreundliche zu gestalten sollte mit den Display Namen z.B. 2 ist gleich "Rot" in der Oberfläche gearbeitet werden.

Nun habe ich mir eine Klassenhierachie zusammen gebaut und ungefähr so aufgebaut ist :

(Siehe Bild)

Es gibt eine Klasse Namens Element, diese Repräsentiert ein Element in der XML. In dieser Klasse ist auch ein Dictionary mit dem KeyValuePair<int, string>. Dort registriere ich alle Werte die für dieses Element erlaubt sind :

Beispiel "farbe" :

1 = weiss
2 = rot
..
..
..

Für Elemente die keinen Auswahl an validen Werten angeben habe ich eine zweite Klasse gemacht die ElementRange heisst.

Nun gibt es noch eine Documentklasse die eine Liste auf alle registrierten Elemente Objekte enthält.

Es wird nun von meinem Programm aus eine XML geladen, dann wird direkt geguckt welche Elemente, die registriert worden sind auch in der XML enthalten sind und diese werden dann mit ihren Display Namen zurück gegeben an die UI und es wird dann dynamisch eine Eingabe für neue Werte generiert.

Sprich labels werden aufgebaut und dann ComboBoxen mit den gültigen Werten in ihren Displaynamen oder einfache Textboxen.

Schon beim programmieren ist mir aufgefallen das ich alles ziemlich komplex aufgebaut habe.

Nunja nun wurde mein Programm gereviewt und mir wurde gesagt das ich es nicht sehr schön gelöst habe da ich die Daten die ich bekomme direkt verarbeite.

Ich sollte mich zuanfang gar nicht darum kümmern die Daten schön aufzubereiten sondern erstmal die Daten an sich zu sammeln.

Mir wurde vorgeschlagen mir die XMLSerialisierung anzusehen für dieses Problem, da die XML File immer den selben aufbau, sprich statisch ist.

Meine Frage ist nun was ihr persönlich an meinem Aufbau falsch bzw. nicht gut findet. Ich würde gern daraus zuviel wie möglich an Erfahrung rausziehen

Vielleicht bessere Lösungansätze ?

Wenn ich den XMLSerialierungs Weg gehe müsste ich ja auch eine Art Übersetzer Klasse wieder aufsetzten etc.

Naja ich hoffe auf rege Beteiligung .

Mfg

Thema: Gateway validieren per XSD ?
Am im Forum: Datentechnologien

Interessanter Ansatz. Den Overhead könnte ich eigentlich in Kauf nehmen. Nur mir fehlen noch die XSLT Erfahrungen.

Thema: IE 6/7 flackern beim refresh eine Seite deaktivieren ?
Am im Forum: Web-Technologien

It´s a me Mario.

Falls es jemanden interessiert. Ich habe das Problem gelöst und eine Art Fake Ajax Methode gefunden. Einfach in den Header :

<meta http-equiv="Page-Enter" content="blendTrans(Duration=0)">
<meta http-equiv="Page-Exit" content="blendTrans(Duration=0)">

Dies bewirkt das die Übergänge kein Flackern mehr haben, kein Ajax Overhead aber dennoch kein blinken mehr

Thema: IE 6/7 flackern beim refresh eine Seite deaktivieren ?
Am im Forum: Web-Technologien

Zitat von Peter Bucher
Wenn du nur Teilbereiche einer Webseite updaten musst, schau dir mal AJAX an.

Scheint die einzige Lösung zu sein. Dann muss ich mal sehen ob dies nich zuviel OVerhead wird. Danke

Thema: IE 6/7 flackern beim refresh eine Seite deaktivieren ?
Am im Forum: Web-Technologien

Hallo,
wir entwickeln zurzeit eine Software die immer wieder die selbe Seite anzeigt, dennoch alle Sekunden die Seite refresht falls Änderungen auftreten.

Leider bekommt man immer beim IE 6/7 immer einen Blitzeffekt, sprich man sieht das die Seite kurz weg ist. Beim Firefox geht dies ohne das flashen. Chrome kann dies auch.

Ich hoffe es gibt eine Option diesen Blitzeffekt auszustellen. Das System läuft auf Embedded WinXP.

Falls jemand was weiss würde ich mich sehr freuen :D

Thema: Coding Styles Horror
Am im Forum: Smalltalk

Habe hier gerade ein Projekt was ich weiterführen soll und habe folgenden Code gefunden.

Das Problem was es lösen soll ist das eine Datei eingelesen werden soll. Diese enthält eine Seriennummer die in ein Label eingetragen werden soll. Sprich, einfaches Parsing.

                if (File.Exists(swFile.FullName))
                {
                    int tmpCounter = 0;

                    StreamReader txtReader = File.OpenText("tmp/file.txt");
                    string tmp = String.Empty;
                    while ((tmp = txtReader.ReadLine()) != null)
                    {
                        if (tmpCounter == 1)
                            this.[B]label9[/B].Text = tmp;

                        tmpCounter++;
                    }

                    txtReader.Close();
                }

Das komplette Projekt durch wurden die Steuerelemente nicht benannt, sprich nur die automatischen Namen übernommen

Thema: Gateway validieren per XSD ?
Am im Forum: Datentechnologien

Zitat von Florian Reischl
Hallo pohlmann
Zitat von pohlmann
ich versteh es immernoch nicht ... außerdem welche Werte das Element verwenden darf...
Ich nehme an Midnight Run arbeitet mit dem <xs:pattern id="foo" value="RegEx"></xs:pattern>

Grüße
Flo

Ich habe es so gelöst :

<xs:pattern value="((((25[0-5])|(2[0-4][0-9])|([01]?[0-9]?[0-9]))\.){3}((25[0-5])|(2[0-4][0-9])|([01]?[0-9]?[0-9])))(\-((((25[0-5])|(2[0-4][0-9])|([01]?[0-9]?[0-9]))\.){3}((25[0-5])|(2[0-4][0-9])|([01]?[0-9]?[0-9]))))?"/>

Thema: Gateway validieren per XSD ?
Am im Forum: Datentechnologien

Zitat von Florian Reischl
Korrekt. Wenn du bei der Konfiguration der Validierung flexibel bleiben willst kannst du höchstens noch ein XSLT dazwischenhängen welches nach der XSD Validierung noch Relationale Integritäten prüft. Wenn alles passt am Ende ein:

<xsl:template match="@* | node()">
    <xsl:copy>
        <xsl:apply-templates select="@* | node()"/>
    </xsl:copy>
</xsl:template>

Das führt jedoch dazu dass du alles einmal komplett kopierst. Hat den Nachteil des immensen Overheads, aber den Vorteil der ausgelagerten Validierung. Du musst halt entscheiden was dir wichtiger ist. Performance oder Trennung.

Grüße
Flo

Ehrlich gesagt verstehe ich das nicht ganz. Bin nicht so tief drin in der Materie :D Aber jede neue Datei würde Änderungen am Endgerät verlangen.

@pohlmann, Ich möchte die Werte/Texte der Elemente zueinander validieren.

IP : 10.10.140.2
SUBN : 255.255.255.0
GATEWAY : 10.10.141.3 <- Fehler!

Sollte als ungültig markiert werden.

Mfg

Thema: TextBox Kontrolle über Pfeiltasten (links + rechts)
Am im Forum: GUI: Windows-Forms

KeyDownEvent sollte reichen. Dann einfach auf Key.Right prüfen.
Für das setzten des Cursors TextBox.SelectionStart

Mfg

edit : JAck30lena war schneller :D

Thema: Gateway validieren per XSD ?
Am im Forum: Datentechnologien

Zitat von Florian Reischl
Hallo Midnight Run

Das geht - meines Wissens nach - nicht mit den klassischen XSD Bordmitteln. Du könntest höchstens Schematron verwenden. Das ist AFAIK im Framework noch nicht unterstützt - wobei es aber 3rd Party Libraries gibt.

Grüße
Flo

Das bedeutet ich müsste im Programm die Logik implementieren ? Naja ist unsauber aber wenn es mit klassischen XSD nicht funktioniert werde ich es so machen.