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 fielding
Thema: [erledigt] Suche in einem String: nur ganze Wörter finden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

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();

Thema: Coding Styles Horror
Am im Forum: Smalltalk

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

Thema: Performance Optimierung beim Schreiben einer Textdatei
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

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.

Thema: Komme nicht ans XML-Node
Am im Forum: Datentechnologien

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.

Thema: Nicht modale Form, soll nach außen ein Event werfen, wenn ein Button gedrückt wurde
Am im Forum: GUI: Windows-Forms

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 :)

Thema: Frage zu konkreter Adressierung für eine Abfrage eines XML-Dokuments
Am im Forum: Datentechnologien

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.

Thema: Schnellere Anwendung mit WEB Technologien, statt normalem Weg?
Am im Forum: Web-Technologien

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.

Thema: Schnellere Anwendung mit WEB Technologien, statt normalem Weg?
Am im Forum: Web-Technologien

Zitat von JAck30lena
Zitat
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 :)

Thema: Das Programmier-Spiel: nette Übungsaufgaben für zwischendurch
Am im Forum: Smalltalk

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 ;)

Thema: Das Programmier-Spiel: nette Übungsaufgaben für zwischendurch
Am im Forum: Smalltalk

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

Zitat
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 ;)

Thema: Suche Synonym für "Entwicklungsumgebung"
Am im Forum: Smalltalk

Hallo alle zusammen,
ich schreibe gerade eine kurze arbeit über ein reengineering in der datenhaltung, welches ich hier in der firma begleitet habe. Nun wollte ich gerne ein kapitel über die verwendeten tools mit einstreuen (Visual Studio, Clearcase, Enterprise Architect, Office, fxCop, Resharper, XMLDiff, ...), allerdings scheitert es an der Kapitelüberschrift.

Angedacht war eigentlich "Entwicklungsumgebung", da genau in dieser technischen umgebung entwickelt wurde. Allerdings ist die Entwicklungsumgebung im Deutschen ein 100% synonym für eine IDE (google entwicklungsumgebung, wiki forwarded nach IDE). Fällt denn jemandem ein passender begriff für das verwendete toolset ein? Dieses soll die eigentliche IDE und dazugehörige utilities genauso beinhalten wie VCS und Dokumentationswerkzeuge.

Danke!

Thema: Wie haltet ihr euch fit?
Am im Forum: Smalltalk

1-2x (2x eher selten) die woche squash - genau der richtige sport. Nachts um 22:00 noch für ne stunde mit kollegen in den court (gesündester sport überhaupt lt. forbes ;)) und die welt ist wieder in ordnung. Ansonsten im sommer zusätzlich beachvolleyball mit freunden und zur zeit leider eher selten aufs rennrad (ingolstadt ist radunfreundlich).

Thema: Fernstudium WI - AKAD oder WBH
Am im Forum: Smalltalk

FernUni Hagen ist wohl die bekannteste (und auch größte Uni überhaupt) in Deutschland. Die meisten sind wirklich zufrieden.

Thema: Mittels relativer Pfadangabe Laufwerk wechseln
Am im Forum: Basistechnologien und allgemeine .NET-Klassen


public static FileInfo RelativeWithDriveChange(String drive, String relPath)
{
    String curDir = Directory.GetCurrentDirectory();
    String newDir = drive + curDir.Substring(3, curDir.Length - 3);
    Directory.SetCurrentDirectory(newDir);
    // there are exceptions to catch
    FileInfo result = new FileInfo(relPath);
    Directory.SetCurrentDirectory(curDir);
    return result;
}

// Usage - current dir c:\foo\bar\baz
FileInfo fi = RelativeWithDriveChange("d:\\", "..");
Debug.Print(fi.FullName); // should be d:\foo\bar

aber irgendwie hat man dadurch nichts gewonnen ;)

Thema: IPv6: Was tun, um ein Desaster zu verhindern?
Am im Forum: Smalltalk

Da hast du mich falsch verstanden, ich meinte nicht unbedingt die industrie, welche Netzwerktechnik produziert, sondern diejenige, die diese einsetzt. Und v6 ist in den meisten firmen noch kein thema. Ich glaube, mann muss mehr als CCNA sein, um bei dem Thema wirklich mitreden zu können. Das dürften allerdings die wenigstens (inklusive mir) sein. Auf jeden fall gabs die diskussion über erschöpfte IP ranges schon des öfteren, aber gerade in der Netzwerktechnik ist eigentlich immer alles SNAFU (situation normal - all fucked up) und trotzdem funktionierts irgendwie. Das schichtensystem ist vom design her falsch. IPv6 ist klar ein schritt in die richtige richtung, kann allerdings nur eingeführt werden, wenn es einige zeit parallel zu v4 läuft. Außerdem wären nach der umstellung zu v6 wohl einige netzwerktechniker arbeitslos, denn da funktionieren einige sachen wie routing, qos und subnetting anstandslos(er). Ich verwette auf jedenfall meinen hut darauf, dass niemand hier wegen "ip address 404 - no free addresses found" nicht online kommen wird ;)

