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 gfoidl
Thema: Task mit spez. Namen starten/killen
Am im Forum: Grundlagen von C#

Hallo M.Lach ,

Zitat
nur in der Taskliste (Taskmanager)
Meinst du jenen von Windows?
Das wäre somit ein Prozess der gestartet werden muss. Angezeigt wird dort der Prozessname (von z.B. der exe).
Zitat


Task t = Task.Run(new Action(taskname2));
Das ist ein Task-Objekt.
Dem kann kein Name gegeben werden. Einem Thead kannst du benennen, damit z.B. in der Thread-Übersicht das erkenntlich ist.
Zitat
Und wie "kille" ich dann diesen wieder?
Entweder lebt der Prozess od. Task von alleine ab, wenn die Aktion, die ausgeführt werden soll, fertig ist od. der Prozess wird geKillt, der Task kann abgebrochen werden mittels Task cancellation.

Was hast du wirklich vor?

mfG Gü

Thema: Fehlermeldungen zentral abfangen ohne Programm danach zu beenden
Am im Forum: Rund um die Programmierung

Hallo DeSchneller,

das switch kannst du dir -- zumindest wie es da steht -- sparen, da keine Fälle unterschieden werden (nur der default-Fall ist da).
Fürs switch schau dir auch Using pattern matching switch statements an.

Zitat
Wie kann ich das verhindern?
Es gibt auch Fehler die nicht behandelbar sind und den Prozess zwangsweise beenden. Z.B. StackOverflowException, OutOfMemoryException udgl. Siehe dazu auch AppDomain.UnhandledException.

Um welchen Tech-Stack handelt es sich: WinForms, WPF, ...?

Für die MessageBox interessant als Lektüre: Nenne deinen Fall, wo du denkst, ohne modalen Dialog geht es nicht, und ich nenne eine Alternative

mfG Gü

Thema: Ich realisiere Parallel.Invoke mit await Task.Run , gibt es Nachteile oder Unterschiede?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo Sebrahi,

Ergänzung / Hinweis:

Zitat von T-Virus
Parallel.Invoke auf den Abschluss der Operationen wartet.
Und zwar derart dass der aufrufende Thread (z.B. der Main-Thread) blockiert od. für eine Operation der auszuführenden verwendet wird.
Daher ist auf [FAQ] Warum blockiert mein GUI? zu achten.

Würde der Code wie folgt geschrieben sein


public static async Task Start_myMethod1_asyncron()
{
    await Task.Run(() => {
        myMethod1();
    });
}
public static async Task Start_myMethod2_asyncron()
{
    await Task.Run(() => {
        myMethod2();
    });
}

public static async Task Main(string[] args)
{

    await Task.WhenAll(Start_myMethod1_asyncron(), Start_myMethod2_asyncron());

    //difference?

    Parallel.Invoke(myMethod1, myMethod2);

}
so wird zwar per Task.WhenAll auf das Ende der Ausführungen asynchron gewartet (await), aber während dieser Zeit ist der aufrufende Thread (hier: Main-Thread) "frei" und könnte andere Aufgaben erledigten.
Beim Parallel.Invoke ist das wie erwähnt nicht möglich.

Das soll jetzt nicht heißen dass Parallel.Invoke eher schlecht ist, sondern je nach konkreter Aufgabe kann es sogar sehr nützlich sein.

Zitat von T-Virus
Wenn du einfach stumpf Methoden aufrufen willst, die auch keinen Rückgabewert/Parameter haben, kannst du das mit Parallel.Invoke machen.
Parallel Linq (PLinq) ist eine weitere Option die ganz passend sein kann.

mfG Gü

Thema: C# Intersection
Am im Forum: Grundlagen von C#

Hallo Borbes,

kannst du bitte genauer schreiben was du erreichen willst?
Hab die Frage jetzt ein paar mal gelesen, so wirklich schlau werde ich daraus nicht.

Können die Zahlen in den Listen beliebig angeordnet sein?
Streng genommen bei einer Liste ja nicht, aber meinst du Menge? Dann wären alle Permutation von {1, 2, 3} gleichwertig zu betrachten.

