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 inflames2k
Thema: Abstrakte Klasse
Am im Forum: Grundlagen von C#

Hallo ClaraSoft,

der Hinweis ist zwar gut. Aber: An dieser Stelle ist es nicht erforderlich den Basistyp zu verwenden. Und an Stellen, wo ohnehin der Konkrete Typ bekannt ist kann und sollte der verwendet werden.

Erst wenn es komplexer wird und die konkreten Typen nicht mehr bekannt sind, sollte und muss man auf die Basisklasse zurück greifen. Hier absolut nicht erforderlich.

Thema: Interfaces und abgeleitete Klassen Beispiel
Am im Forum: Grundlagen von C#

Hallo,

du hast dich zwar im Subforum verirrt aber ich versuche dennoch mal zu helfen.
Edit gfoidl: habs verschoben.

Und zwar mit einem Link der dir weiterhelfen sollte: Interface - C#-Referenz

Und ansonsten ist die Aufgabe relativ einfach zu Lösen. Du generierst eine Liste mit Objekten vom Typ ILebewesen und fügst dieser deine einzelnen Lebewesen hinzu.


List<ILebewesen> lebewesen = new List<ILebewesen>();

Mensch mensch = new Mensch();
// ...
lebewesen.Add(mensch);

Im Anschluss brauchst du dann nur noch mit Hilfe einer foreach-Schleife die einzelnen Lebewesen durchgehen und ausgeben.

EDIT: Vergiss die Liste. Du sollst ja ein Array von ILebewesen verwenden. - Aber ist jetzt auch nicht sonderlich schwerer.

Thema: Zeilenangabe in txt Datei suchen.
Am im Forum: Rund um die Programmierung

Verstehe ich das richtig, dass "nach Worten suchen" und "Zeile wählen" zwei getrennte Funktionalitäten sind?

Das wäre doch recht einfach machbar in dem du via Index auf deine Liste "FileLines" zugreifst. Oder verstehe ich an der Anforderung irgendwas falsch?

Thema: Sammelthema Wünsche und Bugreports myCSharp
Am im Forum: Wünsche und Kritik

Hallo Wilfried,

der Nutzer hat doch jederzeit selbst die Möglichkeit einen Link in einem neuen Tab zu öffnen. Dazu einfach die mittlere Maustaste / das Mausrad reindrücken.

Thema: TCP Client / Server verstehen sich nicht
Am im Forum: Netzwerktechnologien

List<T>.ToArray() ?

Thema: Array-Elemente in Zeichenfolge gliedern
Am im Forum: Grundlagen von C#

Sind die 11 Zeichen pro Zeile eigentlich ernst gemeint? Dann wird doch die hälfte verschluckt. Ich meine klar, wenn nur die Kommas ausgegeben werden passt es. - Aber die Zahlen sind ja schon 22 Zeichen auf 7 Zeilen.

Sind hier nicht eher 22 Zeichen pro Zeile gemeint und nur die Kommas sollen weggelassen werden?

Thema: Mehrere Bildschirme ermitteln und getrennt! anzeigen und die echte Auflösung ermitteln
Am im Forum: Rund um die Programmierung

Ich würde schon mal vorschlagen, erst das Bytearray einzulesen und dann die Seriennummer auszugeben.
Spart dir nämlich eine ganze Schleife für die Ausgabe.

// EDIT: Ach nein. Du hast ja gar keine zusätzliche Schleifen.
// Dennoch weiterhin. Hole dir erst das vollständige Array und schreibe dann den Text in die Textbox.

Thema: In Server Client-IP loggen und filtern
Am im Forum: Rund um die Programmierung

LogLevel unterstützen denke ich alle vernünftigen Lösungen (z.B. Log4Net). Das Filtern bezüglich der IP-Adressen wirst du jedoch selbst implementieren müssen.

Thema: ComboBox-Parameter
Am im Forum: GUI: WPF und XAML

Fummel das am besten so nicht im Code Behind zusammen. Erstelle dir eine Klasse, welche dein Objekt enthält z.B. etwas wie:


public class DateSelectionEntry
{
     private DateTime _date;
     public DateTime Date
     {
          get { return _date; }
          set { _date = value; } 
     }

     public string DisplayText
     {
         get { return this._date.ToString("d M"); }
     }
}