Thema: IPv6: Was tun, um ein Desaster zu verhindern?
Am im Forum: Smalltalk

Ich denke, dass PAT (!=NAT) und Subnetting auch für die nächsten Jahre noch genug Reserven bringt. Bis dahin sollten sich dual stacks verbreitet haben, was den umstieg zumindes auf öffentlicher ebene fließend macht. Wie dringend der umstieg auf v6 ist, sieht man am besten daran, wie sich die industrie verhält. Und da scheint noch mehr als genug zeit zu sein.

Thema: Nullable für Referenztypen
Am im Forum: Rund um die Programmierung

Referenztypen sind nullable. Versuch mal folgendes:
Nullable type as a generic parameter possible?

Thema: Downloads auf SSD oder Festplatte
Am im Forum: Smalltalk

solange du nicht über 80mbyte/s oder 1000000 1kb files auf einmal ziehst, gibts absolut keinen grund, warum man die kleine ssd (die mit dem os beschäftigt ist) anstatt der hdd (idle) vollmüllen sollte.

Thema: SW-Architektur Verständnis Hilfe
Am im Forum: Rund um die Programmierung

Zuallerst: Auf den bildchen erkennt man nicht wirklich was und ich tu mich verdammt schwer deinen text zu lesen - gib dir bitte etwas mühe.

UML wird genutzt, um a) software als blaupause vor der implementierung zu designen oder b) für die dokumentation später, was c), d) und x) auch nicht ausschließt. Es gibt viele arten von UML diagrammen, dabei hilft wiki.
Was du dir da aus VS generieren lässt ist meiner meinung nach kein richtiges UML Diagramm sondern ein Mischung aus Package und Component Diagramm.

Das was du dir da Vorstellst (Struktogramme/Programmablaufpläne in der OOP) werden je nach Bedarf mit Interaction Diagrammen dargestellt:

Zitat
Interaction diagrams

Interaction diagrams, a subset of behaviour diagrams, emphasize the flow of control and data among the things in the system being modeled:

* Communication diagram: shows the interactions between objects or parts in terms of sequenced messages. They represent a combination of information taken from Class, Sequence, and Use Case Diagrams describing both the static structure and dynamic behavior of a system.
* Interaction overview diagram: are a type of activity diagram in which the nodes represent interaction diagrams.
* Sequence diagram: shows how objects communicate with each other in terms of a sequence of messages. Also indicates the lifespans of objects relative to those messages.
* Timing diagrams: are a specific type of interaction diagram, where the focus is on timing constraints.
(http://en.wikipedia.org/wiki/Unified_Modeling_Language)

Trotzdem spricht nichts dagegen, einzelne funktionen in ein struktogramm zu quetschen.

Thema: Tatsächlicher Nutzen von Unit-Tests [und TDD]
Am im Forum: Rund um die Programmierung

man sollte wohl zwischen einfachen unit tests und tdd differenzieren. natürlich bringen unit tests wenig bis nichts, wenn die coverage im niedrigen zweistelligen bereich liegt. allerdings kann dies bei konsequentem tdd nicht passieren.

Thema: Implementierung Interface IComparable: "CompareTo" wird nicht ausgeführt
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

entweder du implementierst IComparable<Appointment> und lässt deinen Code so stehen, oder du implementierst IComparable (implizit IComparable<Object>) und änderst die Signatur auf

public int CompareTo(Object o){}

Ansonsten wird CompareTo überladen und nicht überschrieben, allerdings sollte in dem fall auch ein compilerfehler auftreten, da das interface nicht erfüllt wurde.

Thema: Tatsächlicher Nutzen von Unit-Tests [und TDD]
Am im Forum: Rund um die Programmierung

Zitat von ralfw
Aber ich verstehe... Die Hygieneregeln haben sich vor 160 Jahren auch nicht einfach so durchgesetzt. Also müssen wir noch warten, bis auch der letzte Student nicht mehr anders kann und will, als automatisiert zu testen.

Offensichtlich hat die Industrie aber noch nicht begriffen, wie wichtig ordentliches softwaredesign im richtigen leben ist, ansonsten würden studenten tatsächlich von agiler softwareentwicklung und tdd hören, anstatt mit algo, datenstrukturen, c, java und mathe überladen zu werden.
das handwerkszeug kann man sich schnell selbst bei bringen, gutes softwaredesign lernt man aber von erfahrenen leuten und durch try&error, wofür umfangreichere softwareprojekte auch im studium bearbeitet werden müssten. dafür fehlt vor allem bei den neuen bachelor studiengängen bei aktuellem stoffplan schlicht die zeit. die forderung der industrie ist definitiv nicht laut genug (siehe anzahl an studiengängen technische informatik vs software engineering), ansonsten hätte sich schon was geändert.


zur umfrage: technisch ist mir klar, wie und warum tdd benutzt wird. wirklich sauber zu testen, lernt man allerdings eher im richtigen leben von erfahrenen leuten und richtigen projekten. daran mangelt es mir im moment leider massiv. deswegen: nein, aber schon fleißig am üben

Thema: An Image.Source zugewiesenes Bild wird nicht dargestellt
Am im Forum: GUI: WPF und XAML

Zitat von Quaneu
Ich weiß nun woran es liegt, doch weiß ich leider nicht wie ich es lösen kann.
Das Problem ist, dass ich einen OpenFileDialog habe. Und nach diesem "zeigt" Environment.CurrentDirectory auf den Ordner in dem ich die Datei im OpenFileDialog ausgewählt habe.

Dafür gibts die property FileDialog.RestoreDirectory, ansonsten einfach relativ von deiner assembly arbeiten.

Thema: Anwendung friert ein oder stürzt ab...
Am im Forum: Rund um die Programmierung

Zitat von JAck30lena
@fielding:

dafür braucht man keine schleife... es reicht wenn man .WaitForExit aufruft aber der blokiert ja auch ;-)