Die Schnittmenge an sich ist ja exakt definiert, aber was verstehst du unter "Schnittmenge" bzw. was soll herauskommen? Beim gezeigten Beispiel dass die 5. mit den anderen ähnlich ist od. dass auch 5 in der Schnittmenge ist?

Gehts um einen Ähnlichkeitsvergleich von gegeben Listen?
"Ähnlichkeitsmaße" gibt es ja etliche und je nach Kontext besser geeignet. Noch hab ich aber keine Ahnung worum es wirklich geht.

Der Ansatz von dannoe ist grundsätzlich vernüftig, nur passt dieser zur Aufgabe?

mfG Gü

Thema: Jahr Angabe - Hilfe für einen Beginner
Am im Forum: Grundlagen von C#

Hallo Wilfried,

ist eine schöne Lösung!
Nur wenn in die Zukunft (z.B. 2030) gegangen werden soll, so klappt das nicht, da 1930 herauskommen würde.

Daher sollte der Hinweis von Stefan.Haegele unbedingt berücksichtigt werden.

mfG Gü

Thema: Jahr Angabe - Hilfe für einen Beginner
Am im Forum: Grundlagen von C#

Hallo T-Virus,

Zitat
Für das jahr Problem kannst du ja einfach prüfen ob das Jahr kleiner als 1000 ist.
Wenn ja, dann kannst du einfach + 2000 drauf rechnen und hast das entsprechende Jahr.
Kommt darauf an welches Regelwark gelten soll. Ist 50 2050 od. 1950? Je nachdem sollte ein präzisere Unterscheidung (siehe oben) durchgeführt werden.

mfG Gü

Thema: Jahr Angabe - Hilfe für einen Beginner
Am im Forum: Grundlagen von C#

Hallo specialist,

schau mal:


using System;

#nullable enable

while (true)
{
    Console.Write("Bitte gib diesen Monat in Zahl ein: ");
    string? monthInput = Console.ReadLine();

    if (!int.TryParse(monthInput, out int month) || (month < 1 || month > 12))
    {
        Console.ForegroundColor = ConsoleColor.Yellow;
        Console.WriteLine("Ungültiger Wert für einen Monat eingegeben. Erlaubt sind Zahlen 1 bis 12.");
        Console.ResetColor();
        continue;   // Schleife wieder von vorne beginnen
    }

    Console.Write("Bitte gib das Jahr ein: ");
    string? yearInput = Console.ReadLine();

    if (!int.TryParse(yearInput, out int year))
    {
        Console.ForegroundColor = ConsoleColor.Yellow;
        Console.WriteLine(@"Ungültiger Wert für ein Jahr eingegeben. Erlaubt sind Zahlenwerte, wobei eine zwei Ziffern Eingabe
wie folgt behandelt wird:
jj <  50 -> 20jj
jj ≥ 50 -> 19jj");
        Console.ResetColor();
        continue;   // Schleife wieder von vorne beginnen
    }

    year += year switch
    {
        < 50 => 2000,
        ≥ 50 and < 100 => 1900,
        _ => 0
    };

    DateTime dateTime = new DateTime(year, month, 1);

    Console.ForegroundColor = ConsoleColor.Green;
    Console.WriteLine($"Wir haben {dateTime:MMMM yyyy}");
    Console.ResetColor();
}
Davon ausgehend kannst du es beliebit erweitern bzw. das dir Unbekannte nachlesen (in der Doku). Wenn du dann irgendwo hängst, so frag einfach nach.

mfG Gü

Thema: ASP.NET WebAnwendung soll mit Windows Dienst sprechen
Am im Forum: Web-Technologien

Hallo Pardasus,

Zitat
einen Windows Dienst
Läuft dieser auf .NET Full od. .NET Core?
Ich würde Letzteres bevorzugen, einfach da es mehr Möglichkeiten gibt.
Zitat von Pardasus
Seite bauen die Informationen darüber anzeigt, was der Dienst den gerade so treibt.
Je nachdem welche Informationen und in welchem Intervall gibt es verschiedene Varianten in Ergänzung zu Abts Beitrag.
Die hier angeführten können als "Push-Modell" betrachtet werden im Gegensatz zu den bisher genannten "Pull-Modellen".
  • Der Windows-Service ist zugleich ein SignalR-Server, der "Notifications" aussendet und diese werden von der Monitoring-Seite abonniert.
  • Der Windows-Service hat eine EventSource und schreibt in diese die Log-Events, die Monitoring-Seite ist eine Senke dieser Events in Form eines EventListeners

Letztere Variante bietet durch diese Infrastruktur (ist einfacher als es ausschaut) auch die Möglichkeiten mit Diagnose-Werkzeugen ala dotnet-trace, Visual Studio, etc. diese Ereignisse zu analysieren. Od. durch einen speziellen EventListenere auch Alarme zu erzeugen falls eine Metrik eine bestimmten Grenzwert übersteigt / unterschreitet.

Kannst du ein bischen konkreter werden welche Infos angezeigt werden sollen? Damit die Möglichkeiten besser bewertet werden können.
Und auch ob Windows-Service und die Monitoring-Seite im selben Netz / Rechner sind spielt eine gewisse Rolle (Sicherheit).

mfG Gü

Thema: List<> Generic in Basisklasse
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo jkrt,

Zitat
ich lese die Softwareversion des Gerätes und muss dann abhängig von dieser die Daten empfangen und verarbeiten.
um ein paar Entwurfsmuster die da angewandt werden können zu nennen und um dir ein schönes Wochenende zu bereiten ;-)
Damit kannst du die Unterscheidung durchführen und dann mit der konkreten Instanz die Daten lesen / halten.

