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 steffen_dec
Thema: Eine Liste aus einer CSV-Datei erstellen
Am im Forum: Grundlagen von C#

Hallo, solche Fehler findest Du am besten heraus wenn du den Debugger verwendest, siehe [Artikel] Debugger: Wie verwende ich den von Visual Studio?

Ich vermute dass in der CSV-Datei eine leere Zeile existiert...

Thema: GUI: Windows-Forms Inspektor
Am im Forum: GUI: Windows-Forms

Hi,

meinst Du das PropertyGrid?

Thema: Custom-Control override AutoSize Property
Am im Forum: GUI: Windows-Forms

Hi,

versuchs mal mit dem Attribut DesignerSerializationVisibility


    public class TestTextBox : TextBox
    {
        [Browsable(true)]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
        public override bool AutoSize
        {
            get
            {
                return base.AutoSize;
            }

            set
            {
                base.AutoSize = value;
            }
        }
    }

Thema: Verweise auf .net Dll bringt Versionsfehler - Wie mache ich das Versionsunabhängig?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

manchmal reicht es wenn man bei dem jeweiligen Verweis "Specific Version" auf "False" setzt (siehe Properties).
Vielleicht hilft es schon!?

Gruß
Steffen

Thema: Drop einer Textdatei auf eine Textbox um Inhalt darzustellen
Am im Forum: GUI: Windows-Forms

Hallo,

so geht es:



        private void textBox1_DragEnter(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.FileDrop) || e.Data.GetDataPresent(DataFormats.Text))
            {
                e.Effect = DragDropEffects.Copy;
            }
            else
            {
                e.Effect = DragDropEffects.None;
            }
        }

        private void textBox1_DragDrop(object sender, DragEventArgs e)
        {
            if (e.Data.GetDataPresent(DataFormats.Text))
            {
                textBox1.Text = e.Data.GetData(DataFormats.Text).ToString();
            }
            else if (e.Data.GetDataPresent(DataFormats.FileDrop))
            {
                string[] files = (string[])e.Data.GetData(DataFormats.FileDrop);
                textBox1.Text = System.IO.File.ReadAllText(files[0]);
            }
        }

Thema: Socket Verbindung über das Internet
Am im Forum: Netzwerktechnologien

Musst deine externe IP-Adresse verwenden siehe z.b.https://www.whatismyip.com/de/

dann den benutzen Port im Router weiterleiten (Port forwarding) an deinen lokalen Rechner

Thema: Threads mit Delegate-Funktion in einer Schleife benutzen Zählvariable gleichzeitig
Am im Forum: Code-Reviews

Hallo,

hier noch ein Beispiel mit Parallel.For:


internal class Program
    {
        private static int[,] matrix;

        private static void Main(string[] args)
        {
            Stopwatch watch = Stopwatch.StartNew();
            matrix = new int[1000, 1000];

            Parallel.For(0, 1000, y =>
            {
                CalcRow(y);
            });

            Console.WriteLine("Fertig! nach " + watch.ElapsedMilliseconds.ToString("0 ms"));
            Console.ReadKey();
        }
        
        private static void CalcRow(int y)
        {
            Console.WriteLine("Bearbeite Zeile " + y);
            for (int x = 0; x < 1000; x++)
                matrix[x, y] = x * y;
        }
    }

Thema: Überprüfen, ob Textbox bestimmtes Text beinhaltet
Am im Forum: GUI: Windows-Forms

noch eine schnellere Möglichkeit wäre mit Regex :


Regex reg = new Regex("stop this");
int count = reg.Matches(textBox2.Text).Count;

kurze Zeitmessung (builder.Length => 6.168.000):


static void Main(string[] args)
{
    StringBuilder builder = new StringBuilder();
    for (int i = 0; i < 1000; i++)
    {
        builder.Append(_testText);
    }

    Method1(builder.ToString());
    Method1(builder.ToString());
    Method1(builder.ToString());

    Console.WriteLine();

    Method2(builder.ToString());
    Method2(builder.ToString());
    Method2(builder.ToString());

    Console.WriteLine();

    Method3(builder.ToString());
    Method3(builder.ToString());
    Method3(builder.ToString());

    Console.ReadLine();
}

static void Method1(string text)
{
    Stopwatch watch = Stopwatch.StartNew();
    int count = (text.Length - text.Replace(_search, string.Empty).Length) / _search.Length;
    watch.Stop();
    Console.WriteLine("Method1 Count: {0} Duration: {1:0.0} ms", count, watch.ElapsedMilliseconds);
}

