Guten Morgen alle mit einander,
ich bin an einer schleife dran und sie macht einfach nicht das was ich möchte.
Die habe ich mehrmals umgeschrieben und es kommt nie das raus was ich möchte. Wenn ich es einzeln mache geht es wunder aber wenn ich das ganze in er schleife packe Zählt er nicht mehr weiter!
Seht ihr einen fehler
int counter = 0; try {
FileStream fs_lesen = File.OpenRead("C:\Dokumente und Einstellungen\andrae\Eigene Dateien\corinna\OpenHTML\WIS_Benutzerhandbuch.html"); StreamReader sr_lesen = new StreamReader(fs_lesen);
Regex digitregex = new Regex("<H3");//"(?<number>\d+)"); Regex ende = new Regex("###WERT###"); String s = sr_lesen.ReadToEnd(); //"abc 123 def 456 ghi 789";
sr_lesen.Close(); fs_lesen.Close();
MatchCollection mc = digitregex.Matches(s); MatchCollection mc1 = ende.Matches(s);
if (( mc.Count > 0 ) || (mc1.Count > 0)) { //einzel Ausgabe System.Console.WriteLine(mc.Count.ToString()); System.Console.WriteLine(mc1.Count.ToString());
System.Console.WriteLine("anfang: "+ s.IndexOf("<H3")); System.Console.WriteLine("ende: " + s.IndexOf("###WERT###")); System.Windows.Forms.MessageBox.Show("###WERT###");
int h3 = s.IndexOf("<H3"); int h4 = s.IndexOf("###WERT###"); int summe;
summe = h4 - h3; System.Console.WriteLine("Summe: " + summe.ToString()); System.Console.WriteLine(s.Substring(h3,summe));
System.Console.WriteLine("Ziffern:");
int wert; int test; int i = 0;
foreach (Match m in mc) { foreach(Match m1 in mc1) { if(i< mc1.Count) { wert = m.Index; Console.WriteLine("anfang: " + wert); i++; counter = wert;
test = m1.Index; int summe1 = test - counter; Console.WriteLine("ende: " + test); Console.WriteLine("summe: "+ summe1); //Console.WriteLine(s.Substring(counter, summe1)); } } } }
Einzelausgabe:
47 4 anfang: 43964 ende: 44755 Summe: 791
Mehrfachausgabe:
Ziffern: anfang: 43964 ende: 44755 summe: 791 anfang: 43964 ende: 45599 summe: 1635 anfang: 43964 ende: 46145 summe: 2181 anfang: 43964 ende: 46764 summe: 2800
(erzählt einfach nicht den Anfang weiter!)
Was habe ich falsch gemacht?????
Ps. Das ganze ist in c# geschrieben!! aber das seht ihr bestimmt.