mfG Gü

Thema: Aufbaue einer Datenbankabfrage mit variablen Filtern
Am im Forum: Datentechnologien

Hallo Kriz,

genau.

Statt simplen String-Verkettungen würde ich aber einen QueryStringBuilder erstellen.
Zuerst die einzelnen Filter in einer Liste speichern und dann daraus am Ende das SQL Statement erzeugt, da so auch einfach parametrisierbar ist.
So kannst du problemen mit den and-"Verknüpfungen" von vornhinein aus dem Weg gehen.

Klar?

mfG Gü

Thema: Aufbaue einer Datenbankabfrage mit variablen Filtern
Am im Forum: Datentechnologien

Hallo Kriz,

greifst du mit dem SqlClient auf die DB zu od. wird ein O/R-Mapper ala EF Core, etc. verwendet?

Beim SqlClient kann das Statement (der SQL-String) manuell zusammengestöpselt werden. Achte dabei aber auf [Artikelserie] SQL: Parameter von Befehlen (das hat auch den Vorteil dass im SQL Server der Query-Plan gecached werden kann und so eine bessere Leistung vorhanden ist).

mfG Gü

Thema: DLLImport und Kommunikation mit C++ DLLs
Am im Forum: Grundlagen von C#

Hallo vnvjan,

das eigentliche Problem hab ich zu wenig verfolgt, aber bei


[DllImport(@"Master.dll", EntryPoint = "?Init@@YGXPAUHWND__@@0@Z", CallingConvention = CallingConvention.StdCall, SetLastError = true)]
"muss" ich darauf hinweise, dass dieses Vorgehen sehr fragil ist, da durch das Name mangling der EntryPoint bei jeder Version von Master.dll anders sein kann.

Der korrekte Weg wäre hier einen C-Wrapper (zumindest einen extern "C" Export) für die C++ Bibliothek zu erstellen und dann diesen Namen im EntryPoint zu verwenden.
Sonst gibt es später einmal ein Problem und dessen Ursachenforschung mag schwierig sein, da an dies eher nicht gedacht wird (zumindest nicht sofort).

mfG Gü

Thema: Hello World! myCSharp auf .NET
Am im Forum: Ankündigungen

Hallo zusammen,

endlich finde ich auch die Zeit um ein paar Worte dazu schreiben zu können.

Als ich mich aktiv an der Entwicklung beteiligte war das Projekt schon sehr fortgeschrittenn und dementsprechend auch groß. Das Zurechtfinden innerhalb des Projekts war jedoch wider meines Erwartens relativ einfach, da Abt in Bezug auf Archtitektur, Muster, etc. großen Wert legt(e) und daher so gut wie alles klar und sauber strukturiert war / ist.

Die Zusammenarbeit an diesem Projekt, die ja nach wievor voranschreitet, hat mir einfach Spass und Freude bereitet. Da ich beruflich nur On Premises unterwegs bin, konnte ich für mich neue Möglichkeiten erkunden und erforschen und dabei auf Abts Wissen und Unterstützung zurückgreifen. Danke Ben!

