Ich habe hier eine riesige, alte Projektmappe, in der tausende Resource Strings angelegt wurden, von denen schätzungsweise 20% nicht mehr benötigt werden. Die möchte ich entfernen.
Ich habe das Problem jetzt gelöst, indem ich die Attribute in dem Schema direkt in den Typen definiert habe, statt sie vorher zu definieren und dann zu referenzieren.
Dennoch würde ich gerne verstehen, wo das Problem liegt.
Kennt einer ein wirklich gutes, ausführliches Tutorial dazu? Oder kann mir jemand ein Buch empfehlen?
der stream darf nicht geschlossen werden, denn dann 'funktioniert' das Image nicht mehr richtig. Bei kleinen Bildern klappt es manchmal. Wahrscheinlich weil es zwischengespeichert ist und kein Zugriff mehr auf den Stream erfolgt...
Bei großen Bildern gibt es aber Probleme, da dort immer wieder auf den Stream zugegriffen wird.
Ähm, in c# heißt es doch Color (amerikanisch) und nicht Colour (britisch). Zumindest ist mir noch kein Colour untergekommen. Wo hast Du es denn gefunden?
Grey und Gray: Die Namen der Farben wurden sicher aus anderen Quellen übernomen. Die Namen gibt es in HTML, und ich kenne sie auch von alten Unix-Systemen. Meistens ging da übrigens beides...
Ich verstehe, dass die zweite Version funktioniert (auch wenn sie mir nicht gefällt, denn ich möchte eigentlich auf das r: verzichten), aber ich verstehe absolut nicht, wieso die erste Version nicht funktioniert.
Wenn ich das Schema direkt einbette, statt es über include einzubinden, funktioniert die erste Variante übrigens.
Ich nutze (auf der Arbeit) Vista Ultimate schon seit 1,5 Jahren. Man muss sich ja schließlich auskennen, bevor es die Kunden einsetzen...
Anfangs war ich sehr genervt. Mittlerweile sind mir einige stärken aufgefallen. Was mich besonders beeindruckt hat, war ein Problem im Zusammenhang mit der Registry. Ich entwickle gerade eine NamespaceExtension für den Explorer und bei einer Test-Installation auf einem XP-System kam es mal zu einem ernsten Problem. In der Registry gab es ein paar Schlüssel, die plötzlich nicht mehr gelöscht etc. werden konnten. Die Rechte auf diese Schlüssel waren komplett weg. Ich hatte versucht im Abgesicherten Modus mit Eingabeaufforderung sie zu entfernen, zu ändern..., aber es ging nicht. Leider lief deswegen auch der Explorer nicht mehr und ich konnte Windows neu installieren...
Bei Vista hatte ich das selbe dann mal auch provoziert. Die Schlüssel ließen sich zwar auch nicht löschen (selbe Fehlermeldung...) aber sie wurden daraufhin einfach automatisch entfernt und alles war gut.
Die Benutzerkontensteuerung finde ich gut, auch wenn es manchmal ein wenig nervt, wenn man gerade recht viel als Admin zu tun hat und ständig alles Mögliche bestätigen muss...
Auch die Sache mit den Sprachpaketen ist super. Ich kann einfach auf English umstellen und habe ein komplett Englisches System. (Man muss sich zwar neu Anmelden, aber das ist besser als ein kompletter Neustart, den ich vermutet hätte.) Das ging unter XP nicht. Da musste ich mir mehrere XPs installieren...
Ein weiteres für mich wichtiges goody ist die breadcrumpnavigation im Explorer.
Ich hatte allerdings mehr erwartet, bei der langen Entwicklungszeit.
Du liegst richtig. Die Verweise sind in der Assembly nicht zu finden, wenn sie nicht benötigt werden. Leider ist mein Setup-Projekt nicht so 'klug'. Dort tauchen die Abhängigkeiten auf und es wird jede Menge Mist, der eigentlich nicht benötigt wird, mit installiert und genau das ist es, was ich vermeiden wollte...
geklammert ist. In diesem Bereich benutze ich Klassen, für die ich in meinem Projekt Verweise hinzufügen muss (Microsoft.VisualStudio.TemplateWizardInterface und EnvDTE). Die Verweise benötige ich ansonsten nicht.
Gibt es eine Möglichkeit Verweise abhängig von solchen Symbolen zu setzen?
Die Assembly, die rausgeht, wird ohne das Symbol compiliert und da sollten eigentlich auch die unnötigen Verweise entfernt werden. Zur Zeit entferne ich sie immer, wenn ich sie nicht benötige und füge sie wieder ein, wenn sie benötigt werden. Das würde ich gerne automatisieren. Geht das evtl. über Build-Ereignisse?
In der Registry findet man unter ...\shell\[verb]\command sowas wie notepad.exe %1 etc.
[verb] steht für open, edit, read, print, openasreadonly, play, etc.
Manchmal steht da auch ein %L. Das steht wohl für den langen Namen und ist somit im Grunde gleichbedeutend mit "%1".
Ich habe aber auch %I (I wie Idar) gesehen.
Weiß jeman wodurch das ersetzt werden soll?
Ich habe jetzt 2 Stunden lang gegoogelt und nichts dazu finden können...
Ich habe einen WebService mit einigen WebMethoden. Diesen habe ich eine Description mitgegeben.
Beispiel:
[WebMethod(Description="Blabla")]
public string HelloWorld()
{
return "Hello World";
}
In meinem Client habe ich eine WebReference erzeugt (mit Visual Studio...)
Dort kann ich nun diese Methode aufrufen. Ich möchte aber auch an die Description ("Blabla") ran kommen.
Weiß jeman, wie ich die aus dem Code raus abfragen kann?
Ich habe vor sowohl einen Index aufzubauen, als auch eine völlig freie Regex Suche anzubieten. Wenn jemand riesige Texte mit Regex durchsuchen möchte, dann muss er damit leben, dass das länger dauern kann. Sucht er bloß einzelne Worte, geht es fixer...
Ich hätte vielleicht auch mal rechnen sollen...
Wer tatsächlich vor hat riesige Texte zu Speichern und diese auch per Regex durchsuchen zu lassen, der muss sich auch die 3GB Arbeitsspeicher gönnen und davon soviel wie möglich meiner Applikation gönnen...
Die Wahrscheinlichkeit, dass mehrere Anwender eine Suche starten, bei der gleichzeitig mehrere riesige Texte geladen werden müssen und es dabei zu einer OutOfMemoryException kommt ist sehr gering. Und dann kann man es ja einfach nochmal versuchen...
Vielleicht sollte ich mir tatsächlich den .net Code vornehmen und ihn so erweitern, dass Regex auch mit Streams umgehen kann. Dann könnte ich den Code an Microsoft schicken und hoffen, dass die den im nächsten Framework einbauen.
Ich denke, ich werde wohl dokumentieren, dass Regex nicht auf beliebig grosse Texte anwendbar ist und evtl. die Möglichkeit anbieten eine Regex auf die Ersten x bzw. die letzten x Zeichen vorzunehmen... das muss dan reichen.
Vielleicht könntest du die genannte Möglichkeit so anwenden (ist jedoch immer noch nicht ein vollwertiger Ersatz):
- Zeichen 0 bis 200.000 (das dürfte Regex schaffen)
- Zeichen 100.000 - 300.000 (überlappten Teil etwas übertrieben...)
- Zeichen 200.000 - 400.000
- ...
mfg
webstarg
Edit: Länger als 100.000-Zeichen wird ein Suchtreffer in der Regel nicht sein. ;-) Hoffentlich.
Hm, da fällt mir folgendes Pattern ein:
.*+Anhang
Also alles vom Anfang, bis zum letzten Auftreten des Wortes Anhang. Das kann sehr viel werden.
Ein beliebiger Regulärer Ausdruck kann auch beliebig lange Treffer haben...
Und ich möchte nichts einschränken.
Ich kann das Pattern leider nicht einfach dort zerlegen, wo Quantoren vorkommern, da es nämlich Klammern gibt, die beachtet werden müssen. Außerdem müsste ich wohl auch zwischen greedy und lazy unterscheiden. Dann gibt es noch das Oder...
Und vielleicht gibt es (z.B. in Zusammenhang mit Lookaround) noch weitere Probleme, die mir gerade nicht einfallen, die zu beachten wären. Ich müsste also zunächst alle Möglichkeiten von Regex durchgehen und käme am Ende wahrscheinlich zu einer sehr komplexen Logik, die der des Parses nahe kommt...
Ich sehe nicht, wie das für beliebige Regex funktionieren soll. Ich müsste die Regex erstmal selber zerlegen etc.
Das scheint mir sehr viel Aufwand zu sein. Beinahe soviel Aufwand, wie selber einen Parser zu schreiben.
Vielleicht habe ich aber auch Dein Beispiel noch nicht richtig verstanden.
Hast Du mal ein konkretes simples Beispiel?
Ich denke nicht, dass der Parser unbedingt den ganzen Text auf einmal im Speicher benötigt. Der Parser geht den Text ja zeichenweise durch. Er könnte also jedes Zeichen einzeln aus dem Stream abrufen. Und im Stream kann man hin und her "spulen", ohne den kompletten Stream im Speicher haben zu müssen.