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 pdelvo
Thema: Template Klasse: "Operator "*" kann nicht auf Operanden vom Typ "T" und "T" angewendet werden"
Am im Forum: Grundlagen von C#

Entsprechende generic constraints sind aber aktuell im Gespräch um das in kommenden C# Versionen zu unterstützen. Aktuell geht das leider nicht nicht.

Thema: (MC) Zlib komprimierte Packets lesen
Am im Forum: Netzwerktechnologien

Hallo thexbasic,

Ich habe mich vor einiger Zeit lange damit beschäftigt und eine Bibliothek geschrieben, die mit dem Minecraft Protokoll umgeht. Das ganze ist aber leider aktuell veraltet(der letzte Commit ist knapp 1.5 Jahre alt), aber vielleicht hilft es dir weiter.

Bibliothek

Sich darauf zu verlassen, dass Packete am Stück ankommen ist generell keine gute Idee, Ich habe damals eine Abstraktionsschicht über den Netzwerkstream geschrieben, welcher mir sicherstellt, dass immer so viel gelesen wird, wie ich erwarte.

Das findest du hier.

Lieben Gruß,
pdelvo

Thema: BitShift right (>>) um EndLine bei String zu entfernen?
Am im Forum: Grundlagen von C#

Fun fact: Auf .net strings folgt im Speicher trotzdem immer eine 0, sie sind also doch 0 terminiert. Das erleichtert interop mit nativen code.

Aber da braucht man sich nicht selbst drum zu kümmern.

Thema: Visual Studio - Projektmappe verschwindet nach Hinzufügen von neuem Projekt
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo Joosy,

Das einzige was mir jetzt einfallen würde ist, dass du ausversehen "Scope to this" (oder das deutsche equivalent) ausgewählt hast. Du kannst im Projektmappenexplorer auf das Haus Symbol klicken um zur Ursprungsansicht zu kommen.

LG pdelvo

Thema: AccessViolationException im IIS
Am im Forum: Web-Technologien

Hallo,

Hast du schonmal ein anderes System ausprobiert? Liegt es vielleicht daran? Ansonsten versuch mal mit git bisect (oder manuell mit binärer Suche) die Änderung rauszufinden, die den Fehler eingeführt hat.

LG pdelvo

Thema: Gibt es etwas schnelleres als Regex?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo gpc44,

Ich glaube eher nicht, dass Regex hier das Performanceproblem ist. Allerdings geht es eleganter (und vielleicht auch etwas schneller) mit