Wie bereits erwähnt wurde, ging jede Änderung via Pull Requests (PRs). Dabei hatten wir etliche konstruktive Diskussionen wie und ob wir etwas noch besser machen könnten. Manchmal wurden bestimmten Ideen zeitlich nach hinten verschoben, damit ein Feature erstmal produktiv werden kann und die Verbesserungen später durchgeführt werden können. Das ein od. andere mal mussten wir uns auch gegenseitig vor der "over engineering"-Falle bremsen ;-) und in anderen Punkten waren wir wohl beide ziemlich gleich stur :-) (haben aber immer eine vernüftige Lösung gefunden).

Interessant und spanned ist der Punkt an dem ein Projekt "live" geht immer, hier war es für mich aber besonders interessant, da im "Versuchs-Forum" die Last gering war und dort alle unserer Ziele / Features funktionierten. Im "Live-Forum" mit vielen Benutzer und gleichzeitigen Zugriffen tauchten dann ein paar latente Bugs auf, die meisten ließen sich auf Race-Bedingungen in Zusammenhang mit dem ThreadPool zurückführen, da dieser nun wesentlich mehr Task zu verarbeiten hat als im Versuchs-Forum (so z.B. das Versenden der Emails). (Anmerkung: dies Bugs sind alle behoben).

Es wurde bereits erwähnt, dass wir überlegen bestimmte Teile vom Foren-Code zu veröffentlichen und ein paar Artikel über unsere Erkenntnisse (siehe vorhin) und Muster sowie Tipps und Tricks die wir angewandt haben zu erstellen.
Aber da wir all dies in unserer Freizeit machen, können wir keine verbindliche Zusage zu Terminen machen. Wenns etwas zu veröffentlichen gibt, so werden ihr das schon mitbekommen :-)

In diesem Sinne wünsche ich euch viel Spass am neuen Forum!

mfG Gü

Thema: Suche nach Bibliothek für automatische Updates einer .Net 5 Anwendung
Am im Forum: Rund um die Programmierung

Hallo,

ohne genaueres von deiner Anwendung zu wissen: ClickOnce wird für .NET 5 unterstützt. Das wäre eine einfache Option.

mfG Gü

Thema: Best Practice Frage zu Exception Handling ASP.NET
Am im Forum: Grundlagen von C#

Hallo degri2006,

Zitat
Ich würde nur die Exceptions catchen
fange nur die Exception die auch behandelt werden können bzw. dessen Behandlung sinnvoll ist.
"Behandeln" ist z.B. Loggen, dem Benutzer zeigen dass etwas nicht passt um es erneut zu versuchen, usw.

Irgendwo in der Anwendung (du schreibst nicht ob es eine Client- / Server-Anwendung ist) sollte allerdings ein "catch all"


try
{
    // Anwendungs-Startpunkt bei Client, z.B. in Main-Methode
}
catch (Exeception ex)
{
    // Loggen, etc.
}
durchgeführt werden, damit es keinen unbehandelten Fehler (unhandled exception) gibt, welche den Prozess terminieren würde.
(Achte auch bei Threads / Tasks darauf dass die nicht unbehandelt bleiben).



mfG Gü

Thema: BinärDatei lesen mit festen Positionen und einem Start-"SuchText"
Am im Forum: Rund um die Programmierung

Hallo Torni,

es ist eine Binärdatei und der Text den du siehst, wird nur vom Hex-Viewer so dargestellt, da es druckbare ASCII-Zeichen sind.
Daher kann der Suchtext mit entsprechender Kodierung in die binäre Darstellung gebracht und so direkt nach diesem gesucht werden.

Die Dateigröße ist recht überschaubar, daher am einfachsten alles aufeinmal einlesen. Das erspart komplizierteren Code bei dem z.B. in einem Buffer gelesen wird (od. mit Pipelines arbeitet).

Als Anstoss -- v.a. zum Suchen des Suchtextes:


using System;
using System.IO;
using System.Text;

Encoding encoding       = Encoding.GetEncoding("iso-8859-1");   // what's the correct encoding?
const string searchText = "XSA40_DATENSATZ";

ReadOnlySpan<byte> data         = File.ReadAllBytes("Torni.dat");
ReadOnlySpan<byte> searchPhrase = encoding.GetBytes(searchText);

while (!data.IsEmpty)
{
    int index = data.IndexOf(searchPhrase);

    if (index < 0)
    {
        Console.WriteLine("Nothing found :-(");
        break;
    }

    Console.WriteLine($"First occurrance of searchText at position {index}");

    // Move behind the found searchText
    if (data.Length < searchPhrase.Length) break;

    data = data.Slice(index + searchPhrase.Length);

    if (data.Length < 3) break;

    // Move to first int-data
    data = data.Slice(3);

    string value = encoding.GetString(data.Slice(0, 4));
    Console.WriteLine($"Value found: {value}");

    // I'll break here, as it's just a demo for you ;-)
    break;
}

Dabei wird Span verwendet, da sich so das Suchen mit IndexOf trivial gestaltet. Nachdem etwas gefunden wurde, wird mit Slice die Span "zerschnitten", so dass nur mehr der Rest übrig bleibt und dieser kann weiter untersucht werden.

Ganz klar ist mir noch nicht geworden wie und wo und welche Werte gelesen werden sollen. Aber das solltest du selbst schaffen ;-)
Tipp: sollten Zahlen, etc. gelesen werden, so schau dir die BinaryPrimitives-Klasse an, welche perfekt mit Span harmoniert.

BTW: warum baust du in deinem Code einen String zusammen, nur damit dieser dann wieder aufgeteilt werden muss um diesen in ein Dictionary zu stopfen? Das kannst du doch direkt ohne den String auch machen? Aber wie erwähnt, mir ist noch immer nicht ganz klar was es werden soll.


mfG Gü

Thema: BinärDatei lesen mit festen Positionen und einem Start-"SuchText"
Am im Forum: Rund um die Programmierung

Hallo Torni,

Zitat
Der Typ der Datei Testdat.dat kann nicht hochgeladen werden.
Z.B. als zip sollte gehen od. umbenennen in Testdat.txt.
Probier das einmal, dann zeig ich ein Demo wie es mit Span und Freu(n)de geht.

mfG Gü

Thema: BinärDatei lesen mit festen Positionen und einem Start-"SuchText"
Am im Forum: Rund um die Programmierung

Hallo Torni,

Zitat
also der Suchtext steht als Plain-Text drin.
Als UTF-8 od. wie? Häng am besten so eine Beispiel-Datei an.
Wenns so ist wie ich mir vorstelle, dann lässt sich das elegant lösen -- aber bevor ich ein Demo zeige (da es doch nicht so gebräuchliche APIs sind) will ich gerne sehen wie es konkret ist, nicht dass ich was mache das den Punkt nicht trifft.

Außerdem hab ich oben noch mehr Fragen gestellt. Du willst Hilfe, also bitte ermögliche es den Helfern auch helfen zu können indem du die Fragen beantwortest.

mfG Gü

Thema: BinärDatei lesen mit festen Positionen und einem Start-"SuchText"
Am im Forum: Rund um die Programmierung

Hallo Torni,

Zitat
der Suchtext "blabla"
Steht der Suchtext als Text od. auch binär in der Datei?
Zitat
und nach diesem an Position z.B. +540 Zeichen steht das was ich auslesen muss..
Ist der Offset (hier die +540) gegeben od. wie werden diese ermittelt?
Das was du auslesen musst ist was? Ein struct od. etwas protokollbasiertes das geparst werden muss?

Ich frag deshabl, da es mit Span und MemoryMarshal ein paar sehr gute APIs für solche Fälle gibt.
Je nach Größe der Datei (wie groß ist die?) gibt es ev. mit dem SequenceReader eine weitere Alternative um das elegant und performant lesen zu können.

Aber bevor wir uns ev. in etwas verrennen beantworte bitte diese Fragen.
Am besten wäre wenn du ein Beispiel zeigen könntest wie die Datei ausschaut und was das Ergebnis sein soll.

mfG Gü

Thema: Float / Double / Decimal
Am im Forum: Grundlagen von C#

Hallo Crussy,

