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 rollerfreak2
Thema: Thread Problem Progressbar updated sich nicht.
Am im Forum: GUI: Windows-Forms

Das wäre eine Option, m.E. auch die letzte. Ich habe es trotzdem so gelöst wie oben beschrieben, daher die Progressbar.Maxmium auf 3 gesetzt und nach jedem Schritt wird das Value inkrementiert. Das funktioniert auch, da dort ja ClearCase kurze zeit lang nicht aktiv ist. Von daher ist das so akzeptabel, da der User ja nur mitbekommen soll das sich was tut :-)

Thema: Thread Problem Progressbar updated sich nicht.
Am im Forum: GUI: Windows-Forms

Mir ist zumindest nichts bekannt, deswegen frage ich ja hier. Na gut dann werde ich es wohl so machen müssen das ich den Progressbar auf 3 Stelle. Auschecken, manipulieren, und einchecken. Nur weil das aus und ein checken deutlich länger dauert als der manipulation, wollt ich einfach einen animierten Progressbar machen.

Wenn einer noch eine Idee hat, dann bitte posten.

Thema: Thread Problem Progressbar updated sich nicht.
Am im Forum: GUI: Windows-Forms

Mit dem dreckstool stimme ich dir zu. Also meinst du auch das es einfach an der Performance liegt, und nicht daran das die CAL via COM interagiert und daher der GUI Thread nicht richtig bearbeitet wird? Weil im Studio zum Beispiel wird der progressbar auch aktuallisiert wenn man mehrere Files auscheckt.

Thema: Thread Problem Progressbar updated sich nicht.
Am im Forum: GUI: Windows-Forms

Hallo zusammen ich habe folgendes Problem. Ich muss eine Datei manipulieren die unter SourceControl (Rational ClearCase) steht. Dazu gibt es eine Library CAL mit Hilfe dieser es relativ einfach ist. Man kann durch die Library das ClearTool wie in der Comandozeile bedienen. Daher ist das ein und auschecken kein Problem.

Jetzt zum eigentlichen Problem.
Während dieses Vorganges schalte ich ein Progressbar auf Style = ProgressBarStyle.Marquee! Danach starte ich eine Thread der das ein und auschecken übernimmt. Kleines Beispiel.


private void StartSavingProgress()
{
    for (int i = 0; i < 100000; i++)
    {
        for (int j = 0; j < 100000; j++)
        {
             //nothing
        }
    }
}

public void Main()
{
    this.m_thread = new Thread(new ThreadStart(this.StartSavingProgress));
    this.m_progressBar.MarqueeAnimationSpeed = 20;
    this.m_progressBar.Style = ProgressBarStyle.Marquee;
    this.m_thread.Start();
}

Dort funkioniert das alles bestens, daher auch wenn ich mich im Thread befinde wird die Progressbar ordentlich animiert.

Nun mein Problem.


private void StartSavingProgress()
{
    CC.ClearCaseHelper.CheckOut("filepath");
    ...
    CC.ClearCaseHelper.CheckIn("filepath");
}

Jetzt wird die Progressbar jedoch nicht mehr korrekt animiert, sie hängt und wird nur sehr unregelmäßig geupdatet. Ich versteh das ganze nicht richtig, da ich doch den CheckOut/CheckIn Prozess in einen eigenen Thread ausgelagert habe.

Weiß einer von euch Rat?

Thema: Einfügen in RichTextBox(Text oder RTF Format)
Am im Forum: GUI: Windows-Forms

Jetzt versteh ich gar nix mehr. Was genau ist dein Problem?
Wenn du den formatierten Text haben möchtest dann nimm halt die RTF Property. Wenn du den "Text" haben möchtest dann nimm die Text Property. Und wenn du den Text formatieren möchtets dann nimm SelectAll() und änder die SelectionXXX Properties.

Thema: Einfügen in RichTextBox(Text oder RTF Format)
Am im Forum: GUI: Windows-Forms

Eine möglichkeit wäre das du via SelectAll() alles selektierst, und dann SelectionFont SelectionBackColor, SelectionForeColor etc. den Text so anpasst das er kein Steuerzeichen mehr enthält.

Im übrigen wenn du auf die Text-Property zu greifst, dann steht doch dort immer nur der Text drin, ist doch vom Typ String, oder irre ich mich da?

Thema: Einfügen in RichTextBox(Text oder RTF Format)
Am im Forum: GUI: Windows-Forms

Der "normale" Text hängt doch an der Text-Property der RichTextBox...

Thema: OnPaint wird nicht gecalled
Am im Forum: Grafik und Sound

Kleine Anmerkung. Ich habs bei mir mal ausprobiert und es geht ohne Probleme.

Thema: OnPaint wird nicht gecalled
Am im Forum: Grafik und Sound

Ein vorschlag, kommentier mal alles überflüssige aus. Und dann schritt für schritt wieder ein, so findest du das am schnellsten. Und deine underscores am Anfang einer variable finde ich persönlich schrecklich.

Thema: RichTextBoxen synchron scrollen
Am im Forum: GUI: Windows-Forms

Danke JBuechner,

das funktioniert ja bestens.

Thema: RichTextBoxen synchron scrollen
Am im Forum: GUI: Windows-Forms

Hallo zusammen,

ich hab dies hier im Forum gefunden und könnte das sehr gut gebrauchen. Leider funzt das nicht richtig.

Und zwar hab ich 2 richTextBox Controls nebeneinander. Beide enthalten den selben Text. Wenn ich nun die Scrollbar betätige und dann wieder los lasse, dann wird auch die Scrollbar der rechten Seite korrekt gesetzt, daher hat sie die selbe Position, leider stimmt aber der Inhalt nicht mehr, daher müsste die obere Zeile der linken Seite ja genau der rechten Seite entsprechen. Selbst wenn es ein offset von einer Zeile wäre, würde mich das nicht stören, allerdings weicht das immer vollkommen ab, daher stimmt die anzeige der scrollbar zwar aber der angezeigte Inhalt nicht mehr.

Bewegt man danach die Scrollbar der rechten richTextBox dann synchronisiert sich der Inhalt wieder.

Weiß einer von euch woran das liegt, bzw wie man das beheben kann?

Thema: Mehrfache Wiederholungen eines Zeichens durch *ein* anderes Zeichen ersetzen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das ist allerdings wahr das der Lookahead überflüssig ist, aber jetzt weiß RipperMac gleich was ein negativer Lookahead ist... :-)

Thema: Mehrfache Wiederholungen eines Zeichens durch *ein* anderes Zeichen ersetzen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo RipperMac,

das seh ich auch so wie JAck30lena. Ein deutlich besserer weg ist das mit Regex zu lösen. Ich helf dir mal ein bisschen auf die Sprünge.

(?<!k)k{1,} Dieser regex Ausdruck findet alle k's die aufeinanderfolgen ohne das ein k folgt. Daher genau das was du willst. Man nennt das negativer Lookbehind,

sdfksdfksdfkksdfkkkksdfk

Und am Regex Object gibt es eine Replace Methode, die kannst du dir ja mal anschauen ;-)

Thema: String Vergleich mit größt Möglichen Muster
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Falls es noch jemand gebrauchen kann, hier mal ein mögliche Lösung:


public static int[,] GetLongestCommonSubsequenceMatrix(string s1, string s2)
{
    int[,] lcsMatrix = new int[s1.Length + 1, s2.Length + 1];
    char letter1, letter2;

    for (int i = s1.Length - 1; i ≥ 0; i--)
    {
        for (int j = s2.Length - 1; j ≥ 0; j--)
        {
            letter1 = s1[i];
            letter2 = s2[j];

            if (letter1 == letter2)
            {
                if ((i == s1.Length - 1) || (j == s2.Length - 1))
                    lcsMatrix[i, j] = 1;
                else
                    lcsMatrix[i, j] = 1 + lcsMatrix[i + 1, j + 1];
            }
            else
            {
                if ((i == s1.Length - 1) && (j == s2.Length - 1))
                    lcsMatrix[i, j] = 0;
                else if ((i == s1.Length - 1) && !(j == s2.Length - 1))
                    lcsMatrix[i, j] = Math.Max(0, lcsMatrix[i, j + 1]);
                else if (!(i == s1.Length - 1) && (j == s2.Length - 1))
                    lcsMatrix[i, j] = Math.Max(lcsMatrix[i + 1, j], 0);
                else if (!(i == s1.Length - 1) && !(j == s2.Length - 1))
                    lcsMatrix[i, j] = Math.Max(lcsMatrix[i + 1, j], lcsMatrix[i, j + 1]);
            }
        }
    }

    return lcsMatrix;
}

public static double GetDiffTreeFromBacktrackMatrix(int[,] arr, string s1, string s2)
{
    int x = 0, y = 0;
    while (x < s1.Length && y < s2.Length)
    {
        if (s1[x] == s2[y])
        {
            Console.WriteLine(string.Format("  {0}", s1[x]));
            x++;
            y++;
        }
        else if (arr[x, y + 1] > arr[x + 1, y])
        {
            Console.WriteLine(string.Format("- {0}", s2[y]));
            y++;
        }
        else
        {
            Console.WriteLine(string.Format("+ {0}", s1[x]));
            x++;
        }
    }
    if (x < s1.Length)
    { 
        for (int i = x; i < s1.Length; i++)
        {
            Console.WriteLine(string.Format("+ {0}", s1[i]));
        }
    }
    else if (y < s2.Length)
    {
        for (int j = y; j < s2.Length; j++)
        {
            Console.WriteLine(string.Format("- {0}", s2[j]));
        }
    }

    return (double)count / Math.Max(s1.Length, s2.Length) * 100;
}


