Laden...
F
feadur myCSharp.de - Member
Entwickler Bonn Dabei seit 11.03.2005 722 Beiträge
Benutzerbeschreibung

Forenbeiträge von feadur Ingesamt 722 Beiträge

11.03.2008 - 10:33 Uhr

hallo Dr.Z,

den string in einen char array zu konvertieren ist nicht nötig, da strings ja char-weise indexierbar sind.

hallo rzwanziger,

du könntest per RegEx die Zeichen zwischen den Anführungszeichen matchen, z.b. per RegEx.Matches("".+"");

Ich würde allerdings auch mit einem endlichen Automaten arbeiten der einmal über den string läuft und die zeichen extrahiert.

11.03.2008 - 09:29 Uhr

((TextBox)sender).Name

09.03.2008 - 17:07 Uhr

dann werden aber die klammern nicht beachtet =)

09.03.2008 - 17:03 Uhr

Mit VS 2008 Prof. funktioniert es mittlerweile relativ gut muss ich sagen. Verschwindet der Fehler denn nicht wenn du erfolgreich kompiliert hast?

09.03.2008 - 13:49 Uhr

wie lautet denn genau die fehlermeldung und wie schaut die xmlns deklaration aus?

09.03.2008 - 13:46 Uhr

ich will das jeder Text Teil vor Und nach jeder Booleschen Operator
(ob And , OR) In einem Textbox Kommt!

Dann ist String.Split wohl der falsche Ansatz.

Am besten läufst du über den String und schaust per Look-Ahead ob ein OR oder AND kommt.


data.Replace("(","");
data.Replace(")","");

Dieser Code hat keine Auswirkung auf data. Statt dessen solltest du


data = data.Replace("(","");
data = data.Replace(")","");

schreiben.

07.03.2008 - 11:38 Uhr

lad dir mal system.data.sqlite runter, http://sqlite.phxsoftware.com/
da gibt es ein tool "mergebin", mit dem man .Net assemblies und native DLLs zusammenfügen kann.

05.03.2008 - 14:53 Uhr

Dazu genügt ein Blick in die Doku:

http://sqlite.org/faq.html#q7

=)

27.02.2008 - 11:48 Uhr

Hallo herbivore,

danke für deine ausführliche Antwort.
Ich werde es wohl in diesem zweistufigen Prozess machen, da ich ansonsten leider auch keine bessere Möglichkeit gefunden habe.

Möglich wäre noch, einen LL(k) Parser für die Regeln zu generieren. Dass dies dann allerdings performanter ist kann ich mir auch nicht vorstellen.

Viele Grüße,

feadur

25.02.2008 - 09:43 Uhr

Hallo herbivore,

der Algorithmus von Aho und Corasick löst das Problem, mehrere Patterns in einem Text zu finden, in O(n+m) Zeit, wobei n die Länge des Textes und m die Länge der Pattern ist.
Ich gehe deshalb davon aus, dass das entsprechende "Suchen-und-Ersetzen" Problem mit ähnlichem Aufwand lösbar sein muss.

Gruß

22.02.2008 - 18:00 Uhr

Hallo zusammen,

ich habe folgendes Problem:

Angenommen ich habe folgenden String:

aabaadcabd

Jetzt sollen in diesem String folgende Ersetzungen vorgenommen werden:

aab -> A
abaa -> B
ca -> C

Dabei ist zu beachten, dass wenn sich zwei Ersetzungsregeln überlappen, nur der längst-mögliche String erstzt werden soll.
Demnach ergibt sich folgende Ausgabe

aBdCbd

Natürlich ist dies sehr einfach, wenn man jeweils alle Regeln in der Reihenfolge der Länge des Strings abarbeitet. Damit hat man aber im schlechtesten Fall eine O(n * m) Komplexität.
Mein Ziel ist es, dies in linearer Zeit zu erreichen. Dazu war mein erster Ansatz die Implementierung des Automaten von Aho/Corasick. (link Dieser liefert mir aber wirklich ALLE möglichen Matches, inklusive sich überlappender Pattern. Dies macht die Sache nicht wirklich einfacher, da ich mir in einem Dictionary erst die längsten Matches merken muss, und danach mit diesen Informationen nochmal über den String laufen muss.

Kennt jemand einen Pattern Matching Automaten/Transducer, der dieses Problem effizient löst, so dass ich nur einmal über den String laufen muss um eine korrekte Ausgabe zu erhalten?

Für evtl. Tipps und Anregungen wäre ich euch sehr dankbar =)

feadur