Das sauber per DataBinding angebunden (natürlich die Klasse auch ensprechend angepasst) ist deutlich besser als zu versuchen da über den CodeBehind was zusammen zu fummeln.

Thema: OpenFileDialog - fehlende(s) Laufwerk(e)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Wie ich schrieb, liegt es am Wechsel des Nutzerkontextes.

Nutzer XYZ verbindet das Netzlaufwerk mit seinen Berechtigungen. Wenn jetzt Nutzer ABC eine Anwendung unter seinem Namen startet, ist das doch nix anderes als hätte er sich mit seinem eigenen Konto angemeldet und die Anwendung gestartet. Warum sollte er hier also die Netzlaufwerke von XYZ sehen können? Schon in Bezug auf Computersicherheit wäre das etwas unglücklich.

Wobei ich bis heute auch noch nicht ganz durchgeblickt habe, warum das Berechtigungssystem mit Windows 7 so stark abgeändert wurde, dass man um eine Anwendung wirklich als Admin zu starten (der man ja eigentlich schon ist) einen Kontextwechsel ausführen muss.
Ich meine klar. der Grund ist mir durchaus geläufig. Das erhöht einfach erheblich die Sicherheit des Systems. Ist aber im Umkehrschluss halt häufig auch so semi cool.

Thema: Programm beenden über das Nertzwerk
Am im Forum: Rund um die Programmierung

Mal davon ab, dass ich es für eine schlechte Idee halte Anwendungen automatisch zu beenden, an denen gerade jemand arbeitet eventuell folgender Ansatz:

- In der Datenbank in einer meinetwegen "Config"-Tabelle ein Flag einführen: "Shutdown".

Die Anwendung muss dann zyklisch die Tabelle anfragen und auf das Flag prüfen. - Ist es "1" wird ein Hinweis in der Anwendung angezeigt, mit der Möglichkeit die Anwendung zu beenden. Bestätigt der Nutzer das nicht, läuft die Anwendung einfach weiter.

Haben alle Nutzer bestätigt und die Anwendung beendet, kannst du dein Update ausführen und das Flag wieder auf 0 setzen.

Schön ist die Lösung nicht, aber es ist neben der Lösung von BerndFfm, das einzige was mir einfällt was halbwegs i.O. erscheint.

Thema: OpenFileDialog - fehlende(s) Laufwerk(e)
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo,

wenn es Netzlaufwerke sind, die mit Zugangsdaten des Nutzers verbunden werden, liegt es tatsächlich daran, dass die Anwendung mit Adminrechten ausgeführt wird.
Das liegt einfach daran, dass damit in einem anderen Nutzerkontext gewechselt wird.

Thema: TCP Client / Server verstehen sich nicht
Am im Forum: Netzwerktechnologien

Nein du musst gar nichts in einen String umwandeln. Du liest die Bytes und anhand der Werte (Rückumwandlung in UInt16) weißt du, wie die Antwort aussieht.

Was hast denn du die ganze Zeit mit deinen Zeichen / Strings?

Thema: TCP Client / Server verstehen sich nicht
Am im Forum: Netzwerktechnologien

Zitat von Tossi65
@inflames2k
Da liegst du leider nicht richtig. E§s muss die gesamte Sequenz übermittelt werden "01 00 00 00". Das sind dann mit Blanks 11 Zeichen.

Und wo genau steht in der Schnittstellenbeschreibung dass du Zeichen übertragen sollst?

Schon die Beschreibung gibt ja her, dass du da was nicht richtig machst:
  • 2 UINT16 01hex Nachrichten-ID
  • 2 UINT16 00hex Nutzdatenlänge

Rechnet man jetzt mal zusammen, wie viele Bytes das ergibt sind wir bei 4 und nicht bei 11.

Thema: TCP Client / Server verstehen sich nicht
Am im Forum: Netzwerktechnologien

Zitat von Tossi65
der Client daraus "4849324848324848324848" Byte

Das wäre ein sehr mehrkwürdiger Byte-Wert. Sicher dass du dort nicht irgendwelche ASCII Zeichen liest?

Versuchen wir mal deine Dezimalen Werte die du als "Byte" annimmst in ASCII umzuwandeln.