static void Method2(string text)
{
    Stopwatch watch = Stopwatch.StartNew();
    int count = text.Split(new string[] { _search }, StringSplitOptions.None).Length - 1;
    watch.Stop();
    Console.WriteLine("Method2 Count: {0} Duration: {1:0.0} ms", count, watch.ElapsedMilliseconds);
}

static void Method3(string text)
{
    Regex reg = new Regex(_search);
    Stopwatch watch = Stopwatch.StartNew();
    int count = reg.Matches(text).Count;
    watch.Stop();
    Console.WriteLine("Method3 Count: {0} Duration: {1:0.0} ms", count, watch.ElapsedMilliseconds);
}

Ausgabe bei mir (Release ohne Debugger):
Zitat
Method1 Count: 9000 Duration: 36,0 ms
Method1 Count: 9000 Duration: 34,0 ms
Method1 Count: 9000 Duration: 35,0 ms

Method2 Count: 9000 Duration: 62,0 ms
Method2 Count: 9000 Duration: 75,0 ms
Method2 Count: 9000 Duration: 56,0 ms

Method3 Count: 9000 Duration: 8,0 ms
Method3 Count: 9000 Duration: 8,0 ms
Method3 Count: 9000 Duration: 14,0 ms

Thema: Positionswert eines bewegenden Labels in zweiten Label anzeigen
Am im Forum: Grundlagen von C#

Hallo,

probier mal ob du mit der Timer-Komponente (Windows.Forms.Timer) zurecht kommst. (hier kleines Tutorial dazu http://www.c-sharpcorner.com/UploadFile/mahesh/C-Sharp-timer/)
Dieser löst immer ein Ereignis aus wenn die eingestellte Zeit abgelaufen ist.

Gruß
Steffen

Thema: DataGridView scrollen soll vertikal pixelweise und nicht zeilenweise sein
Am im Forum: GUI: Windows-Forms

Hallo,

wieviele Zeilen werden in der DGV angezeigt?

Hier gibt es einen möglichen Lösungsweg wenn Du nicht soo viele Zeilen hast:https://social.msdn.microsoft.com/Forums/de-DE/b0f4f6e7-d467-46f8-a1c6-f16fa9d27448/datagridview-vertikales-scrollen-pixel-fr-pixel?forum=visualcsharpde

Thema: Programm Mehrsprachig einstellen [==>Lokalisierung]
Am im Forum: Grundlagen von C#

Hier ein kleines Beispiel.

Zum Bearbeiten der Resourcen eignet sich z.b. ResX Resource Manager: http://resxresourcemanager.codeplex.com

Thema: Definition/Ausführung von Testfällen für einen Prüfstand für Kombiinstrumente
Am im Forum: Rund um die Programmierung

Hallo,

ich glaube ihr habt ihn falsch verstanden.

@NervousElk: Willst du einen HIL-Simulator schreiben?

Thema: [gelöst] Windows Service Installer getrennt von der Service EXE
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich habe es mittlerweile gelöst.
Ich habe einfach das ganze ugedreht. Die Logik ist in eine eigene DLL-Assembly gewandert und wird von der Exe aufgerufen.
So funktioniert auch der Installer ohne Probleme.

Gruß
steffen

Thema: [gelöst] Windows Service Installer getrennt von der Service EXE
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

ich habe einen Windows-Dienst entwickelt. Dieser hat auch einen ProjectInstaller (mit ServiceInstaller und ServiceProcessInstaller).

Für die Installation habe ich ein Setup Projekt angelegt und als CustomAction die Assembly ausgewählt (als InstallerClass). So hat alles soweit funktioniert.

Ist es möglich den ProjectInstaller in eine extra dll auszulagern?
Nach dem ersten Test, installiert er einen Dienst und verweist auf diese DLL anstatt auf die EXE Datei.

Hat jemand eine Idee wie es gehen könnte?

Danke, Gruß
Steffen

Thema: Picturebox an Bildauschnitt anpassen
Am im Forum: GUI: Windows-Forms

Hallo,

du kannst auch die PictureBox in ein Panel reinlegen und dann hinausschieben...


private void button1_Click(object sender, EventArgs e)
{
    pictureBox1.Top -= 10;
}

private void button2_Click(object sender, EventArgs e)
{
    pictureBox1.Top += 10;
}

private void button3_Click(object sender, EventArgs e)
{
    pictureBox1.Left -= 10;
}

private void button4_Click(object sender, EventArgs e)
{
    pictureBox1.Left += 10;
}

Die Picturebox kannst dann auf "SizeMode=Autosize" stellen.
Dann kannst Du noch die Größe von dem Panel extra ändern (Width und Height). (D.h. der Bildausschnitt wird größer).

Thema: CD/DVD Bibliothek 2
Am im Forum: Code-Reviews

Hallo,

ich würde Dir raten eine abstrakte Klasse "Medium" zu implementieren.
siehe https://msdn.microsoft.com/de-de/library/sf985hc5.aspx

z.B:


    internal abstract class Medium : IMedium
    {
        public string Name { get; set; }

        public int Length { get; set; }

        public int ReleaseYear { get; set; }

        public IList<IAttribut> Attributs { get; }

        public Medium(string name, int length, int releaseYear)
        {
            Attributs = new List<IAttribut>();
            Name = name;
            Length = length;
            ReleaseYear = releaseYear;
        }
    }

CD/DVD-Klasse wäre dann viel schlanker:


       namespace CD_DVD_Libary
{
    internal class CD : Medium
    {
        public CD(string name, int length, int realeaseYear) : base(name, length, realeaseYear)
        {
        }

        public override string ToString()
        {
            return string.Format("CD Name={0} Length={1} ReleaseYear={2}", Name, Length, ReleaseYear);
        }
    }
}


namespace CD_DVD_Libary
{
    internal class DVD : Medium
    {
        public DVD(string name, int length, int releaseYear) : base(name, length, releaseYear)
        {
        }

        public override string ToString()
        {
            return string.Format("DVD Name={0} Length={1} ReleaseYear={2}", Name, Length, ReleaseYear);
        }
    }
}

Ich sehe im Moment noch nicht den Sinn und Zweck die CD/DVD-Klasse extra zu implementieren die identisch sind außer der Klassen-Name.
Man könnte in der Medium Klasse einfach noch einen "Typ" als Enum definieren (mit CD, DVD als EnumValues).

Sonst wird sicherlich noch einiges von den anderen kommen. (z.b. Trennung Logik und UI (Console)).

Gruß
Steffen

Thema: Format für Währungen im DataGridView konfigurieren
Am im Forum: GUI: Windows-Forms

Hallo niesel,

ich denke dass es daran liegt dass Du in der Spalte "Preis" einen String ablegst und kein double/decimal... d.h. mach das ".ToString()" weg dann wird es vielleicht funktionieren.

Gruß
steffen

Thema: Erstellen eines reinen Wartedialogs in einem anderen Thread
Am im Forum: GUI: Windows-Forms

Hallo,

vielleicht kannst Du was von einem Splashscreen abschauen, hier ein Beispiel:http://www.codeproject.com/Articles/5454/A-Pretty-Good-Splash-Screen-in-C

Grüße
Steffen

Thema: Fehler Status bei Nutzung von PostAsync() abfangen
Am im Forum: Web-Technologien

Hallo Marcel,

bei einer Async Methode werden im Falle eines Fehlers immer eine AggregateException geworfen. Die eigentliche Ursache steckt aber in der InnerException der AggregateException:

Beispiel ungetestet:


try
{
    loadFromDownloadDirToURL(...);
}
catch (AggregateException ex)
{
    MessageBox.Show(ex.InnerException);
}

D.h. schau mal in die InnerException ob du da mehr Infos rauslesen kannst...

Grüße
Steffen

Thema: Wie kann ich den Inhalt eines FileStreams in Console.WriteLine anzeigen?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

wenn deine gelesenen Bytes einfache ASCII-Zeichen sind, dann so ausgeben:


Console.WriteLine(Encoding.ASCII.GetString(header));

Oder willst Du den Rest von fsSource nach dem Header anzeigen?

Thema: [gelöst] Datatable.NewRow fügt zwei weitere Rows hinzu
Am im Forum: Datentechnologien

Hallo,


datatMiete.Rows.Add(row);

ist überflüssig, meiner Meinung nach, tut "DataRow row = datatMiete.NewRow();" bereits eine leere Row anlegen.

Thema: Daten über serielle Schnittstelle von Arduino!
Am im Forum: GUI: Windows-Forms

Hallo,

wieso gehst Du überhaupt den Umweg über einen Timer?
SerialPort hat doch ein Event "DataReceived" welches ausgelöst wird wenn neue Daten anliegen:https://msdn.microsoft.com/de-de/library/system.io.ports.serialport.datareceived%28v=vs.110%29.aspx
Da gibt es auch ein Beispiel...

Viel Erfolg.

Thema: 6-teiliges Puzzle lösen
Am im Forum: Grafik und Sound

Hallo gigagames,

interessante Aufgabe.
Die Bilder können auch frei gedreht sein?

Ich würde so rangehen:

- Kantenbild (binär) erstellen (z.B. mit Emgu-CV)
- Von jedem Bild den Rand (oben, rechts, unten, links) jeweils als Byte-Array extrahieren
- Nun die Ränder miteinander vergleichen und das best passende finden
- Merke die Bilder die an zwei Seiten keinen Partner haben (Ecken)
- Nun ein Eck-Bild an die erste stelle hinlegen und dann nacheinander alle passenden Bilder positionieren.

Es kann dann natürlich sein dass das zusammengesetzte Bild insgesamt verdreht ist, dass kann man nicht so einfach bestimmen wie rum das Bild gedreht gehört. Wenn aber die Bilder nicht verdreht sein können dann ist es noch einfacher.

Viel Erfolg dabei ;)