//EDIT:
Da ich den Algorithmus später auf Bytes und nicht auf Strings anwenden möchte, hilft mir die .Net RegEx Machine leider nicht weiter =(

20.12.2007 - 10:58 Uhr

Die genannten Bücher sind gut, vor allem das von Frischalowski.
Welches Buch meiner Meinung nach nicht zu empfehlen ist, trotz des legänderen Autors ist:

http://www.amazon.de/Anwendung-Code-Markup-Charles-Petzold/dp/3866454074/ref=pd_bbs_6?ie=UTF8&s=books&qid=1198144577&sr=8-6

17.12.2007 - 17:37 Uhr

wenn du mit "übersetzen" eine kompilierung in IL Code meinst - die findet nicht statt.
XAML wird bei der kompilierung der anwendung mit msbuild in eine binäre repräsentation namens BAML (binary XAML) überführt und dann zur laufzeit von einem parser in einen objektgraphen umgewandelt.

04.12.2007 - 19:53 Uhr

Properties sind z.b. auch eine Notwendigkeit bei Data Binding.

02.12.2007 - 17:38 Uhr

Original von Ghosti
Hab ich irgendwas vergessen??

ja, den CSHARP Tag =)

Siehe zur Lösung des Problems [Hinweis] Syntaxfehler selbst lösen (Compilerfehlermeldungen)

Gruß

30.11.2007 - 00:22 Uhr

Siehe [Hinweis] Wie poste ich richtig? in diversen Punkten.

Wir sind nicht für eure Hausaufgaben zuständig. Bitte stell konkrete Fragen, dann helfen wir gern.

Im übrigen ist dies kein C sondern ein C# Forum.

25.11.2007 - 22:24 Uhr

da XAML ein XML Dialekt ist, würde ja schon ein XML Syntax Highlighting reichen. Das fände ich auch sehr sinnvoll.

23.11.2007 - 14:52 Uhr

Original von ravel
ist aber echt dämlich diese fehlermeldung, da sie eine ganz andere zeile beschreibt und sowieso nichtssagend ist.

Das finde ich nicht, StackOverflowException deutet eigenltich immer auf eine Endlosschleife hin, bzw. wie in deinem Fall Rekursion ohne Anker.

23.11.2007 - 14:40 Uhr

hi,

poste doch mal die ganze Exception.

was machen die InitializeComponent Methoden?

Die Form ist kein Singleton da sie einen öffentlichen Konstruktor hat.

22.11.2007 - 16:31 Uhr

google -> DllImport
=)

22.11.2007 - 16:25 Uhr

ja, du kannst native Funktionen auch in C# nutzen, Stichwort dazu ist DllImport.

22.11.2007 - 16:13 Uhr

wenn das sdk in form einer assembly vorliegt, kannst du es neben vb.net auch in c# verwenden.

22.11.2007 - 16:00 Uhr

geht es denn wenn du die Methode upperLower() entfernst? diese ist nicht CLS konform, die andere aber schon. deshalb versteh ich es jetzt nicht so ganz. wär mal interessant zu wissen.

22.11.2007 - 15:46 Uhr

hallo,

aus & mach && =)

22.11.2007 - 15:41 Uhr

hallo onlinegurke,

ja,

Cannot assign to 'x' because it is a 'foreach iteration variable'

22.11.2007 - 15:33 Uhr

naja, es ist im dem sinne syntaktisch nicht i.o, weil dieser code nicht compiliert werden kann =)
//edit: wobei man dann ehr sagen muss, dass es semantisch nicht ok ist. wie auch immer.

22.11.2007 - 15:24 Uhr

hallo nin,

die erste Variante funktioniert nicht, da foreach argumente schreibgeschützt sind. x kann also in der schleife kein wert zugewiesen werden.

20.11.2007 - 11:05 Uhr

Substring ist eine Methode der Klasse String und hat rein gar nichts mit Windows Forms zutun.
Bitte schau sowas in einem Buch nach,
z.b. http://www.galileocomputing.de/openbook/csharp/

20.11.2007 - 11:00 Uhr

hi,

für .Net 3.0 gibt es noch keine zertifikationen soweit ich weiss.

es spricht nichts dagegen sich .net 3.0 selbst beizubringen, wobei das auch kein problem sein sollte wenn du bereits erfahrungen mit 1.1/2.0 hast.

ich liebäugle auch mit einer MS zertifikation, weiss nur nich ob sich das für den bereich .net 2.0, windows forms noch lohnt.

was meinen die anderen?

gruß

20.11.2007 - 10:38 Uhr

oder du sellst für jeden typen einen TypeConverter bereit, der diese umwandlungen übernimmt. Schau dir mal TypeDescriptor.GetConverter an.

20.11.2007 - 10:16 Uhr

ich denke internal ist äußerst wichtig bei der entwicklung von klassenbibliotheken. dort gibt es klassen, die für den endbenutzer als public markiert sind und klassen, die als hilfsklassen internal markiert sind, um die sichtbarkeit auf das assembly einzuschränken.
wenn eine klassenbibliothek dann auch noch über mehrere assemblies verteilt wird (vielleicht, da sie von mehreren teams entwickelt wird), kann man die internen klassen dem jeweils anderen assembly mittels [InternalsVisibleTo] sichtbar machen.
von daher hat internal sehr wohl eine daseinsberechtigung.