float und double sind Gleitkommazahlen, die nach IEEE 754 gespeichert werden.
float wird mit 32-bit gespeichert, während double mit 64-bit gespeichert wird, daher auch das "double" für "doppelte Genauigkeit". Da geht es v.a. darum wie die Zahlen und Ergebnisse gerundet werden. Somit können bei float 7-8 Dezimalstellen ohne Genauigkeitsverlust gespeichert werden, bei double sind es schon 15-16.

Der [FAQ] Double und Float: Fehler beim Vergleich und Rundungsfehler geht auf ein paar Eigenheiten dieser Gleitkommazahlen ein.

Wie erwähnt wird bei Operationen mit Gleitkommazahlen das "wahre Ergebnis" gerundet und somit ergeben sich zwangsläufig Rundungsfehler. Für viele Algorithmen spielen diese keine wesentliche Rolle, z.B. in der Thermodynamik ist es egal ob die Temperatur 273,1500001 K od. 273,1500002 K ist. Einen weiteren Ausflug in die Stabilität (Numerik) erspare ich dir hier ;-)

Stell dir nun aber vor es geht um Bank-Geschäfte und bei jeder Transaktion würde ein Rundungsfehler passieren. Nach unzähligen solcher Transaktionen und einer bestimmten Zeit könnten die Rundungsfehler so groß werden, dass die Bilanzen nicht mehr stimmen und das spielt eine wesentliche Rolle. Daher ist sind die o.g. Gleitkommazahlen ungeeignet und deshalb wurde der Datentyp decimal erfunden. Dieser besitzt keine Rundungsfehler und ist somit für Finanz-Mathematik die geieignete Wahl. Allerdings ist das Rechnen mit decimal aufgrund der Genauigkeitsanforderungen und des Wert-Bereichs nicht so performant wie mit den Gleitkomma-Typen double / float und tw. auch nicht anwendbar (da der Wert-Bereich über-/unterschritten wird).

Zusammengefasst:
Finanzmathematik -> decimal
Sonst -> double, außer Anforderungen an die Genauigkeit sind nicht sehr hoch dass float.

Was jedoch "nicht sehr hoch" bedeutet ist von Aufgabe zu Aufgabe verschieden, aber siehe oben bei den Dezimalstellen.

mfG Gü

Thema: Unterschied Prefix & Postfix
Am im Forum: Grundlagen von C#

Hallo Crussy,

Präfix bedeutet "Vorsilbe", Postfix ist die "Nachsilbe". Bezogen aufs Programmieren ist das v.a. in Bezug auf Inkrementoperator.


int i = 42;
i = i + 1;
kann gekürzt werden zu


int i = 42;
i += 1;
und weiter gekürzt zu


int i = 42;
++i;

Hier wurde der Präfix-Inkrementoperator verwendet. Der Unterschied zwischen Präfix-/Postfix-Operator ist das Ergebnis:


int i = 42;
int a = i++;    // a hat den Wert von i (=42) erst danach wird i inkrementiert und hat danach den Wert 43
int b = ++i;    // zuerst wird i inkrementiert und hat den Wert 43+1=44, danach wird dieser Wert b zugewiesen so dass b = 44 ist


mfG Gü

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

Hallo Th69,

Zitat
Dann sollte es doch kein Problem sein, beim Parsen den passenden Titel aus dem Link (anhand der Thread-ID) zu holen?!

ist es auch nicht. Nur bisher sind wir davon ausgegangen dass die Urls aus der Adressleiste einfach kopiert werden, also z.B. https://mycsharp.de/forum/threads/26594/wie-poste-ich-richtig und nicht eine manuelle gekürzte Url wie https://mycsharp.de/forum/threads/26594 in den Beitrag kopiert wird.

Würde -- auch welchen Gründen auch immer -- das Nachschlagen in der DB nicht klappen, so würde der "Slug" wie wie-poste-ich-richtig als Link-Text verwendet, da dies immer noch besser als die rohe Url ist.

Die Änderung dafür ist schon parat.

Nur aus Interesse: warum "streubst" du dich gegen diese Art der Urls? (vllt. ist mein Eindruck jetzt falsch).

mfG Gü

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

Hallo Th69,