if(!string.IsNullOrEmpty(line) && char.IsNumber(line[0]) { ... }

Wenn aber wirklich ein Performanceproblem vieliegt ist es sicher nicht das gewesen.

LG pdelvo

Thema: XNA-Framework: Kollision von Rechtecken abfragen
Am im Forum: Grafik und Sound

Zwei Rechtecke sind kollidiert, genau dann wenn einer der Eckpunkte von Rechteck 1 in Rechteck 2 liegt oder einer der Eckpunkte von Rechteck 2 in Rechteck 1 liegt.

Thema: Obfuscator für Sourcedateien (*.cs)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Zitat von herbivore
ich könnte mir vorstellen, dass man die .NET Compiler Platform Roslyn nutzen könnte, um selbst einen Quellcode-Obfuscator zu erstellen.

Mit Roslyn könnte man sowas sehr leicht umsetzen. Identifier umbenennen, whitespaces entfernen, unnötige Klammern hinzufügen, konstante Ausdrücke verkomplizieren, vielleicht noch schön hässliche gotos einfügen sollten sehr einfach sein

Thema: Public Key Verschlüsselung und openSSL
Am im Forum: Web-Technologien

Du versuchst Ssl nachzubauen?

Thema: Analyse einer .Net/CLR basierten Malware
Am im Forum: Rund um die Programmierung

Ich habe gerade ODA - The Online Disassembler gefunden der wohl einzelne Anweisungen ohne Dateiheader dekompilieren können soll. Die Frage ist dann ob man mit dem Assember weiterkommt

Thema: Analyse einer .Net/CLR basierten Malware
Am im Forum: Rund um die Programmierung

Ja ich bin mir da sicher. Ich hab vor Jahren mal kurz damit rumgespielt. Man kann so nativen Machinencode ausführen. Bei Aufruf des delegates wird einfach an den Anfang des Speicherbereiches gesprungen und ausgeführt. Ist es vielleicht 64bit Code?

Thema: Analyse einer .Net/CLR basierten Malware
Am im Forum: Rund um die Programmierung

Das ist kein IL, sondern Machinencode der da drin steht. Da musst du einen x86 Disassembler bemühen.

LG pdelvo

Thema: Gegebene natürliche Zahl in möglichst viele Summanden i+(i+1)+(i+2)+(i+3)+... aufteilen
Am im Forum: Rund um die Programmierung

Man kann 16 auch als Summe aus einen Summanden "darstellen" und hätte damit auch in diesem Fall eine Lösung.

Thema: FileSystemWatcher - Löschen von Dateien verhinderbar?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

Wie wäre es denn wenn du die Daten zum lesen öffnest und dadurch das Löschen verhinderst?

LG,

pdelvo

Thema: Abarbeitung von Jobs in Queue oder in List<T>? Da Jobs abgebrochen werden können sollen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

BlockingCollection wäre super, wenn nicht die Anforderung wäre Operationen die sich in der Auflistung befinden zwichenzeitlich abzubrechen, was diese leider nicht unterstützt (meines Wissens nach)

Thema: Abarbeitung von Jobs in Queue oder in List<T>? Da Jobs abgebrochen werden können sollen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo jacques,

Auch eine List ist nicht besonders gut dafür geeignet Elemente aus der mitte zu entfernen. Die List Klasse ist intern als Array implementiert, so das wenn man ein Element löscht jeweils der komplette rest umkopiert werden muss.

Ein Kandidat der das Effizienter kann ist die Linked List. Diese ist besonders effizient beim Einfügen/Löschen an beliebigen Positionen.

Nachteil: Die Linked list ist nichtthread safe. hier muss man also mit locks

An threadsicheren Auflistungen gibt es die Klassen in System.Collections.Concurrent, aber leider keine Linked List.

Lieben Gruß,

pdelvo

Thema: [gelöst] Funktion mit Type-Parameter, Type muss aber Interface implementieren
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo sth_Weird,

Du kannst das als Generic machen


RegisterDataTemplate<T>(DataTemplate template) where T : IMyInterface 
{
    Type type = typeof(T);
}

Lieben Gruß,

pdelvo

Thema: C# Bestimmte Wörter aus bestehender xml Datei auslesen
Am im Forum: Datentechnologien

Hallo krambambuli,

Warum die Fehlermeldung auftritt dürfte klar sein. Das Xml Dokument ist nicht Standardkonform, da ein Xml Dokument immer nur ein Root Element haben darf. Da das Dokument ja, wie du geschrieben hast groß ist würde ich vielleicht versuchen einen eigenen TextReader zu schreiben, der das Xml Dokument beim einlesen repariert und ein Dummy Root Element einfügt, und ansonsten die Daten einfach durchreicht.

Du hast ja irgendwie sowas

<?xml version="1.0" encoding="utf-8" ?>
<foo1>
...
</foo>
<foo2>
...
</foo2>
...
Dann kannst du das so reparieren:
<?xml version="1.0" encoding="utf-8" ?>
<root>
    <foo1>
    ...
    </foo>
    <foo2>
    ...
    </foo2>
    ...
</root>

Lieben Gruß,

pdelvo

Thema: Wie am elegantesten einen Wert innerhalb eines Zahlenbereiches vergleichen?
Am im Forum: Rund um die Programmierung

Hallo aken0,

Viel elleganter als


if(value < 19) return Untergewicht;
else if(value < 25) return normales Gewicht;
else if(value < 29) return leichtes Übergewiccht;
else return Übergewicht;

wirst du das nicht hinbekommen. Ich sehe da aber auch kein Problem drin.

Lieben Gruß,
pdelvo

Thema: Highspeed Algorithmus zur Namenserstellung aus 2 Listen
Am im Forum: Rund um die Programmierung

Hallo UltraEdit,
Bring beide arrays in eine zufällige Reihenfolge (in O(n) möglich). dann kannst du 1 zu 1 zuordnen. kannst das also in O(n) machen.

Ist es das was du meinst?

LG pdelvo

Thema: [gelöst] Beim Versenden von Mail-Attachments bleibt Datei geöffnet
Am im Forum: Netzwerktechnologien

Du musst die MailMessage danach auch disposen, damit die Datei freigegeben wird.

LG pdelvo

Thema: Trendlinie berechnen (Wurzelfunktion)
Am im Forum: Rund um die Programmierung

Was du bei der Methode der kleinsten Quadrate versuchst, ist die Summe der quadrierten Abstände deiner Schätzfunktion von den realen Werten zu minimierten. Also du musst k so wählen, das \sum_{i=0}^{n-1} (y_i - f_k(x_i))^2 möglichst klein wird. Das kannst du wahrscheinlich relativ gut Approximieren. Ansonsten ist vllt ddieser Algorithmus etwas für dich: Levenberg-Marquardt-Algorithmus

Thema: Zahlen vom Typ Long von Dezimal zu Binär umwandeln (mit nicht-programmierbarem Taschenrechner)
Am im Forum: Rund um die Programmierung

Ich persönlich finde es einfacher immer wieder durch 2 zu teilen anstatt durch 16. Klar hast du dann mehr Schritte, aber ich zumindest komme damit besser klar. Und wenn du die Zahl per Hand soweit runtergebrochen hast so das sie in den Taschenrechner passt kannst du ja damit weitermachen. Ist ja eigentlich schon nett dass ihr überhaupt einen benutzen dürft ;)