Dec. 48 = Hex. 30
Dec. 49 = Hex. 31
Dec. 32 = Hex. 20

Insofern scheint ja zumindest das anzukommen, was du auch versendest. Allerdings ist das was du versendest nicht korrekt. Übrigens verschickst du 11 Bytes und nicht wie Eingangs in der Beschreibung angeführt, 2 die du versenden sollst.

Fragst du nämlich mich sollte dein Byte Array das du versendest folgende Werte haben:
1
0


Thema: TCP Client / Server verstehen sich nicht
Am im Forum: Netzwerktechnologien

Bei TCP/IP Kommunikation werden immer Bytes versendet.

Im allgemeinen solltest du mehr erklären. Wir kennen weder die Spezifikation der Kamera, noch weiß ich persönlich was "YAT" ist.

Thema: Fritz!Box - IP-Client - DynDNS
Am im Forum: Smalltalk

Nur um noch über das Ergebnis zu informieren:

Mit dem Bridgemode und Konfiguration der Fritz!Box auf Verwendung eines vorhandenen Kabelmodems funktioniert alles genau so, wie ich es brauche.
Eine gute Anleitung bietet dafür AVM. FRITZ!Box für Betrieb am Kabelanschluss einrichten.

Funktioniert soweit ich das sehe auch mit allen aktuellen Geräten.

Thema: Fritz!Box - IP-Client - DynDNS
Am im Forum: Smalltalk

Hallo Stefan.Haegele,

natürlich ist angedacht in Zukunft auf ein Kabelrouter von AVM zu wechseln. - Allerdings mag ich nicht gerne mit Mietgeräten hantieren, weswegen ich das erst einmal nach hinten geschoben habe. - Finanziell ist jetzt ein neuer Router einfach nicht drin.

Aber nach langem suchen habe ich wohl einen Weg gefunden der viel versprechend ist. Kann ich aber erst am Mittwoch ausprobieren, weil es so lang dauert bis V/KD den Homespot abgeschaltet hat.

Laut einigen Sachen die ich im Netz dazu gefunden habe, muss die Kabel-Box von V/KD nur im Bridgemodus betrieben werden und die Internetverbindung anschließend über den Assistenten neu eingerichtet werden (Betrieb an Kabel-Modem).

Thema: Fritz!Box - IP-Client - DynDNS
Am im Forum: Smalltalk

Hallo,

in meiner neuen Wohnung habe ich auf Kabel-Internet von Kabel Deutschland gesetzt. - Der gelieferte Standard Router soll hierbei jedoch "nur" als Modem dienen. - Daher habe ich meine Fritz!Box als IP-Client angeschlossen.

In der Fritz!Box ist seit langem der VPN Zugriff und DynDNS aktiv. Natürlich bekommt die Fritz!Box die Neueinwahl nun nicht mit. Welche Möglichkeiten, außer einen zusätzlichen Progrämmchen auf weiterer Hardware stehen mir denn jetzt zur Verfügung den DynDNS Anbieter über die geänderte IP-Adresse zu informieren?

DynDNS auf der Kabel Deutschland Hardware zu aktivieren möchte ich eigentlich vermeiden.

Thema: Visual Studio 2019 Community
Am im Forum: GUI: Windows-Forms

Hallo Chessman31,

Zitat von Th69
Du meinst im Windows Forms Designer? Kannst du mal einen Screenshot davon zeigen?

Mach mal wie Th69 schrieb einen Screenshot und poste hänge diesen an.

Thema: Visual Studio 2019 Community
Am im Forum: GUI: Windows-Forms

Kannst du denn direkt über die Items-Collection Menüeinträge hinzufügen?

Thema: xml deserialisieren
Am im Forum: Datentechnologien

Hallo,

Zitat von sindibad
ich kann xml ändern.

was für Informationen beschreiben denn die "Settings"? Das sind doch wenn ich dich richtig verstehe irgendwelche Parameter für eine andere Schnittstelle (du schriebst: "und möchte sie konvertieren in Bytes und über den Serialport senden").

Dann haben die einzelnen Parameter ja sicherlich sprechende Namen.

Ansonsten, da du ja schreibst du kannst die XML frei ändern. Was spricht also dagegen dein Configuration-Objekt direkt zu serialisieren / deserialisieren? Das Xml sehe hier ja auch nur ein klein wenig anders aus:

<?xml version="1.0"?>
<Configuration xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Settings1>10</Settings1>
  <Settings2>0</Settings2>
</Configuration>

Und wenns dann doch "Settings" heißen soll im Root:


[XmlRoot("Settings")]
public class Configuration


Thema: xml deserialisieren
Am im Forum: Datentechnologien

Ist das Xml so vorgegeben oder kannst du das frei ändern?

Ansonsten.. wieso arbeitest du mit Reflection? Ich würde die Parameter einfach in einer Schleife durchgehen und anhand des Parameters den entsprechenden Wert setzen.


Configuration configuration = new Configuration();

foreach(Parameter parameter in settings.Parameters)
{
     switch(parameter.Name)
     {
          case "Settings1":
              configuration.Settings1 = Convert.ToUInt32(parameter.Value);
              break;
         ....
     }
}

Das wäre am Ende die sicherste Variante auf deinem Weg.

Ansonsten wenn man bei deinem Ansatz bleibt:


object oValue = settings.Parameters.Find(item => item.Name == prop.Name).Value;
prop.SetValue(configuration , Convert.ChangeType(oValue, prop.PropertyType));

Thema: Punkterotation
Am im Forum: Grafik und Sound

Vielen dank. Das wars.

Hab ich absolut nicht gesehen.

Thema: Ereignisse in C#
Am im Forum: Grundlagen von C#

Zitat von Speedys_Work
was würdet ihr empfehlen bei einer kleinen App, soll ich den Austausch von Informationen zwischen Klassen per Eventhandler oder Nachrichten schicken umsetzen?

Nachrichten in welcher Form? Zumal das stark abhängig vom Aufbau der Anwendung ist. Und wenns eine kleine Anwendung ist, sollte i.d.R. die einfache Werterückgabe von aufgerufenen Methoden ausreichen.

Thema: Punkterotation
Am im Forum: Grafik und Sound

Hallo,

ich bin gerade dabei für Windows CE eine Rotationsfunktion für ein Array von Punkten zu schreiben, die anschließend gezeichnet werden sollen. Das funktioniert soweit erst einmal auch. Allerdings scheine ich irgendwo einen Knoten zu haben, da es augenscheinlich zusätzlich um die Z-Achse rotiert.

Meine Funktion ur Rotation sieht wie folgt aus:


private Point[] Rotate(Point[] originalPoints, int angle, Point middlePoint)
{
    Point[] rotatedArrowPoints = new Point[originalPoints.Length];

    for (int i = 0; i < originalPoints.Length; i++)
    {
        // Punkte um den Mittelpunkt verschieben (Standard 0,0 = oben links)
        double x = originalPoints[i].X - middlePoint.X;
        double y = -originalPoints[i].Y + middlePoint.Y;

        // Berechnung neue Koordinaten 
        x = (x * Math.Cos(angle * Math.PI / 180)) - (y * Math.Sin(angle * Math.PI / 180));
        y = (x * Math.Sin(angle * Math.PI / 180)) + (y * Math.Cos(angle * Math.PI / 180));

        // Verschiebung um Mittelpunkt rückgängig machen
        x = x + middlePoint.X;
        y = (y - middlePoint.Y) * -1;

        rotatedArrowPoints[i] = new Point((Int32)x, (Int32)y);
    }

    return rotatedArrowPoints;
}

Auch ohne die Multiplikation mit Math.PI / 180 sieht das Ergebnis ähnlich verkorkst aus. - Lediglich bei 0 und 180 grad sieht das Bild korrekt aus. Hat jemand eine Idee, an welcher Stelle ich den Rechenfehler mache?

Das Bild im Anhang zeigt die verwendete Beispielzeichnung bei 0°, 30° und 90 °.


Thema: WCF Authentication Header
Am im Forum: Web-Technologien

Haben es jetzt so gelöst, dass das generierte Soap in etwa dem entspricht, was Asmx-Webservices auch generieren, durch Verwendung von MessageContracts.
Ist zwar ein wenig Klassen-OVerhead im Dienst, dafür bleibt die Client-Anbindung einfach.

Thema: WCF Authentication Header
Am im Forum: Web-Technologien

Hallo,

für normale Webservices ("Service.asmx") nutzen wir einen Authentifizierungsmechanismus mit einem "ServiceAuthenticationHeader". Für ein aktuelles Projekt brauchen wir dies auch für WCF Services.

Das wichtige ist, dass der SoapHeader genauso aussehen soll wie beim normalen Webservice.


<Header>
    <ServiceAuthHeader>
         <UserID>...</UserID>
         <Password>...</Password> 
    </ServiceAuthHeader>
</Header>
<Body>
</Body>

Das funktioniert soweit, wenn ich im Client den ServiceAuthHeader noch mal bekannt mache und als MessageContract bekannt gebe. Dann kann ich den Header mit Hilfe von folgendem hinzufügen:


using (ServiceClient client = new ServiceClient())
{
    using (OperationContext ctx = new OperationContext(client.InnerChannel))
    {
        ServiceAuthHeader header = this.GetAuthHeader();
        System.ServiceModel.Channels.MessageHeader authHeader = System.ServiceModel.Channels.MessageHeader.CreateHeader("ServiceAuthHeader", string.Empty, header);
        System.ServiceModel.OperationContext.Current.OutgoingMessageHeaders.Add(authHeader);

        // execute service call
        // ...
    }
}

Das unschöne daran ist, dass der Aufrufer die ServiceAuthHeader-Klasse quasi selbst noch einmal entwickeln muss mit den entsprechenden Eigenschaften. Gibt es hier einen Weg, wo svcutil den Header schon im Client-Proxy mit generiert?

Bei dem ganzen handelt es sich um eine Schnittstelle für einen externen Dienstleister. - Daher wollen wir es diesem nun auch nicht unnötig schwer machen den AuthHeader abzubilden.

Bei einfachen Webservices reicht es in der Service.asmx.cs den ServiceAuthHeader als Property hinzuzufügen.

Thema: 2 Xml Dateien vergleichen und Unterschiede speichern
Am im Forum: Datentechnologien

Hallo BhaaL,

das hatte ich auch schon gefunden. Allerdings ist das Diif Ergebnis dort jetzt nicht wirklich brauchbar bzw. sehr komplex.
Bei Unterschieden in den Werten gibt er nur die Indizes der Knoten aus, die sich geändert haben und den neuen Wert.

Habe nun basierend auf Palladin007's Vorschlag eine aktuell gut funktionierende Lösung gefunden.

Ich danke an der Stelle schon einmal.

Thema: 2 Xml Dateien vergleichen und Unterschiede speichern
Am im Forum: Datentechnologien

Verwendetes Datenbanksystem: XML

Für ein aktuelles Projekt muss ich ein Xml-File mit seinem Vorgänger vergleichen und alle Änderungen zusammenfassen.
Dabei sollen teilweise Xml-Knoten beim Vergleich ausgeschlossen werden.

Im Ergebnis sollen anschließend n-Xml Dateien raus kommen, die jeweils den geänderten Knoten und den alten sowie neuen Wert und alle ignorierten Werte enthält.

Beispiel:

Vorher:


<Data>
    <Buffer>10</Buffer>
    <Status>1</Status>
    <ReadTime>dd.MM.yyyy HH:mm:ss</ReadTime>
</Data>

Nachher:

<Data>
    <Buffer>20</Buffer>
    <Status>1</Status>
    <ReadTime>dd.MM.yyyy HH:mm:ss</ReadTime>
</Data>

Im Ergebnis soll jetzt folgendes ausgegeben werden:

<Diff>
    <NodeName>Buffer</NodeName>
    <PreviousValue>10</PreviousValue>
    <CurrentValue>20</CurrentValue>
    <Data>
           <Buffer>20</Buffer>
           <ReadTime>dd.MM.yyyy HH:mm:ss</ReadTime>
    </Data>
</Diff>

Bei dem flachen Xml kein Problem. Das wird straight forward runterprogrammiert und die Xml Knotenweise durchgegangen. Die Knoten aus der alten Xml werden dann mithilfe des NodeNamen aus der neuen gelesen.

Allerdings habe ich einen Knoten im Kopf, wie ich das bei Xml-Dateien bewerkstellige, die eben nicht flach alle Informationen auf einer Ebene haben. Hat hier jemand eine Idee bzw. einen Vorschlag?