eigentlich sollte der Titel übernommen werden -- zumindest jener Titel wie er in der DB für den Thread steht.
Kannst du bitte ein Beispiel geben damit das geprüft werden kann? Ich schau auch in den Logs nach ob ich dort etwas finde.

Z.B. https://mycsharp.de/forum/threads/26594/hinweis-wie-poste-ich-richtig wird korrekt übersetzt.
Kann es sein dass du einen "alten Link" hattest? Diese gehen nicht.

Edit: sehe etwas in den Logs das passen könnte. Es geht um https://mycsharp.de/forum/threads/71995 (dein Parser).

mfG Gü

Thema: 2D Char Array Wort finden und Koordinate ermitteln
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo hannebambellino,

Zitat
Ich habe eine csv Datei, die 12 Felder breit ist und 9 tief.
Genau die wäre interessant -- Beispieldaten und was heraus kommen soll, also wie du dir das Resultat vorstellst.
Dann werden wir schon einen Lösung finden ;-)

BTW: bitte verwendne die Code-Tags -- [Hinweis] Wie poste ich richtig? Punkt 6.

mfG Gü

Thema: 2D Char Array Wort finden und Koordinate ermitteln
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo hannebambellino,

damit wir alle das gleiche Verständnis vom Problem haben, kannst du eine kleines Demo zeigen?

mfG Gü

Thema: Zeile mit "\x00" einlesen
Am im Forum: Grundlagen von C#

Hallo degri2006,

ich kann das geschilderte Verhalten nicht reproduzieren.
Welche .NET Version verwendet du und welche Culture (normal jene vom Betriebssystem, also de-DE od. de-AT (wie bei mir)).


using System;

string line = "$a=\"blablablablablablablabla\x00\" wide nocase";

string a = line.Split("=")[0];
string b = line.Split("=")[1];

Console.WriteLine(line);
Console.WriteLine(a);
Console.WriteLine(b);

liefert

$a="blablablablablablablabla " wide nocase
$a
"blablablablablablablabla " wide nocase

Die \0 werden / können so nicht dargestellt werden.

BTW: statt "=" (ist ein String) ist es besser die char-Überladung zu verwenden, also


string a = line.Split('=')[0];
string b = line.Split('=')[1];
Hier ist (unter .NET 5.0 und de-AT) das Ergebnis gleich, aber wegen Globalization APIs use ICU libraries on Windows könnte es einen Unterschied machen.

mfG Gü

Thema: PDFs erstellen unter ASP.NET Core
Am im Forum: Web-Technologien

Hallo MrSparkle,

ist XSL-FO eine Option?
Würde zu Templates + Daten ganz gut passen und wenn die "Einstiegshürde" geschafft ist, so ist es relativ trivial zu handhaben. Z.B. mit https://www.nuget.org/packages/Fonet.Standard/

PS: mich wundert es auch (immer wieder) dass es für den de-facto Dokument-Standard PDF keine vernüftigen Lösungen gibt.

mfG Gü

Thema: Wie sperre ich lokale Ports auf einer Windows 10 Maschine?
Am im Forum: Netzwerktechnologien

Hallo Mattes80,

versetzt dich bitte in die Lage von jemanden der nicht weiß worum es geht und lies die Frage.

Welche Code behind?
PC <-> Maschine -- ich kann raten was gemeint ist, aber ist es das dann wirklich?

Wie willst du das "Internet" sperren? Von außen od. soll das der Mitarbeiter am PC an der Maschine einfach sperren / entsperren können?

Welcher Betriebssystem ist vorhanden?

Also bitte konkretere Infos in der Frage, dann ist die Chance auf konkretere Antworter auch höher.

mfG Gü

Thema: Wie kann ich im C# Werte berechnen, so wie Excel das auch macht?
Am im Forum: Rund um die Programmierung

Hallo OXO,

ganz verstanden hab ich nicht was du optimieren willst, aber ich denke es ist Suche nach "Knappsack" bzw. Suche nach "Rucksack".

mfG Gü

Thema: Async Await Verständnis Probleme
Am im Forum: Grundlagen von C#

Hallo Magier69,

Zitat
anfreunden damit...
Ja mach das und probiers einfach aus, dann kannst Freude damit haben das es viel umständlichen Code erspart.

Sonst frag einfach wieder im Forum nach ;-)

mfG Gü