//caller
public int Main()
{
    int[,] arr = GetLongestCommonSubsequenceMatrix(s1, s2);
    double d = GetDiffTreeFromBacktrackMatrix(arr, s1, s2);
}

Thema: String Vergleich mit größt Möglichen Muster
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo herbivore,

es geht nicht darum das ihr den Fehler sucht, sondern das Ihr mir bestätigt das der Algorithmus das 'c' einmal als fehlend im string s1 und einmal als zuviel im string s2 korrekt berechnet, bzw. das dies nicht der Fall sein sollte.

Edit: Das hat mir sehr geholfen den Algorithmus zu verstehen.

Thema: String Vergleich mit größt Möglichen Muster
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Eigentlich sollte der Longest common subsequence algorithmus auch gehen, nur irgendwie liefert die nicht die richtigen Ergebnisse.


public void GetDiffTreeFromBacktrackMatrix(int[,] lcsMatrix, string s1, string s2, int i, int j)
{
    if (i > 0 && j > 0 && s1[i - 1] == s2[j - 1])
    {
        GetDiffTreeFromBacktrackMatrix(lcsMatrix, s1, s2, i - 1, j - 1);
        Console.WriteLine("  " + s1[i - 1]);
    }
    else
    {
        if (j > 0 && (i == 0 || lcsMatrix[i, j - 1] ≥ lcsMatrix[i - 1, j]))
        {
            GetDiffTreeFromBacktrackMatrix(lcsMatrix, s1, s2, i, j - 1);
            Console.WriteLine("+ " + s2[j - 1]);
        }
        else if (i > 0 && (j == 0 || lcsMatrix[i, j - 1] < lcsMatrix[i - 1, j]))
        {
            GetDiffTreeFromBacktrackMatrix(lcsMatrix, s1, s2, i - 1, j);
            Console.WriteLine("- " + s1[i - 1]);
        }
    }
}


public static int[,] GetLongestCommonSubsequenceMatrix(string s1, string s2)
{
    int[,] lcsMatrix = new int[s1.Length, s2.Length];
    char letter1, letter2;

    for (int i = 0; i < s1.Length; i++)
    {
        for (int j = 0; j < s2.Length; j++)
        {
            letter1 = s1[i];
            letter2 = s2[j];

            if (letter1 == letter2)
            {
                if ((i == 0) || (j == 0))
                    lcsMatrix[i, j] = 1;
                else
                    lcsMatrix[i, j] = 1 + lcsMatrix[i - 1, j - 1];
            }
            else
            {
                if ((i == 0) && (j == 0))
                    lcsMatrix[i, j] = 0;
                else if ((i == 0) && !(j == 0))
                    lcsMatrix[i, j] = Math.Max(0, lcsMatrix[i, j - 1]);
                else if (!(i == 0) && (j == 0))
                    lcsMatrix[i, j] = Math.Max(lcsMatrix[i - 1, j], 0);
                else if (!(i == 0) && !(j == 0))
                    lcsMatrix[i, j] = Math.Max(lcsMatrix[i - 1, j], lcsMatrix[i, j - 1]);
            }
        }
    }

    return lcsMatrix;
}


//call

string s1 = "ich weiß e nicht genau";
string s2 = "ich weiß es nict genau";
  
GetDiffTreeFromBacktrackMatrix(GetLongestCommonSubsequenceMatrix(s1, s2), s1, s2, s1.Length, s2.Length);



Ich möchte hier als Ergebniss nur haben (s) zuwenig, (h) zuviel. Aber das Ergebniss lautet +s -c -h +c. Aber das c kommt doch in beiden vor, das soll gar nicht mit matchen. Anscheinend steig ich noch nicht richtig hinter den Algorihtmus. Ein weiteres Problem ist das wenn die Strings beide unterschiedliche längen haben, und das letzte Zeichen nicht überein stimmt dann gibt es ein index out auf bounds exception lcsMatrix[i - 1, j] weil ja j ein zu groß ist. Ich muss gestehen ich habe den Algo von hier.

Weiß einer von euch meinen Fehler?

Thema: String Vergleich mit größt Möglichen Muster
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Das ist natürlich eine gute Idee, ich werd das mal probieren.

Thema: String Vergleich mit größt Möglichen Muster
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ja soweit so gut, das problem nur ist das es in beide Richtungen gehen muss, daher es gibt strings die sind in s1 und in s2 nicht und andersrum. Irgendwie hab ich da eine denkblockade

