Laden...
F
fielding
myCSharp.de - Member
2
Themen
60
Beiträge
Letzte Aktivität
vor 14 Jahren
Dabei seit
05.05.2010
Alter
37
Erstellt vor 14 Jahren

Ich hätte gfoidls post ja so verstanden, dass RegEx hier die bessere Lösung ist..

Wie herbivore schon sagte, das klappt ganz gut:


            string input = "Hans wollte 40 km laufen, aber ab 20 km hatte er keine Puste mehr";
            string wordToFind = "ab";
            string regExWordDelimiter = "\\b";
            Regex regEx = new Regex(wordToFind + regExWordDelimiter, RegexOptions.IgnoreCase | RegexOptions.Multiline);
            IEnumerable matches = regEx.Matches(input);
            foreach (Match match in matches)
            {
                System.Console.Write(match.Value + " ");
            }

            System.Console.ReadKey();

Erstellt vor 14 Jahren

Also der //Constructor Kommentar ist wirklich Horror, ein //Nothing allerdings lesbarer als {} oder {;}. Allerdings spricht auch nix gegen // Explicit default constructor 😃

Erstellt vor 14 Jahren

Da würde ich mich nicht drauf verlassen. Oft ist String.Join schneller:
StringBuilder vs. String / Fast String Operations with .NET 2.0 - CodeProject

Übrigens würde ich mir die abart von ungarischer Notation (String sName; int iZahl;) möglichst schnell wieder abgewöhnen. Das ist kein guter Stil und erhöht den Wartungsaufwand. Du musst nämlich bei einer Typänderung im Zuge eine Refactorings zusätzlich noch die den Variablennamen ändern, was gern vergessen wird. Gerade wenns dann von Long -> Int oder so geht kann das schnell zu bugs führen. Vielleicht interessiert dich ja das Buch Clean Code.

Erstellt vor 14 Jahren

Es liegt sicher am namespacemanager und die hier gezeigte lösung müsste funktionieren. Allerdings wärs komfortabler wenn man den defaultnamespace auch dem namespacemanager als default bekannt macht (präfix string.empty), dann spart man sich die präfixe im xpath ausdruck (welche ich gerne vergesse und dann doof schau).

Je nachdem, welcher Knoten aktuell der Kontextknoten ist, kann der xpath ausdruck stimmen oder auch nicht. Deiner ist auf jeden fall auch richtig, wobei du dir den doppelslash sparen kannst.

passen würde unter anderem (Kontext root):


//item/presentation/material/mattext
/questestinterop/item/presentation/material/mattext
//presentation/material/mattext
/*/presentation/material/mattext

Gut zum testen ist immer der xpath visualizer.

Erstellt vor 14 Jahren

das hat nix mit nested classes zu tun sondern heißt _composition _und ist meist der vererbung vorzuziehen. von daher gut, aber am thema vorbei 😃

Erstellt vor 14 Jahren

Du kannst ein Node(Set) via XPath selektieren und dann damit arbeiten.


            XmlDocument xd = new XmlDocument();
            xd.Load("test.xml");
            XmlNode xn = xd.SelectSingleNode("//User");

Von da aus kannst du mit der XmlNode arbeiten. Für mehrere Nodes gibts dann eben XmlNodeSet und SelectNodes.

Erstellt vor 14 Jahren

Rein IE ist natürlich was anderes als rein IE6, sorry wenn ich dich falsch verstanden habe. Und Siemens ist jetzt nicht unbedingt ein negativbeispiel sondern eher einfach eines aus dem richtigen leben. Die meisten Großkonzerne sind in der IT relativ rückständig weil unflexibel durch lange entscheidungswege.

Erstellt vor 14 Jahren

Auch solltest du alle aktuellen Browser unterstützen,

pauschal ausgedrückt, ja aber es gibt fälle wo man das nciht muss. z.b. im businessumfeld. wenn man weiß das nur der IE zum einsatz kommt, kann man sich die ganzen browserspezifischen unterscheidungen sparen, was vor allem in javascript deutlich einfacher ist.

Das ist aber auch etwas kurzsichtig. Siemens entwickelt Webanwendungen immer noch für den IE6 und testet auch nur auf dem IE6. Die große Überraschung: Man kann nicht auf den IE8 und vor allem den FF umsteigen, weil die alte Software teilweise nicht mehr korrekt dargestellt wird. Vorsichtshalber wird weiter nur für den IE6 entwickelt, damit man sich einen möglichen umstieg auf einen halbwegs aktuellen browser (welcher ist egal) endgültig verbaut. Ich behaupte mal dass standardkonforme webanwendungen immer gut investiertes geld sind.
Nette geschichte: Die kompatibilität von Vista zu bestehenden anwendungen wurde solange getestet, bis W7 raus kam. Also hat man den umstieg zu Vista übersprungen und testet jetzt fleißig W7 - wahrscheinlich bis W8 kommt.

Zum autor: du hast dir deine meinung ja bereits gebildet. Schau dir trotzdem erst mal das bestehende tool an und finde heraus warums langsam läuft. Neuimplementierung ist meistens sehr teuer im vergleich zu einem hardwareupgrade oder ein paar wartungsarbeiten an überlasteten systemen.

Wir hatten übrigens mal ein ähnliches problem, da wars eine webanwendung die schrecklich langsam lief obwohl genug ressourcen vorhanden waren. Nach wochenlangem suchen und testen ist uns dann aufgefallen, dass alle server neu gebootet wurden (winupdate) und dabei eine alte kopie der webanwendungs-vm mit der gleichen MAC gebootet ist. Je nach auslastung hat dann im browser alte oder neue VM geantwortet 😃

Erstellt vor 14 Jahren

Vielen Dank euch beiden, das macht das ganze einfach viel verständlicher (nicht nur für mich, sondern für jeden besucher dieses threads) und man muss nicht erst umständlich mit dem debugger durch den code gehen, um zu begreifen was passiert. Das ist meiner Meinung nach das bisschen Mehraufwand wert 😉

Erstellt vor 14 Jahren

die aufgabe war wirklich interessant, kann vllt einer noch für nicht-mathematiker erklären was da passiert? aus

Im Prinzip funktioniert es ähnlich dem Sieb des Eratosthenes. Es werden alle Zahlen im Suchbereich markiert, die irgendwie über eine Summe erreichbar sind. werd ich nicht schlau. Ich kenn zwar das Sieb des Eratosthenes und verstehs auch, den transfer zu diesem problem bekomme ich aber leider nicht hin. Allgemein würde man sich über 2 oder 3 kommentare in den Lösungen immer freuen 😉