Thema: [Gelöst] Server/Datenbank Verbindung in Thread Herstellen und behandeln
Am im Forum: Grundlagen von C#

Hallo,

async/await und OpenAsync:https://msdn.microsoft.com/de-de/library/hh223688%28v=vs.110%29.aspx

und hier noch ein Beispiel:http://code.stonetip.com/2012/10/23/119/

Gruß
Steffen

Thema: WinForms - Label in Array wiederfinden
Am im Forum: GUI: Windows-Forms

Hallo,

es gibt auch eine Möglichkeit den Index im Array abzufragen:


Label[] test = new Label[4];

for (int i = 0; i < test.Length; i++)
{
   test[i] = new Label();
}

int index = Array.IndexOf(test, test[2]);

Thema: Review: Regex-Filter in Textdatei anwenden
Am im Forum: Code-Reviews

Hallo, hier mein Vorschlag (nicht getestet!)


public static void read_grp()
{
    const string Filename = @"C:\tmp\test2.grp";
    string line;
    string newFilename = "test";

    using (StreamReader r = new StreamReader(Filename))
    {
        while (!r.EndOfStream)
        {
            try
            {
                line = r.ReadLine();

                if (string.IsNullOrWhiteSpace(line))
                {
                    // Leerzeile überspringen, nächste Zeile einlesen
                    continue;
                }

                if (line.StartsWith("[") && line.EndsWith("]"))
                {
                    // Gruppennamen als Dateiname verwenden (ohne eckige Klammer)
                    newFilename = line.Substring(1, line.Length - 2);

                    // Ausgabekontrolle neuer Filename
                    Console.WriteLine("Dateiname: " + newFilename);
                }
                else
                {
                    // Abschneiden Reststring nach '|'
                    line = line.Substring(0, line.IndexOf('|'));

                    // Abschneiden von 'Trackxxxx=' am Zeilenanfang // +1 damit auch das '=' gelöscht wird
                    line = line.Substring(line.IndexOf('=') + 1);

                    // Schreibe Zeile in neue Playlist
                    using (StreamWriter sw = File.AppendText(@"c:\tmp\" + newFilename + ".m3u"))
                    {
                        sw.WriteLine(line);
                    }

                    // Console.WriteLine("Dateiname: " + newfilename + Environment.NewLine + "Trackname: " + line); //Ausgabekontrolle
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
    }
}

Thema: Regex-Filter in Textdatei anwenden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo alexpj,

bitte beachte den Punkt 4 unter [Hinweis] Wie poste ich richtig?

Wo hängst Du den?

Eine Schleife hast Du doch schon (wo ReadLine aufgerufen wird). In dieser Schleife einfach vorher die Überschrift matchen, wenn zutreffend dann einen Dateinamen erstellen und gleich den streamwriter öffnen und bei der nächsten iteration die filenamen direkt reinschreiben.

Thema: Dateiinformationen von Bilddateien auslesen
Am im Forum: GUI: Windows-Forms

Hallo,

hier ist es ganz gut beschrieben wie man an die Bild-Metadaten rankommt:https://msdn.microsoft.com/de-de/library/xddt0dz7%28v=vs.110%29.aspx

Wenn das Erstell-Datum immer dem Aufnahmedatum entspricht dann kannst Du es auch nehmen. Dazu einfach eine Instanz von FileInfo erstellen und dann das Datum abfragen.

Viel Erfolg.

Kennst Du FreeFileSync?

Thema: Regex-Filter in Textdatei anwenden
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo alexpj und willkommen im Forum,

ich finde dass Regex hier fehl am Platz ist. Ein einfaches Substring wäre hier besser:


Console.WriteLine(line.Substring(0, line.IndexOf('|')));

Dein Pattern war schon richtig nur hast du die Falsche Methode verwendet:


line = Regex.Match(line, pattern).ToString();

Hier gibt es auch noch einen guten online Regex Tester: https://regex101.com

Gruß
Steffen

Thema: bestimmte Spalten eines DataGridViews verschieben
Am im Forum: GUI: Windows-Forms

Hallo,

hast Du dieses schon probiert?

DataGridViewColumn.DisplayIndex-Eigenschaft

und

DataGridView.ColumnDisplayIndexChanged-Ereignis

Gruß
Steffen