Ich kann dir bei deinem Problem leider nicht direkt weiterhelfen, möchte jedoch die Gelegenheit nutzen, dich auf OpenXML aufmerksam zu machen. Ich habe vor einiger Zeit damit erfolgreich Word-Dokumente im docx Format erstellt.
Irgendwelche Ideen? Kann man mit einer foreach Schleife durch die Nodes springen und den Namen abfragen?
Hi SeCuRiiTaS!
Die Arbeit wird dir leider nicht vom Framework abgenommen, ist aber ganz leicht umzusetzen. Schau dir einfach mal diesen Artikel zu Tree-Traversal-Algorithm an. Damit kannst du alle Knoten abfragen und deine Suche leicht implementieren.
Vor genau dem selben Problem stehe ich gerade auch. OK, das mit der Serialisierbarkeit habe ich nicht, aber auch ich muss eine Abfrage dynamisch zur Laufzeit anhand persistierter Parameter erstellen. Etwas richtig intelligentes ist mir auch nicht eingefallen, außer die Dynamic-LINQ library. Bin mal gespannt, ob jemand einen eleganteren Weg kennt, außer die magic-strings von Hand zu erstellen.
Du hast Recht, wenn du sagst, dass eine Klasse nicht von einem Interface erben kann. Sie kann dies nur implementieren. Da die Schreibweise im Quellcode jedoch identisch ist, sagen manche dies einfach so.
was spricht denn dagegen, einfach einmal pro Tag/Nacht per "Geplante Aufgaben" einen normalen Check-In der sowieso genutzten Versionsverwaltung laufen zu lassen.
Dagegen spricht gar nichts. Dachte nur, dass es vielleicht ein Tool gibt.
Ich werde mir wohl ein Skript schreiben, das mein git-repository automatisch aktualisiert. Die Idee mit dem Task gefällt mir gut.
Ja, stimmt. Mit dem FileSystemWatcher würde ich das hinbekommen. Ich habe damit auch schon gearbeitet.
Ich wollte jedoch vermeiden, das Rad neu zu erfinden und fragte daher, ob es schon ein Tool gibt, das mir diese Arbeit abnimmt. Die grundlegenden Funktionen sind ja nie die Zeitfresser bei der Programmierung - meist sind es die unvorhergesehenen Ausnahmen.
Könnt ihr mir ein Tool empfehlen, das ein Verzeichnis überwacht und, sobald ein Benutzer eine Datei hinzufügt/ändert/löscht, einen Eintrag in einer Versionskontrolle erstellt?
Mein Ziel ist, Textdateien (meist sql-skripte, die zu Auswertungszwecken erstellt werden) zu archivieren und die Änderungen an diesen nachvollziehbar zu machen.
Wir haben hier einige Kollegen, die relativ fit in SQL sind, jedoch sicherlich nicht gewissenhaft git/svn bedienen würden. Daher mein Ansatz, sie gar nichts von der im Hintergrund laufenden Versionsverwaltung wissen zu lassen ;-)
Ich habe das Buch nun schon zu einem großen Teil gelesen und möchte es an dieser Stelle gerne weiterempfehlen, da der Autor mir genau die Grundlagen vermittelt hat, die mir fehlten.
Na, da bin ich aber mal auf Lösungen gespannt. Mal schauen, ob mir eine clevere Idee kommt, wie man die Aufgabe lösen kann - vielleicht beim Joggen oder Duschen ;-)
Edit: Ach ja, es wäre schön, wenn du ein paar Beispieldaten geben könntest, so dass man sich gleich auf die Problemlösung stürzen kann.
Ich habe ein ähnliches Beispiel vor Kurzem im WPF-Buch von Thomas Claudius Huber gesehen.
Dort wurde es mit einem Grid und einem GridSplitter, den der Benutzer anfassen und verschieben kann, realisiert.
Mit diesen Stichworten solltest du erstmal weiterkommen.
Danke für deine Empfehlung. Dieses Buch habe ich auch schon in die nähere Auswahl gefasst. Der Vollständigkeit halber sei erwähnt, dass es eine aktualisierte Version gibt.
Ich möchte euch um empfehlenswerte Literatur zum Thema WPF bitten.
Ich habe bereits das Buch "Pro WPF in C# 2010" von Matthew MacDonald (appress), weiß aber noch nicht so genau, was ich davon halten soll. Das Buch bleibt leider oft an der Oberfläche - im wahrsten Sinne des Wortes (sprich XAML)
Mich interessieren die Konzepte hinter der Technologie. So z.B. das Databinding. Es sieht ja schon recht imposant aus, wenn man im XAML-Code den Namen des Properties angibt und das Textfield bspw. dieses Property von den gebundenen Objekten ausliest. Allerdings stört mich daran, dass der Name des Properties als string im XAML-Code angegeben wird und somit "immun" gegen das automatische Refactoring vom VS/ReSharper ist.
Wenn ihr ein gutes Buch empfehlen könnt, das etwas mehr in die Tiefe geht und auf alltägliche Probleme bei der Entwicklung von Geschäftsanwendungen eingeht, dann immer her damit.
ein Kollege von mir hatte dasselbe Phänomen. Wir sind vor kurzem mit der Firma umgezogen, wobei die IT (Server und Entwicklungsrechner etc.) am alten Standort geblieben sind. Daher arbeiten wir mit der Remote-Verbindung auf den Rechnern am alten Standort. Mein Kollege hat auf seinem alten Rechner noch WinXP - die Rechner am neuen Standort haben alle Win7.
Nur er hatte das von dir beschriebene Problem. Die Ursache ist wohl die mangelnde Grafikbeschleunigung von XP über die Remoteverbindung hinweg. VS2010 wurde ja mit WPF umgesetzt, so dass die Grafikkarte ein Flaschenhals sein kann.
Vielleicht hilft dir das weiter.
VG, Florian
P.S.: Ich habe zu Hause einen Mac mit VMWare-Fusion. Ich lasse Win7 in der VM laufen und habe überhaupt keine Probleme mit VS2010. Time to say goodbye to WinXP ;-)
Geht es euch auch so, dass ihr manchmal ein Denkspiel spielt und dabei unweigerlich darüber nachdenken müsst, wie man das wohl programmatisch lösen könnte?
Habt ihr eine Idee, wie man dieses Problem mit Hilfe eines Algorithmus angehen könnte? Ich könnte mir gut vorstellen, dass sich hierfür Dijkstra oder A* eignen. Mir fallen allerdings keine geeigneten Heuristiken ein, um die Kosten zu schätzen, die zum Ziel führen. Was sagt ihr dazu?
Ich würde mich über ein paar Anregungen von euch freuen. Leider kann ich nicht versprechen, zeitnah zu antworten, da ich gerade beruflich viel um die Ohren habe und bald im Urlaub bin.
könntest du mal einen Screenshot anhängen wie das ganze dann aussieht?
Klar doch. OT: Wie umständlich das mit den Screenshots immer bei Windows ist... Da gefällt mir mein Mac zu Hause viel besser ;-) Dies soll keine Aufforderung zum Flamewar sein. Nur eine Feststellung.
Das Thema hat mich auch interessiert. Mit WPF habe ich es hinbekommen. Schau dir doch mal mein Beispiel an und sag mir, ob es dir weiterhilft. Meines Wissens kann man auch in WindowsForms-GUIs WPF Elemente darstellen.
Da ich mich mit WPF nicht so gut auskenne, wäre ich für Verbesserungsvorschläge dankbar.
Zum OpenXML-SDK gibt es ein Tool, mit dessen Hilfe du dir den Inhalt der OpenXML-Datei (docx etc.) anzeigen lassen kannst.
Dort gibt es auch ein diff-Tool, das maßgeschneidert auf diese Dateien ist.
Vielleicht kannst du deinem Fehler so auf die Sprünge kommen. Mich würde das Ergebnis interessieren, da ich auf der Arbeit auch mit OpenXML-Dateien arbeite.
Ja ich würde da dann beide Betriebsysteme im DualBoot installieren. Macht meines erachtens mehr sinn, als eines der beiden in einem vituellen System einzusperren.
Ich bekomme in den nächsten Tagen endlich mein neues MacBook und werde mir Win7 auch auf der Bootcamp-Partition installieren. Das coole daran ist, dass man mittlerweile mit VMWare-Fusion auch aus dem Betrieb von MacOS auf diese Partition zugreifen kann. Wenn man also nicht die volle Performance braucht, kann man also getrost auf den Neustart verzichten und mit beiden Betriebssystemen parallel arbeiten.
Ich persönlich möchte beim Alltagsgebrauch (surfen, Mails, Fotos, Musik) nicht mehr auf den Mac verzichten, habe aber immer noch die Freiheit mit Windows zu arbeiten.
Ich kann dir nur wärmstens das OpenXML-SDK von Microsoft empfehlen. Damit brauchst du dir gar keine Gedanken über die XML/string-Verarbeitung machen. Du kannst typsicher auf die ganzen Objekte im Dokument zugreifen.
Leider reicht meine Zeit nicht aus, um dir ein Beispiel zu geben, aber mit dem Stichwort solltest du Informationen finden.
Ich habe jetzt mal eine Teillösung für MSSql erarbeitet. Mehr Zeit habe ich gerade leider nicht.
Damit solltest du weiterkommen.
VG, Florian
WITH x (Warenkorb_ID, ArtikelauflistungCsv) AS (
SELECT DISTINCT(Warenkorb_ID)
, (SELECT SUBSTRING(
(SELECT ',' + CAST(Artikel_ID AS VARCHAR)
FROM dbo.FloWi_Warenkorb_Artikel b
WHERE b.Warenkorb_ID = a.Warenkorb_ID
ORDER BY b.Artikel_ID
FOR XML PATH('')), 2, 200000)) AS ArtikelauflistungCsv
FROM dbo.FloWi_Warenkorb_Artikel a
)
SELECT * FROM (
SELECT x.*
, COUNT(*) OVER(PARTITION BY x.ArtikelauflistungCsv) AS AnzahlArtikelImWarenkorb
FROM x) AS y
WHERE AnzahlArtikelImWarenkorb > 1