19.11.2007 - 16:32 Uhr

hallo norman_timo,

es soll, wie du schon sagtest, nur die Problematik aufzeigen, dass man mit Monitor.Enter (bzw. lock) in den Besitz einer Sperre kommen kann (in Main).

Der Teil mit der Finalizer Methode dient nur zu Demonstrationszwecken.

Da der GarbageCollector in einem eigenen Thread operiert und von dort aus auf die Finalizer Methode zugreift, befindet dieser sich in einem Deadlock. Denn in Main wurde ja die Sperre für mc zuvor schon vom Hauptthread der Anwendung übernommen.

Deshalb hat dieses Beispiel eigentlich nichts mit der Frage nach Sinn und Unsinn von Destruktoren zutun.

Gruß

19.11.2007 - 15:39 Uhr

hallo zusammen,

hier ein interessantes beispiel dazu aus dem buch "CLR via C#" von J. Richter.


class MyClass
    {
        Object syncObj = new object(); 

        ~MyClass()
        {
            lock (this)
            {
            }
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            MyClass mc = new MyClass();

            Monitor.Enter(mc);

            mc = null;

            // Garbage Collection erzwingen
            GC.Collect();
            GC.WaitForPendingFinalizers();

            Console.Write("Hier kommen wir nur an bei lock(syncObj) in ~MyClass");
            Console.ReadKey(); 
        }
    }

ich finde das demonstriert eigentlich recht gut, warum man besser auf lock(this) verzichten sollte.

18.11.2007 - 22:13 Uhr

hallo zusammen,

wie kann ich dem property denn dann in der klasse die es definiert, einen wert zuweisen, wenn ich den setter entferne?

also sowas wie



class MyClass
{
 public int Zahl { get; }

 public MyClass()
 {
    Zahl = 2; // Das geht nicht...
 } 
}


falls es keinen zugriff auf das private feld gibt, dürfte das ja gar nicht funktionieren, oder? Ich nehme also mal an, dass man bei automatischen Properties den setter nicht entfernen darf?

gruß

16.11.2007 - 11:18 Uhr

du könntest IClonable für Datensatz implementieren und dann sowas schreiben


ArrayList list = new ArrayList();
Datensatz daten = new Datensatz();
for (int i = 0; i < 10; i++)
{
   daten = daten.Clone(); 
   daten.x =  i;

   list.Add(daten);
}

Übrigens würd ich statt ArrayList List<Datensatz> nehmen.

12.11.2007 - 21:14 Uhr

ich vermute mal, dass du das mit den booleschen werten noch nicht ganz verstanden hast, deshalb schau dir mal

[Tipp] Anfängerfehler == true / == false

an.

gruß

07.10.2007 - 14:40 Uhr

CAmpel.nextState erwartet System.Timers.Timer, du übergibst aber System.Windows.Forms.Timer.

Bitte verwende die C# Code Tags, dann wird das ganze um einiges übersichtlicher.
(Siehe [Hinweis] Wie poste ich richtig?)

27.09.2007 - 13:42 Uhr

eigentlich nur in xaml statt "StaticResource" "DynamicResource" schreiben.

24.09.2007 - 21:57 Uhr

Coco\R für LL(1) Parser, ATLR für LL(n)

28.08.2007 - 12:00 Uhr

Wo ist denn da genau dein Problem??
Als Beispiel ein Style für eine TextBox:


            TextBox box = new TextBox();
            box.Text = "Test"; 
            Style style = new Style();

            Setter setter = new Setter();
            setter.Property = TextBox.BackgroundProperty;
            setter.Value = new SolidColorBrush(Colors.Red);
            style.Setters.Add(setter);

            box.Style = style;

            Grid1.Children.Add(box); 

27.08.2007 - 17:58 Uhr

dann hast du wohl den "alten" Stack verwendet, also müsstest du


Klammer aktuell = (Klammer) stack.Pop() 

schreiben.

Besser wäre es wenn du Stack<Klammer> nimmst.

27.08.2007 - 17:09 Uhr

Eigentlich musst du nur ein Style Objekt erstellen und dieses einer entsprechenden Style Eigenschaft zuweisen... =)
Wie hast du es denn versucht? Code?

27.08.2007 - 10:34 Uhr

Hi,
warum ruft du das neue Fenster nicht einfach mittels Window.ShowDialog auf? Dann erstellst du noch eine neue Methode um die Liste der Daten zu übergeben, die angezeigt werden soll.

26.08.2007 - 14:52 Uhr

also diese frage kann ja jetzt nicht dein Ernst sein... =)
bitte schau dazu mal in die msdn dokumentation.

26.08.2007 - 14:45 Uhr

File.AppendText

24.08.2007 - 21:01 Uhr

wie erstellst du diese instanzen denn?

13.08.2007 - 02:31 Uhr

trotzdem existiert ja ein Property WebBrowser.Tag, ist aber evtl. eben null. =)