das war auch kein tipp sondern zartes nachfragen nach sowas:
while(true){/* solange process läuf mülle den speicher zu und sleep ist was für anfänger */}

Thema: Programm läuft auf Entwicklungs-, aber nicht auf Zielrechner: Installation per ClickOne/ArgumentExc
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

vielleicht probleme mit x64/x86? stell doch mal die target platform von allen abhängigen projekten auf x86. ansonsten schau mal da vorbei:
http://stackoverflow.com/questions/699173/clickonce-deployment-errors
http://social.msdn.microsoft.com/Forums/en-US/winformssetup/thread/9e4b714e-bad4-4c62-a7ad-3c80e32d95eb

wieso müssen exceptions unbedingt übersetzt werden? das macht die suche im netz relativ schwer..

Thema: Anwendung friert ein oder stürzt ab...
Am im Forum: Rund um die Programmierung

zeig doch mal die schleife, in der du überprüfst, ob der prozess schon läuft.

Thema: Welchen Clean Code Developer Grad habt ihr?
Am im Forum: Smalltalk

Zitat von CSL
Wobei ich bisher feststellen musste das ich mich schon sehr lange an diverse "regeln" halte die in CCD definiert sind ohne davon zu wissen :D

das liegt glaube ich am gesunden menschenverstand ;)
ich sehe mich gerade zwischen rot und orange, je nach motivation..

Thema: Stimmt mein Ansatz von MVC bei C#?
Am im Forum: Rund um die Programmierung

Zitat von dN!3L
Nein, nicht nach klassischem MVC. Dort enthält das Model sämtliche Logik. Der Controller kümmert sich rein um das "Mapping" von Usereingaben auf entsprechende Model-Methoden.

Sämtliche Business-Logik. Das MVC Pattern ist zwar allgemein bekannt, allerdings wird es sehr unterschiedlich ausgelegt. Nehmen wir mal folgendes an: Bei Klick auf Button B wird ein neuer Tab T in der View angelegt - wer würde nun über den Controller gehen um den Tab zu erzeugen?

Mein Model würde übrigens auch die gesamt Businesslogic beinhalten, da sonst M & C zu stark gekoppelt sind (meine Meinung).

Thema: Textbox auf IP-Adressen Eingabe prüfen ?
Am im Forum: GUI: Windows-Forms

es ist nicht ganz einfach, aber möglich:


^[12]?[0-9]?[0-9](\.[12]?[0-9]?[0-9]){3}$
oder

^((25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})\.){3}(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})$
(http://www.naden.de/blog/ip-regular-expression-check)

wie gesagt, findet sich zuhauf im netz und alternativen gibts einige, wie hier im thread schon deutlich wird.

// edit: mit der MaskedTextBox wäre aber der Punkt auf der neuen Tastatur ganz umsonst ;)

Thema: Textbox auf IP-Adressen Eingabe prüfen ?
Am im Forum: GUI: Windows-Forms

eingabe mit Regex überprüfen (gibts hunderte im netz), allerdings haben meine IPs (v4) immer 4 blöcke, bei CIDR eine dazu passende subnetmask und ggfs. noch einen port :>

<ironie>wieso bestellts du nicht eine extra tastatur mit den zahlen 0-255?</ironie> Ich glaube das stück hardware hat sich preislich nicht rentiert ;D

edit: Versuchen zu parsen geht natürlich auch, die Frage ist jetzt was man als angenehmer empfindet: während der eingabe fehler markiert zu bekommen oder nach falscher eingabe von vorne anfangen zu müssen.