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 T-Man
Thema: Alten Algorithmus für DeflateStream nutzen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das Produkt haben viele Kunden auf eigenen Servern. Das Kind ist schon in den Brunnen gefallen. :-(
Kann denen nicht sagen, sie sollen Windows- oder Frameworkupdates zurücknehmen. Das Problem ist gestern aufgefallen. Wie lange es schon da ist, also was genau der Auslöser ist, kann ich nicht nachvollziehen. Ich vermute, dass es Framework 4.7.2 ist, muss aber nicht sein. Ich weiß nur, dass jetzt das compress andere Ergebnisse liefert, als vor einiger Zeit. Könnte den Zeitpunkt zwar theoretisch eingrenzen, aber das ist leider auch nicht trivial. Da arbeite ich lieber weiter an der richtigen Lösung.

Hatte halt die Hoffnung, dass es da einen einfachen Schalter gibt.

Thema: Alten Algorithmus für DeflateStream nutzen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das ich migrieren muss ist mir klar.
Werde ich tun.
Ich hatte nur gehofft, einen sehr schnelle fix zu finden, denn die Migration wird ein wenig dauern und bis dahin funktioniert die Duplikatserkennung nicht mehr richtig. Das Produkt ist komplex und wir releasen nicht alle paar Tage. Einen Hotfix könnte ich schnell nachschieben, die Migration nicht.

Thema: Alten Algorithmus für DeflateStream nutzen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Sowohl true als auch false liefern das selbe Ergebnis und das ist ein anderes, als vor einiger Zeit.
Kann leider nicht genau sagen, seit wann.

Thema: Alten Algorithmus für DeflateStream nutzen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wie schon gesagt, hilft das nicht.
Der Schalter ist scheinbar für's dekomprimieren, nicht für's komprimieren.

Thema: Alten Algorithmus für DeflateStream nutzen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Der Algorithmus, den der DeflateStream verwendet hat sich geändert. Vermutlich mit Framework 4.7.2, genau weiß ich es nicht. Meine Anwendung ist für 4.6.1 gebaut, trotzdem hat sich das Verhalten geändert.
Mein Problem: Ich speichere Daten komprimiert und nicht doppelt. Die Id für einen Stream habe ich aus dem Hash des komprimierten Streams gebildet. Damit kann ich nach Duplikaten suchen. Solange der Algorithmus sich nicht geändert hat, hat das funktioniert.
Jetzt nicht mehr. Wird jetzt ein Dokument komprimiert, dass ich früher schonmal hatte, sieht der komprimierte Stream anders aus und hat einen anderen hash. Ich finde also das Duplikat nicht mehr.

Die saubere Lösung für mich wäre, den Hash des Originals zu verwenden. Nun habe ich aber schon Millionen alte Datensätze, für die ein Update nicht mal eben schnell gemacht ist.

Daher würde ich gerne als Zwischenlösung auf den alten Algorithmus zurückgreifen.

Weiß jemand, ob und wie das geht?

Ich habe folgenden Schalter gefunden, der leider nicht hilft:

<AppContextSwitchOverrides value="Switch.System.IO.Compression.DoNotUseNativeZipLibraryForDecompression=false" />

DoNotUseNativeZipLibraryForCompression gibt's leider nicht.

Thema: Nachladbare Liste mit AJAX
Am im Forum: Web-Technologien

Danke für den Tip. Ich sollte mich also mit MVC befassen!? Kennst Du da ein gutes Tutorial? Ist das wesentlich anders als asp.net? Kann man das kombinieren?
Und ich hatte gehofft es ginge mit asp.net und ajax.

Gruß
T-Man

Thema: [erledigt] MYSQL Such-Statements mit Wildmasks in Zellen
Am im Forum: Datentechnologien

Kannst Du Dir mit Java eine Stored Procedure schreiben, die Du für den "Vergleich" verwenden kannst? (Siehe MySQL/JVM)

Gruß
Tony

Thema: Nachladbare Liste mit AJAX
Am im Forum: Web-Technologien

Ich kann mir einfach nicht vorstellen, dass es kein Ajax-Control gibt, mit dem man genau das machen kann. Das ist doch keine exotische sondern eher eine alltägliche Anforderung, die ich da habe. Da kann es doch nicht wirklich sein, dass ich mir da was selber schustern muss. Da kann ich ja gleich noch eben das Rad neu erfinden...

Thema: Online ein Wort mit 9 Buchstaben zufällig holen
Am im Forum: Rund um die Programmierung

Vieleicht hilft ja folgender link:

http://wortschatz.uni-leipzig.de/axis/servlet/ServiceOverviewServlet

Es ist scheibar frei und es gibt eine Kreuzworträtsel-Meethode, die Du verwenden könntest.

Gruß
T-Man

Thema: Nachladbare Liste mit AJAX
Am im Forum: Web-Technologien

Und von welchem Control redet Ihr da?

Vielleicht hätte ich noch erwähnen sollen, das ich mit asp.net arbeite?

Ich habe ein UserControl in dem ich im PageLoad 20 Datensätze Lade und daraus Controls generiere, die ich in das UserControl einbette.
Nun möchte ich wie beschrieben per AJAX weitere nachladen können und weiß leider nicht was für ein Control ich dafür verwenden soll...

Gruß
T-Man

Thema: Nachladbare Liste mit AJAX
Am im Forum: Web-Technologien

Hallo Diräkt,

ich möchte nicht die linke Seite komplett mit den 20 weiteren Elementen neu übertragen. Ich möchte per Ajax 20 Elemente nachladen und einfügen.

Gruß
T-Man

Thema: Nachladbare Liste mit AJAX
Am im Forum: Web-Technologien

Moin zusammen!

Ich habe eine wie ich denke einfache Aufgabe und sehe wahrscheinlich den Wald vor lauter Bäumen nicht.

Meine Webanwendung ist mit einem Explorer zu vergleichen. Es gibt zwei Spalten. Links werden Ordner und Dateien angezeigt, rechts Details.
Klicke ich auf eine Datei, wird die rechte seite aktualisiert (die Details zur Datei werden rechts angezeigt).
Beim Klick auf einen Ordner wird die linke Seite aktualisiert. Unterordner und Dateien des gewählten Ordners werden links angezeigt.
Hierfür benutze ich UpdatePanels um nicht immer alles neu zu laden.
Nun zeige ich links allerdings nicht alle Einträge an, sondern nur die ersten 20. Wenn es mehr gibt, kommt darunter ein Link "weitere Elemente nachladen".
Beim Klick auf diesen Link sollen die nächsten 20 Einträge in der linken Liste hinzugefügt werden. Ich habe mir das Ajax Control Toolkit angesehen, finde aber kein Control, das dafür gedacht zu sein scheint. Mit DynamicPopulate ersetzt man Inhalte, aber lädt nicht welche dazu, oder verstehe ich da was falsch? Kann mir jemand sagen, mit welchem Control das geht? Gibt es irgendwo ein gutes Beispiel?
Habe jetzt schon 'ne weile gegoogelt, aber ich scheine wohl nicht die richtigen Begriffe zu verwenden, jedenfalls finde ich nichts gescheites...
Wenn die letzten Elemente nachgeladen wurden, soll optimalerweise der Link verschwinden.
Blättern würde mit einem UpdatePanel gehen, aber das soll es nicht sein. Es sollen bei Bedarf weitere Elemente nachgeladen werden, ohne das die bisherigen verschwinden.

Vielen Dank und Gruß
T-Man

Thema: Diskussion zu: Gleichheit von Gleitkommazahlen (inkl. etwas Theorie)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Guter Einwand. Das zeigt nochmal, dass man genau wissen muss, was man eigentlich möchte.
gfoidls Metode liefert übrigens auch nur dann true zurück, wenn man das eps_a entsprechend groß wählt.

Thema: Diskussion zu: Gleichheit von Gleitkommazahlen (inkl. etwas Theorie)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Eine wichtige Frage, die man sich stellen muss ist, ob man wirklich eine sehr kleine negative und eine sehr kleine positive Zahl als gleich sehen möchte. Das hängt stark vom Kontext ab.
Wenn man dies nicht möchte, sollte man für absEps bzw. eps_a double.Epsilon setzen wenn man wenigstens -0 und 0 als gleich ansehen möchte.
Soll sogar -0 und 0 als verschieden angesehen werden, setzt man 0 für absEps ein.

Thema: Diskussion zu: Gleichheit von Gleitkommazahlen (inkl. etwas Theorie)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

gfoidl prüft immer zuerst den absoluten Fehler.

Das ist mMn nicht richtig. Diese Prüfung ist nur bei Zahlen verschieden Vorzeichens sinnvoll. gfoidl hat sie ja genau zu dem Zweck eingebaut, dass zwei Zahlen die näherungsweise 0 sind aber sich im Vorzeichen unterscheiden als gleich angesehen werden können.

Wenn man mit gfoidls Methode zwei Zahlen gleichen Vorzeichens mit einem Absolutbetrag kleiner eps_a vergleicht werden sie immer als gleich angesehen. Auch wenn der relative Unterschied sehr groß ist.

Wenn man das verhindern möchte, muss man die Vorzeichen prüfen. Und wenn man das schonmal tut, muss man nicht mehr Abs verwenden.

Die Methode muss auch nicht unbedingt 'übersichtlich' sein. Wichtiger ist doch, dass sie korrekt und möglichst performant ist.

Gruß
T-Man

Thema: Diskussion zu: Gleichheit von Gleitkommazahlen (inkl. etwas Theorie)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Zitat von ujr
Hallo,
Zitat von T-Man
Hier mein Vorschlag:

Bei Dir ist, z. B., -10 == 10 - das kann so nicht stimmen...

Autsch. Es muss natürlich

return Math.Abs(value - other) < absEps;

und nicht

return Math.Abs(value + other) < absEps;

sein.

Danke! Werde es korrigieren.

Thema: TreeView - alten Zustand wieder herstellen
Am im Forum: GUI: WPF und XAML

Du könntest z.B. ermitteln welche Konoten entfernt, welche hinzugefügt und welche geändert werden müssen und dann sie entsprechend entfernen, hinzufügen und ändern. Dann bleibt der Baum offen.

Gruß
T-Man

Thema: Diskussion zu: Gleichheit von Gleitkommazahlen (inkl. etwas Theorie)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Bei der zweiten Variante (Vergleich der signifikanten Stellen) vermute ich ein Problem:
Wenn wir mit Zahlen mit extremen Exponenten arbeiten, können wir sie nach der Multiplikation noch immer nicht in long wandeln. Müssen wir nicht zunächst den Exponenten wegbekommen und erst danach multiplizieren?

T-Man

Thema: Diskussion zu: Gleichheit von Gleitkommazahlen (inkl. etwas Theorie)
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Sollte nicht die Prüfung des absoluten Fehlers nur dann erfolgen, wenn es sich um Zahlen verschiedenen Vorzeichens handelt?

Sonst werden besonders kleine Zahlen Grundsätzlich als ähnlich angesehen, selbst wenn sie relativ gesehen sehr unterschiedlich sind.

Hier mein Vorschlag:


        public static readonly double Epsilon = Math.Pow(2d, -52d);

        public static bool IsEqualTo(this double value, double other) { return IsEqualTo(value, other, Epsilon); }

        public static bool IsEqualTo(this double value, double other, double absEps)
        {
            var specialCase = CheckSpecialCases(value, other);
            if (specialCase.HasValue) return specialCase.Value;
            if (value ≥ .0)
            {
                if (other ≥ .0)
                    return value > other
                        ? (value - other) / value < Epsilon
                        : (other - value) / other < Epsilon;
            }
            else if (other < .0)
                return value > other
                    ? (other - value) / other < Epsilon
                    : (value - other) / value < Epsilon;
            return Math.Abs(value - other) < absEps;
        }

        private static bool? CheckSpecialCases(double value, double other)
        {
            if (value == other) return true;
            if (double.IsNaN(value)) return double.IsNaN(other);
            if (double.IsNegativeInfinity(value)) return double.IsNegativeInfinity(other);
            if (double.IsPositiveInfinity(value)) return double.IsPositiveInfinity(other);
            if (double.IsNaN(other) || double.IsInfinity(other)) return false;
            return null;
        }

Gruß
T-Man

Thema: Ähnlichkeit von double werten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Wenn Du mit Deiner Methode zwei sehr kleine Zahlen vergleichst sind die dann immer gleich und sehr große Zahlen sind es nie...
Das epsilon muss schon relativ zu den Zahlen sein.
Man muss es also berechnen. Math.Abs muss man auch verwenden...
Von der Performance her dürfte dass nicht gerade besser sein, oder?

Thema: Ähnlichkeit von double werten
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Moin zusammen,

ich habe mir eine Extension-Method geschrieben, die vergleichen soll, ob zwei double Werte näherungsweise (bis auf die letzten beiden Stellen) gleich sind.

Nun hätte ich gerne Eure Meinung, ob die so funktioniert, ob es wohl Fälle geben kann, in denen sie nicht funktioniert...

Hier die Methode:


        public static bool ApproximatelyEquals(this double value, double other)
        {
            if (value == other) return true;
            if (value ≥ .0)
                if (other > value) return value * 1.0000000000001 ≥ other;
                else if (other ≥ .0) return other * 1.0000000000001 ≥ value;
                else return value < 0.0000000000001 && other > -0.0000000000001;
            if (other < .0)
                if (other > value) return other * 1.0000000000001 ≤ value;
                else return value * 1.0000000000001 ≤ other;
            return other < 0.0000000000001 && value > -0.0000000000001;
        }

Gruß
T-Man

Thema: [erledigt] ListView soll LargeIcon nicht stretchen
Am im Forum: GUI: Windows-Forms

Danke!

Thema: [erledigt] ListView soll LargeIcon nicht stretchen
Am im Forum: GUI: Windows-Forms

Moin zusammen.

Ich benutze eine ListView mit LargeIcons. Die Anzuzeigenden Bilder sind nicht quadratisch. Die längere Seite ist allerdings bei allen gleich (126).
Beispiel: (126 x 100, 126 x 110, 89 x 126, ...)
Die Bilder werden leider alle auf 126x126 gestretched. Das möchte ich verhindern. Kann mir da einer helfen?
Die LargeImageList bekommt eine ImageSize von 126x126. Daran liegt es dann wohl auch. Aber was kann ich da tun? Muss ich mir die Bilder in ein durchsichtiges Bild der Größe 126x126 zentriert reinzeichnen, und dieses dann verwenden, oder gibt es eine einfachere Lösung?

T-Man

Thema: [erledigt] WCF - Aufruf e. ext. Prozesses in e. Service Methode sorgt für fault beim nächsten Aufruf
Am im Forum: Netzwerktechnologien

Genau so werde ich es machen!

Thema: [erledigt] WCF - Aufruf e. ext. Prozesses in e. Service Methode sorgt für fault beim nächsten Aufruf
Am im Forum: Netzwerktechnologien

Ich habe jetzt das Problem. Die fremde exe erzeugt neben sich eine Datei.
Wenn ich das mit einer eigenen nachbilde, bekomme ich den selben Fehler.
Scheinbar wird der Service vom IIS neu gestartet sobald in einem Unterverzeichnis neue Dateien entstehen. Kann man das dem IIS abgewöhnen?

Thema: [erledigt] WCF - Aufruf e. ext. Prozesses in e. Service Methode sorgt für fault beim nächsten Aufruf
Am im Forum: Netzwerktechnologien

Habe es mit

        static void Main(string[] args)
        {
            File.WriteAllText(args[1], File.ReadAllText(args[0]));
        }
nachgebaut und bekomme den Fehler nicht.

Die Anzahl der Prozesse ist vor und nach dem Aufruf der original exe übrigens gleich. Die Aufgerufene exe erzeugt also wohl keine neuen Prozesse, die hinterher noch laufen und zu Problemen führen könnten...

Der Unterschied zwischen meiner und der original exe ist u.a., dass meines ein .net Programm ist, während die andere in c++ programmiert wurde.

Noch Ideen?

Thema: [erledigt] WCF - Aufruf e. ext. Prozesses in e. Service Methode sorgt für fault beim nächsten Aufruf
Am im Forum: Netzwerktechnologien

Leider ist die exe 'ne externe. Ich kenne den Aufbau nicht. Sie extrahiert den Volltext aus einer Datei und schreibt ihn in eine andere Datei. Ob sie dafür Hintergrundprozesse startet etc. weiß ich nicht, das müsste ich den Hersteller fragen...

Ich denke, ich muss das ganze asynchron laufen lassen.

Die Exception fange ich übrigens noch im Service wieder ab, daher keine FaultException.

Danke für Deine Antworten

Thema: [erledigt] WCF - Aufruf e. ext. Prozesses in e. Service Methode sorgt für fault beim nächsten Aufruf
Am im Forum: Netzwerktechnologien

Ich habe nun in die exe, die nichts tut ein Thread.Sleep(2000) eingebaut. Das dauert eindeutig länger als das Ausführen der anderen exe und ich bekomme den Fehler nicht. Es liegt also nicht an der Dauer. Es muss mit der exe zu tun haben. Die muss noch irgendwelche Nachwirkungen haben, aber wie kann das sein?

Thema: [erledigt] WCF Service mit wsHttpBinding auf Windows Server 2008
Am im Forum: Netzwerktechnologien

Ich habe übrigens mittlerweile die Lösung gefunden.

Ich hatte die Leserechte auf den privaten Schlüssel des Zertifikates für IIS_IUSRS gesetzt. Das war auf dem Win7 Rechner so ok. Auf dem 2008 Server musste ich die Rechte für den "NetworkService" setzen. Logisch, da ja der AppPool mit dieser Identität läuft...

Thema: [erledigt] WCF - Aufruf e. ext. Prozesses in e. Service Methode sorgt für fault beim nächsten Aufruf
Am im Forum: Netzwerktechnologien

Danke, Ich denke, Du hattest den richtigen Riecher. Wenn ich eine exe aufrufe, die gar nichts tut, klappt es.

Aber was ist ein internes Timeout (im Gegensatz zum Timeout das sofort eine Exception im Client erzeugt)? An welcher Schraube muss ich da drehen?
Der Prozess braucht übrigens ca 1 sec und ich sehe in den app.- und web.config Dateien keine Timeouts, die kleiner als 10sec sind.

Und wie kann es einen Timeout geben, wenn doch die Methode erfogreich beendet wird?