Thema: Zahlen vom Typ Long von Dezimal zu Binär umwandeln (mit nicht-programmierbarem Taschenrechner)
Am im Forum: Rund um die Programmierung

Da wirst du Wohl auf "traditionelle"Möglichkeiten Zurückgreifen müssen. mit Stift und papier ist das doch auch nicht sonderlich aufwendig.

LG pdelvo

Thema: OAuth 400 Ungültige Anforderung
Am im Forum: Web-Technologien

Viele Dienste mögen es nicht, wenn kein User Agent mitgeschickt wird. Vielleicht liegts daran?

LG

Thema: Regulärer Ausdruck zum Auslesen von Werten zwischen [ ]
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich würde so daran gehen:

Was du ja haben willst, ist das du alles zwichen [] finden willst. Also brauchst du auf jedenfall etwas der Form \[xxx\]. Jetzt willst du den Inhalt in den Klammern schlussendlich lesen, also packst du da eine entsprechende Gruppe dafür rein \[(?<match>xxx)\]. Jetzt wär es sinnvoll eine möglichst Präzise Beschreibung des Inhaltes zu bekommen. Welche Zeichen dürfen in der Klammer sein? Das sind alle, außer [ und ]. Also hast du für den INhalt die Beschreibung [^\[\]], und das darf sich natürlich beliebig oft wiederholen, so fehlt noch ein * dahinter. dadurch erhällst du den Ausdruck \[(?<match>[^\[\]]*)\]. Damit findest du jetzt schon eine Klammer. Jetzt musst du probieren, durch wiederholung alle Klammern zu finden. Zwichen den Klammern darf ja alles stehen, außer [ und ]. Also Matcht \[(?<match>[^\[\]]*)\][^\[\]]* einen Klammerausdruck, und den Bereich bis zum nächsten. Und das ist genau was du willst. denn ab da kannst du den Asdruck wieder von vorne anwenden. Also fehlen nur noch einmal ein * dahinter und der Ausdruck sollte passen: (\[(?<match>[^\[\]]*)\][^\[\]]*)*

Es sieht wirklich komplizierter aus als es ist, vorallem durch die vielen Klammern. Aber so gehe ich vor wenn ich einen solchen Ausdruck aufstelle.

LG pdelvo

Thema: TFS Build schägt fehl -> Lokal alles super
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Sind die Buildabhängigkeiten nicht richtig gesetzt?

LG pdelvo

Thema: Kopiergeschwindigkeit berechnen...
Am im Forum: Rund um die Programmierung

Du könntest auch das Kopieren der Dateien, und das anzeigen des Fortschrittdialoges mit Restdaueranzeige komplett Windows überlasen mittels SHFileOperation. Das Windows API Code Pack hat das soweit ich weiss alles vorgefertigt drin.

LG

Thema: NullReferenceException beim Zugriff auf uninitialisiere Property
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Und unterstützt die Collection parallelisiertesd einfügen?

Thema: Prüfen, ob das Programm über die Konsole (cmd.exe) gestartet wurde
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Du könntest versuchen mittels des Parent Prozesses zu entscheiden. Wenn in der Aufrufskette cmd oder powershell auftaucht die Konsolenversion nutzen, und sonst auf Forms zurückweichen