Auf dieser Seite befinden sich alle Parsing-Fragen.
Weitere Themen findest du mit der Suche rechts oben, z.B. [parsing] Suchwort um alle Fragen
zum Thema parsing mit dem Wort "Suchwort" zu finden.
Hallo, ich lese Zeichenketten aus einem Dokument ein, wo die Raute als Trenner zwischen Mehrfacheinträgen steht. Die Einzelzeichenketten sollen dann in Integer konvertiert werden und in eine List int gepackt werden. Das Prinzip ist klar, ich suche jetzt aber eine schönere Lösung. Bisher: string[] strings src[11].ToString().Split('#'); for(int i 0; i strings.Length; i ) { ...
res.FixedProcessTime.AddRange( strSource.Split('#').ToList().ConvertAll int (s int.Parse(s)).ToArray() );
Wie kann ich die kompliziertere Kommandozeilen parsen? Die Main-Methode bekommt ja ein string[] der übergebenen Argumente, aber was damit z.B. nicht geht ist: programm.exe modus /option /option2 123 Gibt es dafür eine Bibliothek, die das für einen parst? Wenn nein, wie konstruiere ich meinen eigenen Parser für Kommandozeilenoptionen so wie in dem Beispiel?
Ich habe einen Parser für Formeln wie (1 2)*3 geschrieben. Der Parser erzeugt einen Parse-Tree wie in diesem Fall new Mul(new Add(new Const(1), new Const(2)), new Const(3)) Ich habe den Parser jetzt für einige Fälle mit Unit Tests geprüft, ich stelle aber immer wieder weitere Fälle fest, die mir noch nicht eingefallen waren, die aber Fehler enthalten. Wie gehe ich am besten vor, ...
... void TestValidResult(string input) { try { var ast Parser.Parse(input); Assert.IsNotNull(ast); } catch (Parsing Exception) { } catch (Exception) { Assert.Fail(); } } Dieser Test testet, das für alle inputs gilt: Entweder wird ein Syntaxbaum geparst oder es gibt eine Parsing -Exception (aber keine NullReferenceException z.B.). Das geniale ist jetzt, dass Pex den Test für ...
codekicker.de ist eine deutschsprachige Q&A-Plattform zum Thema Programmieren. Von Entwicklern für Entwickler! Mitmachen ist ganz einfach: Stelle oder beantworte eine Frage.
Stelle eine Frage
Registriere dich
Wenn Du deinen Benutzernamen in Besitz nehmen möchtest, solltest Du dich registrieren: