Laden...

Forenbeiträge von Wilfried Ingesamt 190 Beiträge

17.07.2022 - 19:20 Uhr

Hallo,
es kommt wie immer drauf an.
Wenn du dich mit den Grundlagen beschäftigen willst, zum Beispiel Vererbung, Werttypen, Verweistypen, Schleifen, Listen, usw. oder auch debuggen, dann macht sich eine Konsolenanwendung meistens besser. Man kann sich vieles sofort in der Konsole ausgeben lassen.
Wenn du aber etwas machen willst, was mit der Oberfläche zusammenhängt, dann nimm Winforms.

13.07.2022 - 09:25 Uhr

Hallo MM72,
wie stellst du dir die Hilfe vor? Was möchtest du genau wissen?
Wenn ich mir dein Problem mit dem BinaryWriter ansehe, würde ich sagen, du hast noch nie was von C# gehört. Dir fehlen die absoluten Grundlagen.

Als Hilfe empfehle ich dir folgende Links:
Einführung in C#
Objektorientiertes Programmieren (C#)

09.07.2022 - 15:56 Uhr

keine Erfahrung damit. Einfach mal ausprobieren.

09.07.2022 - 10:42 Uhr

Soweit die Theorie, in der Praxis wird es je nach Preislage der Geräte größere oder kleinere Abweichungen geben. Als grobe Richtlinie mag es gehen. Je nachdem, wie deine Anforderungen sind, wirst du wohl um eine Kalibrierung nicht herum kommen. Es kommt ja auch darauf an, welche Daten vom Gerät an den PC übermittelt werden, wie genau sie sind und was es für Einstellungen gibt.

25.06.2022 - 23:38 Uhr

Hallo
Erst einmal ein Hinweis. Für Code bitte die entsprechenden Code-Tags verwenden. Ist besser lesbar.

Und dann hast du das Problem, was viele haben. Code kopiert und nicht verstanden.

Schau dir mal den Modulo-Operator an.
Arithmetische Operatoren (C#-Referenz)
C# Modulo Examples

und dann noch den bedingte Operator ?:
Operator „?“ (C#-Referenz)

21.06.2022 - 14:56 Uhr

Hallo
schau dir mal das MVVM-Entwurfsmuster an, dann lösen sich deine Probleme von alleine.
[Artikel] MVVM und DataBinding

21.06.2022 - 08:53 Uhr

Wenn man LINQ nicht möchte, dann kann man es auch in der klassischen Schreibweise machen:


var input = "112345564736643954836255";

Dictionary<char,int> result = new Dictionary<char, int>();
foreach (var c in input.ToCharArray())
{
    if (result.ContainsKey(c))
    {
        result[c] = result[c] + 1;
    }
    else
    {
        result.Add(c, 1);
    }
}

foreach (var r in result)
{
    Console.WriteLine($"Zeichen: '{r.Key}' Anzahl: {r.Value}");
}


21.06.2022 - 08:19 Uhr

Übrigens, programmieren heißt nicht, Code von anderen einzusammeln

Das passende Algorithmus in einem US-Forum gefunden.

sondern sich selber Gedanken zu machen. Und dein Problem sollte man auch als Anfänger problemlos selber hinbekommen. Du hast auch nie klar formuliert, wo dein Problem liegt. Immer nur die angebotene Hilfe als nicht hilfreich abgelehnt. So bekommst du nie selbstständig ein Programm hin.

21.06.2022 - 08:07 Uhr

Ich verstehe jetzt dein Problem nicht. Hast du überhaupt verstanden, was mein Code macht? Außerdem widersprichst du dir in deinen Anforderungen. Mal schreibst du von Echtzeit und mal reagieren auf den ok-Button. Was denn nun? Ist aber egal, bei Echtzeit reagierst du auf des Changed-Event und bei ok auf das Click-Event. In beiden Fällen übergibst du den Text meiner Methode und erhältst eine List. In dieser steht, welches Zeichen wie häufig in dem Text gefunden wurde. Damit kannst du die Punkte in deinem Diagramm erzeugen. Das könnte in einen flotten 3-Zeiler passen.

19.06.2022 - 22:35 Uhr

Hallo,
meinst du sowas?:


var input = "112345564736643954836255";
var output = input.GroupBy(x => x).OrderBy(c=> c.Key).Select(g=> new {zeichen = g.Key, count = g.Count()});

Du nimmst den String, gruppierst die Zeichen, sortierst die Zeichen und gibst die Zeichen mit der Anzahl zurück.
Das übergibst du dem Diagramm (Balken). X-Achse sind die Zeichen und Y-Achse die Anzahl.

06.05.2022 - 08:27 Uhr

Hallo,
isVisible kannst du nicht setzen. Dafür gibt es Visibility.

Siehe hier: Binding a Button's visibility to a bool value in ViewModel

Dafür gibt es diesen Converter: BooleanToVisibilityConverter Klasse

04.05.2022 - 13:00 Uhr

du solltest dich unbedingt mal mit den Grundlagen beschäftigen.


var window = new DeinFensterName();
window.Show();

04.05.2022 - 12:20 Uhr

Du meinst bestimmt ein Window.
Schau mal hier: Öffnen eines Fensters oder Dialogfelds (WPF .NET)

10.04.2022 - 19:12 Uhr

Hallo, für mich ist etwas verwirrend, dass in der Überschrift von txt die Rede ist, im ersten Beitrag aber plötzlich von pdf und nun wieder von txt. In der Auswertung spielt es dann zwar keine Rolle mehr, aber passt halt irgendwie nicht zusammen.

03.04.2022 - 17:45 Uhr

Also das funktioniert bei mir:


for (int i = 0; i < 100; i++)
{
    int j = 5 * (i / 5);
    Console.WriteLine($"{i:00} => {j:00}");
}

und raus kommt das gleiche wie bei dir:
00 => 00
01 => 00
02 => 00
03 => 00
04 => 00
05 => 05
06 => 05
07 => 05
08 => 05
09 => 05
10 => 10
11 => 10
12 => 10
...
83 => 80
84 => 80
85 => 85
86 => 85
87 => 85
88 => 85
89 => 85
90 => 90
91 => 90
92 => 90
93 => 90
94 => 90
95 => 95
96 => 95
97 => 95
98 => 95
99 => 95

17.03.2022 - 10:57 Uhr

Ah ok,

dir geht es also darum, zu einem genau festgelegten Zeitpunkt den Messwert zu lesen.
Da würde ich zwei Lösungswege sehen.
Möglichkeit eins wäre die Softwarelösung. Da müsste man mit den bekannten Problemen leben. Ein normaler Büro-PC hat nun mal meistens andere Aufgaben. Man kann vielleicht an manchen Stellen noch schrauben, aber sicher kann man sich nie sein.
Möglichkeit zwei wäre eine Lösung mit externem Mikrocontroller. (z.B. Arduino Nano) Natürlich viel größerer Aufwand, aber man hat die volle Kontrolle. Der Controller puffert die Daten und der PC holt sie irgendwann ab.
Welche Variante die bessere ist, musst du entscheiden. Wenn die Daten nur für dich sind und du mit den Ungenauigkeiten leben kann, dann Variante eins.

16.03.2022 - 14:28 Uhr

Hallo,

nur um das Problem besser zu verstehen, welche Betriebsart hat der Modbus? An welcher Stelle brauchst du diese Genauigkeit?

10.03.2022 - 15:38 Uhr

Hallo JensWa,
deine Zeitrechnerei sieht ja gruselig aus.
Um zwei Zeiten zu subtrahieren schau dir das mal an:
DateTimeOffset.Subtract Methode/DateTime.Subtract Methode.
Man kann aber auch das verwenden: Stopwatch Klasse
Bei beiden Varianten kommt das raus: TimeSpan Struktur
Und damit kann man auch schön rechnen und vergleichen.

08.03.2022 - 20:57 Uhr

Hallo,
meinst du so etwas?: Byte-Array direkt in ein struct "kopieren"
Also ich würde es mit einer Schleife machen, geht am einfachsten.


            byte[] bytes = { 10, 11, 12, 13, 14 };
            var coll = new ConcurrentQueue<int>(bytes.Select(b => (int)b));

Was meinst du eigentlich mit

ich möchte eigentlich der Array addieren können

?

28.01.2022 - 12:24 Uhr

Man kann auch weiterhin eine eigenständige Lizenz erwerben.
Visual Studio-Preise

27.01.2022 - 07:42 Uhr

warum nicht gleich auf .NET 6?

27.12.2021 - 17:22 Uhr

Also bei mir steht bei den Beiträgen Abt Beiträge: 16.280 und in der Mitgliederliste Abt 16280 Beiträge. Vorausgesetzt wir meinen auch das Gleich. 😉

27.12.2021 - 15:49 Uhr

Datenbanken ist nicht unbedingt das Level für einen Einsteiger. Dabei gibt es viel zu beachten. Nur weil etwas funktioniert und es keine Fehlermeldung gibt, ist es nicht unbedingt richtig. Dabei muss man viel wissen und besonders auch verstehen. Und bei Grundlagen sollte es keine Fragen mehr geben.

27.12.2021 - 15:07 Uhr

Du solltest dich ganz ganz ganz dringend mal mit den Grundlagen von C# auseinandersetzen, ansonsten bleibst du bei jedem kleinen Problem hängen.
Zum Thema Datenbank und Parameter noch dieser Link: Befehle und Parameter

27.12.2021 - 14:54 Uhr

Das stand doch alles schon in den Antworten drin.


            DateTime einsatzbeginn = dateTimePickerEinsatzbeginn.Value;
            DateTimeOffset einsatzbeginnOffset = new DateTimeOffset(einsatzbeginn);

oder in einer Zeile:


            DateTimeOffset einsatzbeginn = new DateTimeOffset(dateTimePickerEinsatzbeginn.Value);

Du solltest anstelle von dateTimePickerEinsatzbeginn.Text dateTimePickerEinsatzbeginn.Value verwenden. Und nicht String oder Integer verwenden, sondern DateTimeOffset. Nun ist das Value vom Type DateTime. Wie du das verwendest hat dir Abt geschrieben. Ob du nun wirklich DateTimeOffset brauchst, oder ob DateTime reicht, darüber kann man philosophieren. Hängt auch davon ab, wie du die Datenbank gestaltest. Siehe hier: Datums- und Zeitdaten

27.12.2021 - 11:17 Uhr

Hallo Markus1510,
gerade wenn man blutiger Neuling ist, dann sollte man Ratschläge auch annehmen und nicht einfach ignorieren.
Den String, den du von dateTimePickerEinsatzbeginn.Text erhältst, den wird deine Datenbank nicht verstehen. So steht es auch in der Fehlermeldung. Darum nutze zum zwischenspeichern DateTimeOffset und zum schreiben in die Datenbank SQL Parameter.

26.12.2021 - 10:23 Uhr

Durchprobieren ist kein guter Weg. Beschäftige dich unbedingt mit den Grundlagen. Überlege dir, wie du einen Wert speicherst. Für Datum und Zeit nutzt man im allgemeinen DateTimeOffset.

26.12.2021 - 09:48 Uhr

Hallo
Dein Code ist sehr interessant 😉 Den Text aus dem DateTimePicker versuchst du in ein Integer umzuwandeln. Das kann nicht funktionieren, da dort irgendwas mit Zeit drin steht. Warum soll einsatzbeginn ein Integer sein? Ein DateTimeOffset wäre da bestimmt besser. Und das kannst du direkt aus DateTimePicker.Value übernehmen.
Schau dir mal die Doku an. DateTimePicker Klasse

17.12.2021 - 14:59 Uhr

Hallo,
ich hab von Blazor keine Ahnung, aber Google hat mir folgenden Link ausgespuckt: Multiple Windows In ASP.NET Core Blazor

11.12.2021 - 11:17 Uhr

Es gibt noch ein weiteres Problem in der Suche. Unter Tipps steht:

Verwende + als einfache UND-Verknüpfung.

Wenn ich ein "+" einfüge, dann erfolgt keine Und-Verknüpfung, aber er findet das "+" im Text.

09.12.2021 - 09:29 Uhr

Hallo,
wenn ich dich richtig verstehe, dann geht es um 2 Probleme. Das eine Problem ist das Lesen der Daten und das Zweite ist die Anzeige.
Willst du die Daten nur anzeigen, oder sollen sie weiter verarbeitet werden?
Um die Datei einzulesen schau dir mal dies an: Reading|CsvHelper

01.09.2021 - 21:57 Uhr

Hallo,
schau dir mal das MVVM-Pattern an, dies gehört zu WPF. [Artikel] MVVM und DataBinding
Ein Listview stellt nur ein Anzeigeelement dar. Die Daten liegen im ViewModel und dort erfolgen auch alle Aktionen, dort erstellst du dann auch deine Listen. Dadurch bist du auch völlig unabhängig von der Anzeige.

20.08.2021 - 10:09 Uhr

Hallo,
ist das Oszi-Element von dir geschrieben? Ich nutze dieses LiveCharts2. Bin damit sehr zufrieden.

17.08.2021 - 16:02 Uhr

Da hat der Computer auch Recht. Du mußt es schon in die Klasse IssueData machen, wo auch schon InternalData ist.
Auch solltest du der Methode OnPropertyChanged() den Namen des Property übergeben. Steht auch so in dem von Abt verlinkten Artikel.

17.08.2021 - 15:01 Uhr

Mache doch einfach ein Property vom Typ IssueDescriptions dazu und binde es an SelectedItem. So steht es ja auch in deinem Beispiel.

09.08.2021 - 09:32 Uhr

Hallo inflames2k,
das weiß ich, mache es ja selber und das ist auch nicht das Problem. Mir geht es darum, wenn man versehentlich doch mal drauf klickt. Wenn ich sowas programmieren müßte, dann würde ich versuchen Konflikten aus dem Weg zu gehen. Eine neuer Tab ist ja das geringste Problem.

07.08.2021 - 14:37 Uhr

Nun möchte ich auch mal meinen Senf 😉 loswerden.
Wie schon viele schrieben, ist es auf jeder Seite anders, man muss sich halt überall auf andere Bedingungen einstellen und die wenigsten Seitenbetreiber werden sich auf eine Diskussion einlassen.
Mir wäre es eigentlich egal. Wenn mich jetzt einer fragen würde, wie ich es programmieren würde, dann würde ich mich für das Öffnen eines neuen Tabs entscheiden. Warum?
Wenn ich keinen neuen Tab öffne und die neue Seite versehentlich schließe oder weitersurfe, dann komme ich nicht oder nur mit vielen Klicks zurück.
Ich nutze die Tabs sehr exzessiv. Mir ist es wichtig, dass die Ursprungsseite offen bleibt. Egal ob Google oder eine Nachrichtenseite, ich öffne fast immer einen neuen Tab.
Wegen mir muss keine extra Wurst gebraten werden. Ich stelle mich halt drauf ein.

06.08.2021 - 09:39 Uhr

Mein Tipp für Anfänger, wenn du eine Aufgabe hast, dann zerlege sie in möglichst kleine Einzelaufgaben und bearbeite sie getrennt.
Hier wäre das WMI, Datum parsen und Datum ausgeben.
Dein Problem ist das Datum. Darum erstmal Doku nehmen und verstehen was dort geschrieben steht.
DateTimeOffset

Dann in Visual Studio die Console nehmen, ein kleines Testprogramm schreiben und damit spielen.
Hier mal ein Beispiel:


            var stringDate = "8-20-2021";
            string[] format = new string[] { "M/dd/yyyy", "M/d/yyyy", "M-d-yyyy" };
            var date = DateTimeOffset.ParseExact(stringDate, format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal);
            Console.WriteLine(date);

            Console.WriteLine("---------------------------");

            Console.WriteLine(date.ToString());
            Console.WriteLine(date.ToString("MM/dd/yyyy"));
            Console.WriteLine(date.ToString("d/M/yyyy"));
            Console.WriteLine(date.ToString("F"));
            Console.WriteLine(date.ToString("D"));
            Console.WriteLine(date.ToString("G"));

Und solange spielen, bis man es verstanden hat.

12.07.2021 - 10:35 Uhr

Hallo Little Tester,

ich hab mir mal im Forum deine Beiträge angeschaut. Für mich entsteht der Eindruck, dass du die Grundlagen von C# noch nicht verstanden hast. Damit verstehst du auch die Doku nicht.
Schaun wir uns mal den Code vom 10.07.2021 - 23:51 an.

  • in Zeile 7 erzeugst du dir ein DateTimeOffset mit der aktuellen Zeit... warum? was willst du damit?
  • in Zeile 8 kopierst du einen String in einen Neuen... was willst du damit erreichen?
  • in Zeile 9 übergibst du diesen String der ToString-Methode. Der String enthält aber nur dein Datum. Dort muss aber die Formatierung hin.
  • und in Zeile 11 rufst du nochmal ToString auf... warum? x ist doch schon ein String

Als erstes muß du den String in ein DateTimeOffset umwandeln-> parsen. Diese Methode braucht einige Informationen. Ein Datum kann unterschiedliche Formatierungen haben. Es gibt zB. Unterschiede zwischen England und USA. Die Methode hat keine Glaskugel, du mußt es ihr also sagen.
Und wenn du wieder einen String haben willst, dann nimmst du ToString. Aber auch diese Methode muß wissen, wie der String formatiert werden muss.

06.07.2021 - 08:34 Uhr

Wenn du einen älteren und von anderen Kollegen geschriebenen Code vor dir hast, der eine Unmenge an if's und Schleifen hat, teilweise sehr tief geschachtelt (hab ich gerade 😦 ), dann bist du glücklich, wenn er einigermaßen lesbar ist. Da interessiert es dich nicht, ob der Entwickler vor Jahren glücklicher war, weil er eine Zeile eingespart hat. Und deine Variante ist jetzt schon schwer zu lesen. Wenn die zusammengehörigen Klammern übereinander stehen, dann sieht man gleich, was zusammen gehört. Macht sich auch beim kopieren einfacher.

02.07.2021 - 17:54 Uhr

es läuft, d.h. es gibt keine Fehlermeldung, aber das Ergebnis ist nicht richtig. Schau mal in den Link von Abt unter Punkt 3. Dort wird es erklärt.

02.07.2021 - 17:19 Uhr

Hallo,
schau dir mal dieses Programm an: WMI Code Creator v1.0.
Es erzeugt dir fertigen Code und du siehst gleich, was dabei rauskommt.

22.06.2021 - 08:26 Uhr

Schneeregen? War es bei euch heute auch so kalt? Heute morgen auf dem PC gehabt.