// create XmlDocument XmlDocument doc = new XmlDocument(); try { // ignore xml doctype + header
train_list.Add(ti.Number+" "+ti.Type, ti); if (ti.ti2 != null) train_list.Add(ti.ti2.Number+" "+ti.ti2.Type, ti.ti2); } catch(Exception){}; } } public void PrevEntry() { try { Entry e = null; int help = (int)route.Position; do { if ((help == 0) || (route.Entrys.Count <= 0) || route.Position < 0) { return; } e = (Entry)route.Entrys[help-1]; if (e.m_type == EntryType.OPS_MARKER && e.m_ops_name != "") { marker = e; route.Position = (long)help - 1; // TODO while(route.Position - (long)route.Offset < 0 ) { PrevPage(); } return; } else { help--;
} public void NextEntry() { NextEntry(true); } public void NextEntry(bool only_timed_entries) { try { if (route.Entrys.Count < 1) return; Entry e = null; do { if ((int)route.Position >= route.Entrys.Count-1) { if ((int)route.Position == route.Entrys.Count-1) { marker = (Entry)route.Entrys[(int)route.Position]; } break; } e = (Entry)route.Entrys[(int)route.Position+1]; if (/*e.m_type == EntryType.OPS_MARKER && e.m_ops_name != "" &&*/ ((e.m_etd != "" || !only_timed_entries) || e.m_eta != "" )) { route.Position++; marker = e; int counter = 0; // now 11 instead of 12 while(route.Position - (long)route.Offset >= 03 ) { if (counter > 10) { //MessageBox.Show("Next Page lief mehr als 10 mal?"); break; } counter++; NextPage_Buttom(); } return; } else { route.Position++;
} public bool LoadTrain(string number) { return false; } public void LoadTrainDEBUG() { char c = new char(); gnt = false; route = new Route("3313", "ab Saarbrücken Hbf 14.12.03 - 12.06.04 (Sa) (außer 25.12.03, 26.12.03, 31.12.03, 01.01.04, 10.02.04, 01.05.04, 26.05.04, 27.05.04)"); Entry e1 = new Entry(EntryType.RADIO_MARKER, "141,9", "60", "60", "- ZF A 66 -", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "141,9", "", "", "Bft Saarbrücken Hbf", "", "13:04", '0', "13:04", '0'); route.Entrys.Add(e1); /*marker = e1; route.Position = 1;*/ marker = null; route.Position = -1; gnt = true; e1 = new Entry(EntryType.OPS_MARKER, "141,8", "", "", "Asig", "A60", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "140,8", "", "", "Abzw Saarbrücken Hbf Srg", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.GNT_BEGINNING, "140,6", "90", "120", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "138,4", "110", "", "Jägersfreude Hp", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "137,1", "", "", "Esig", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "136,3", "", "", "Dudweiler", "", "", c, "", c); route.Entrys.Add(e1); //e1 = new Entry(EntryType.OPS_MARKER, "136,0", "90", "", "", "", "", c, "", c); //route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "135,9", "", "", "Asig", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "133,9", "", "", "Esig", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "133,8", "", "100", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "133,6", "110", "120", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "133,1", "", "", "Sulzbach (Saar)", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "132,9", "", "", "Asig", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "130,9", "", "", "Sulzbach (Saar) Altenwald Hp", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "130,3", "", "", "Esig", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "129,6", "", "", "Friedrichsthal (Saar)", "", "", c, "", c); route.Entrys.Add(e1); //e1 = new Entry(EntryType.OPS_MARKER, "129,4", "90", "", "", "", "", c, "", c); //route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "129,2", "", "", "Asig", "A50", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "128,8", "", "130", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "128,7", "", "", "Friedr. Mitte Hp", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.TUNNEL_BEGINNING, "128,4", "", "", "Bildstock-T", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "128,2", "", "", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.POSITION_JUMP, "+0,3", "", "", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.TUNNEL_ENDING, "127,9", "", "", "", "", "", c, "", c); route.Entrys.Add(e1); //e1 = new Entry(EntryType.OPS_MARKER, "127,8", "100", "", "", "", "", c, "", c); //route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "127,5", "", "", "Bildstock Hp", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "125,9", "", "", "Esig", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "125,6", "", "120", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "124,9", "", "", "Landsweiler-Reden", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "124,5", "", "", "Asig", "A50", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "123,4", "", "", "Esig", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "122,0", "", "", "Abzw Neunkirchen", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "", "", "", "(Saar) Hbf", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "121,8", "", "", "Zsig", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "121,8", "70", "70", "Zsig", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "120,8", "", "80", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.RADIO_MARKER, "120,6", "", "", "- ZF A 73 -", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "120,6", "", "", "Neunkirchen", "", "13:18", '0', "13:19", '0'); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "", "", "", "(Saar) Hbf", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "120,5", "", "", "Asig", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "120,2", "90", "120", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "118,5", "", "", "Wiebelskirchen Hp", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "115,7", "", "", "Esig", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "114,8", "", "", "Ottweiler (Saar)", "", "13:23", '0', "13:23", '5'); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "114,6", "", "", "Asig", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "114,5", "", "100", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "114,3", "", "120", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "113,9", "100", "130", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "111,6", "", "", "Sbk 34", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "113,3", "110", "140", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "113,2", "", "", "Niederlinxweiler Hp", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "106,8", "", "", "Oberlinxweiler Hp", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "107,6", "", "", "Esig", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "106,3", "", "", "St Wendel", "", "13:29", '0', "13:30", '0'); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "106,2", "90", "130", "Asig", "", "", c, "", c); route.Entrys.Add(e1); //e1 = new Entry(EntryType.OPS_MARKER, "105,7", "100", "", "", "", "", c, "", c); //route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "103,1", "", "100", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "103,0", "", "", "Baltersweiler Hp", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "103,0", "", "", "Sbk 30", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "102,5", "", "110", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "101,9", "", "", "El 1", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "101,8", "", "", "El 2", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "100,9", "", "", "Hofeld Hp", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "99,0", "", "", "Sbk 28", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "98,8", "", "", "Namborn Hp", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "97,0", "", "100", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "96,4", "110", "120", "", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "96,0", "", "", "Sbk 26", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "94,4", "", "", "Walhausen (Saar) Hp", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "92,5", "80", "90", "Esig", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "91,9", "", "100", "", "", "", c, "", c); route.Entrys.Add(e1); //e1 = new Entry(EntryType.OPS_MARKER, "91,8", "90", "", "", "", "", c, "", c); //route.Entrys.Add(e1); e1 = new Entry(EntryType.RADIO_MARKER, "91,8", "", "", "- ZF A 78 -", "", "", c, "", c); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "91,8", "", "", "Türkismühle", "", "13:39", '0', "13:39", '5'); route.Entrys.Add(e1); e1 = new Entry(EntryType.OPS_MARKER, "91,3", "", "", "Asig", "", "", c, "", c); route.Entrys.Add(e1);
catch (Exception e) { // Let the user know what went wrong. System.Windows.Forms.MessageBox.Show("Zusi Fahrplan nicht gefunden oder Fehler beim Lesen! ("+e.Message.ToString()+")"); } } private string ReadEntry(string strg, EntryPos where, Entry entry, char until) { string help = strg; string jump = ""; foreach(char c in strg) { if (char.IsControl(c) || c == until) { help = help.Remove(0,1); if (where == EntryPos.ETD) { if (c == '@') { entry.isJump = true; return help; } if (c == until) return help; } else { return help; } } else { switch (where) { case EntryPos.POS_STD: entry.m_position += c.ToString(); break; case EntryPos.POS_GNT: entry.m_gnt_speed += c.ToString(); // gnt_speed is ok break; case EntryPos.SPEED_STD: entry.m_speed += c.ToString(); break; case EntryPos.SPEED_GNT: entry.m_gnt_speed += c.ToString(); break; case EntryPos.OPS_NAME: entry.m_ops_name += c.ToString(); break; case EntryPos.OPS_APP: entry.m_ops_speed += c.ToString(); break; case EntryPos.POS: entry.m_position += c.ToString(); break; case EntryPos.ETA: if (c.ToString() == ".") { entry.m_eta += ":"; } else { entry.m_eta += c.ToString(); } break; case EntryPos.ETD: if (c.ToString() == ".") { entry.m_etd += ":"; } else { entry.m_etd += c.ToString(); } break; case EntryPos.SL: if (c == '2') { entry.zack = 2; } else if (c == '1') { entry.zack = 1; } else { entry.zack = 0; } break;
i--; } } } } private void ParseFile(string filename) { try { string lastline = "<EMPTY>"; // Create an instance of StreamReader to read from a file. // The using statement also closes the StreamReader. using (StreamReader sr = new StreamReader(filename, System.Text.Encoding.UTF7)) { String line = ""; // Read and display lines from the file until the end of // the file is reached. while ((line = sr.ReadLine()) != null) { bool isjump = false; Entry entry; string[] line_elements; if (lastline == "<EMPTY>") { // erste zeile lastline = line; line_elements = line.Split(("\t").ToCharArray(), int.MaxValue); if (line_elements[0] == "") entry = new Entry(EntryType.OPS_MARKER, line_elements[5], line_elements[1], line_elements[3], line_elements[4], "", line_elements[6], new char(), line_elements[7], new char()); else entry = new Entry(EntryType.OPS_MARKER, line_elements[0], line_elements[1], line_elements[3], line_elements[4], "", line_elements[6], new char(), line_elements[7], new char()); try { entry.zack = Convert.ToInt32(line_elements[8]); } catch (Exception) {} route.Entrys.Add(entry); continue; } line_elements = line.Split(("\t").ToCharArray(), int.MaxValue); string[] lastline_elements = lastline.Split(("\t").ToCharArray(), int.MaxValue); // Sprung erkennen if (line_elements[7] == "@@") { line_elements[7] = ""; isjump = true; } // km Angaben mitnehmen if (line_elements[0] == "" && line_elements[2] == "") { // diese zeile hat keine km angaben -> in vorheriger zeile nachschauen if (lastline_elements.Length > 2) { line_elements[0] = lastline_elements[0]; lastline_elements[0] = ""; line_elements[2] = lastline_elements[2]; lastline_elements[2] = ""; } } // nicht 2 positionen in 1 zeile if (line_elements[0] != "" || line_elements[2] != "") { if (line_elements[5] != "") { if (line_elements[0] != "") entry = new Entry(EntryType.OPS_MARKER, line_elements[0], line_elements[1], line_elements[3], "", "", "", new char(), "", new char()); else // (line_elements[2] != "") entry = new Entry(EntryType.OPS_MARKER, line_elements[2], line_elements[1], line_elements[3], "", "", "", new char(), "", new char()); try { entry.zack = Convert.ToInt32(line_elements[8]); } catch (Exception) {} route.Entrys.Add(entry); line_elements[0] = line_elements[5]; line_elements[1] = ""; line_elements[2] = line_elements[5]; line_elements[3] = ""; } else //(line_element[5] == "") { if (line_elements[0] == "") line_elements[0] = line_elements[2]; } } else if (line_elements[0] == "" && line_elements[2] == "") { if (line_elements[5] != "") { line_elements[0] = line_elements[5]; line_elements[2] = line_elements[5]; } } entry = new Entry(EntryType.OPS_MARKER, line_elements[0], line_elements[1], line_elements[3], line_elements[4], "", line_elements[6], new char(), line_elements[7], new char()); entry.isJump = isjump; try { entry.zack = Convert.ToInt32(line_elements[8]); } catch (Exception) {} route.Entrys.Add(entry); lastline = line; } } DeleteDoubles(); Console.WriteLine("FILE LOADED!");