Thema: String Vergleich mit größt Möglichen Muster
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo ich benötige einen kleinen Tipp bezüglich eines Algorithmus den es sicher schon gibt.

Ich möchte 2 Zeichenketten nach einem Muster überprüfen. ein Beispiel soll dies verdeutlichen:

string s1 = "tokenblakroneiikkpdp"
string s2 = "tokenbkroniikkAutopdp"

Raus kommen soll nun folgendes. Das im string 2 das "la" fehlt, sowie das "e" bei krone, sowie das Auto zuviel drin ist. Daher einfach eine Liste mit z.B. Point Objekten, mit index und Length.

Gibt es dafür schon was fertiges was man nur noch anpassen muss?

Thema: Assembly Attribute um Runtime Assembly zu bestimmen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ok habs grad gefunden.


object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false);

if (attributes.Length == 0)
    return "";

return ((AssemblyProductAttribute)attributes[0]).Product;

Thema: Assembly Attribute um Runtime Assembly zu bestimmen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Cool das mit doch schon mal eine halbwegs gute Lösung. Kannst du mir noch kurz sagen wo die Property dran klebt, sonst muss ich wieder mit dem Reflector so lange suchen :-)

Thema: Assembly Attribute um Runtime Assembly zu bestimmen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Ich meine eine CLR dll also eine DLL die zur Runtime gehört, nicht eine DLL die mit .NET übersetzt wurde. Zum Beispiel die System.dll

Nicht das ich mich irre, aber das ist doch eine CLR der .NET Runtime?

Thema: Assembly Attribute um Runtime Assembly zu bestimmen
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo zusammen,

gibt es eine Möglichkeit anhand einer Assembly festzustellen ob sie eine Runtime Assembly ist, daher zur .NET Runtime gehört? Mit dem GAC geht es leider nicht, da ja auch ganz normale Assebmlies dort referenziert sein können.

Thema: Suche Control um TreeView als Grid darzustellen
Am im Forum: GUI: Windows-Forms

Das war auch meine erste Idee, aber gibt es sowas nicht schon fertig?

Thema: Suche Control um TreeView als Grid darzustellen
Am im Forum: GUI: Windows-Forms

Ich suche ein Control das wie ein Grid funktioniert, jedoch auf der ersten Spalte ein Treeview darstellt. Die weiteren Spalten enthalten dann die Daten zu den aufgeklappten knoten und Elementen. Es gibt sowas sicher schon, ich weiß nur nicht nach was ich suchen muss :-(

Kann mir jemand helfen?

Thema: Unbenutzten Code finden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo ich bins noch mal. ICh hab ein kleines Problem bezüglich dem was golo vor hatte. Ich hab mir mal eine Regel geschrieben die mir alle Methoden anzeigt welche keinen "caller" haben. In der public override ProblemCollection Check(Member member) check ich ob dort eine methode als member übergeben wird. Wenn ja wie kann ich jetzt prüfen ob im gesamten Code diese Methode nun gecalled wird oder nicht?

Thema: Unbenutzten Code finden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Salute Peter und Golo,

und besten Dank

Thema: Unbenutzten Code finden
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

@Golo Roden
kennst du ein gutes Turorial um mal eine FxCop regel selber zu schreiben? bzw. kannst du die regel die du für das nicht aufrufen der Methoden definieriert hast hier veröffentlichen?

Thema: Suche Tool, das für EXE/DLL die benötigte .Net Versions ermittelt
Am im Forum: Entwicklungs- und Laufzeitumgebung (Infrastruktur)

Hallo zusammen,

ich suche ein Tool dem ich eine .NET Assembly (exe,dll) in die Hand drücken kann, und es mir sagt welche .NET Version ich zum ausführen brauche. Gibt es sowas schon, oder muss ich jede Reference einzelln durch gehen?

Problem ist nämlich wenn die besagt Assembly wieder eine refernce hat auf eine andere Assembly die Ihrerseits eine System.dll in V3.5 nutzt braucht, aber die eigentlich Assembly nur 2.0. Das ganze kann man noch weiter spinnen...

Wenn es kein Tool gibt, weiß einer von euch wie ich das schnell überprüfen kann?

Thema: MenuItem Icon zuweisen
Am im Forum: GUI: Windows-Forms

Das standard MenüItem hat keine Icon Property. Daher musst du selber dafür sorgen. Leite dich also von MenuItem ab und füge eine solche Property hinzu. Dann musst du das OwnerDraw Flag noch setzen und im OnPaint den Content selber zeichnen.

Ich hab sowas schon mal gebastelt, ich schau mal ob ichs finde...