private bool LosGehts(bool ergebnis) { if (ergebnis) { SetDataRowColor("3"); lfdPoFo++; } if ((lfdPoFo + 1) > _wertpapsynchro.Count) { Close(); return(false); } wpsyn = _wertpapsynchro[lfdPoFo]; //if (wpsyn.WPSName.StartsWith("JPM-")) { HtmlDocument doc = Fx_read_Page(new Uri(wpsyn.WPSURL)); SearchWebPage(doc, wpsyn); //} n2 = 0; return(true); }
private SearchValues SetSearchValues(WertpapSynchro wpsyn) { if (wpsyn.WPSType == Wertpapierklasse.Anleihe) { SearchV.SelectNodesValue1 = "col-sm-7"; SearchV.SelectNodesValue2 = "row quotebox"; SearchV.textSharpeRatio1 = "box"; SearchV.textSharpeRatio2 = "Kupondaten"; } else if (wpsyn.WPSType >= Wertpapierklasse.MinWertpap && wpsyn.WPSType <= Wertpapierklasse.MaxWertpap) { SearchV.SelectNodesValue1 = "col-sm-7"; SearchV.SelectNodesValue2 = "row quotebox"; SearchV.textSharpeRatio1 = "box"; SearchV.textSharpeRatio2 = "Sharpe Ratio"; } else { MessageBox.Show("Fehler in KontenSynchronisieren2 GetSearchVaues(): Fehlerhafter WPSType: " + wpsyn.WPSType); } return(SearchV); }
private void SearchWebPage(HtmlDocument doc, WertpapSynchro wpsyn) { SetSearchValues(wpsyn); // NOCH in xml-Datei... Console.Write("==== {0}", wpsyn.WPSName); HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//div[@class='" + SearchV.SelectNodesValue1 + "']"); string strReg0 = Regex.Replace(nodes[0].InnerText, "[\x00-\x20]+", "/"); // /103,26EUR/-1,04EUR/-1,00%/15.11.2018/NAV/NAV/ Console.WriteLine(" nodes.Count: {0} .InnerText: {1} {2}", nodes.Count, strReg0, "//div[@class='" + SearchV.SelectNodesValue1 + "']"); PrintTxtUnten("==== " + wpsyn.WPSName + " nodes.Count: " + nodes.Count + " .InnerText: " + strReg0 + " //div[@class='" + SearchV.SelectNodesValue1 + "']"); string strPrint = ""; foreach (HtmlNode node1 in nodes) { string strReg1 = Regex.Replace(node1.InnerText, "[\x00-\x20]+", "/"); Console.WriteLine(" node1.Name: {0} .ChildNodes.Count: {1} .Type: {2} .InnerText: {3}", node1.Name, node1.ChildNodes.Count, node1.NodeType, strReg1); foreach (HtmlNode node2 in node1.ChildNodes) { if (node2.NodeType == HtmlNodeType.Text) { continue; } string strReg2 = Regex.Replace(node2.InnerText, "[\x00-\x20]+", "/"); if (strReg2.Length <= 1) { continue; } Console.WriteLine(" node2.Name: {0} .ChildNodes.Count: {1} .Type: {2} .InnerText: {3}", node2.Name, node2.ChildNodes.Count, node2.NodeType, strReg2); char[] charSeparators = new char[] { '/' }; string[] StrArr = strReg2.Split(charSeparators, StringSplitOptions.RemoveEmptyEntries); // /98,50%/-0,16/-0,16%/09:42:40/Uhr/HAN/Berlin/Frankfurt/Hamburg/H.... if (wpsyn.WPSType == Wertpapierklasse.Anleihe) // ---- Anleihe ---- // /98,50%/-0,16/-0,16%/09:42:40/Uhr/HAN/Berlin/Frankfurt/Hambu { charSeparators = new char[] { '%' }; Match match1 = regBetrag.Match(StrArr[0]); if (match1.Success) { float kurs = Convert.ToSingle(match1.Value); wpsyn.WPSKurs = kurs; strPrint += "Anleihe Kurs: " + wpsyn.WPSKurs + " "; PrintTxtUnten("Anleihe Kurs: " + kurs); } Match match0 = regDatumJJ.Match(StrArr[3]); Match matchZeit = null; if (match0.Success) { wpsyn.WPSKursZeit = Convert.ToDateTime(match0.Value); // KursDatum strPrint += "Datum: " + wpsyn.WPSKursZeit + " "; PrintTxtUnten("Anleihe Datum : " + wpsyn.WPSKursZeit); } else { matchZeit = regZeit.Match(StrArr[3]); // KursZeit if (matchZeit.Success) { DateTime dt = wpsyn.WPSKursZeit; wpsyn.WPSKursZeit = Convert.ToDateTime(dt.Day + "." + dt.Month + "." + dt.Year + " " + matchZeit.Value); strPrint += "Zeit: " + wpsyn.WPSKursZeit + " "; PrintTxtUnten("Anleihe Zeit : " + wpsyn.WPSKursZeit); } else { MessageBox.Show("Fehler match0 KursDatum.!!!!!!"); } } // NOCH % Console.WriteLine(strPrint); return; } else // ---- Wertpapier ---- // /101,67EUR/0,18EUR/0,18%/22.11.2018/NAV/NAV/ { string str = StrArr[0]; // /103,26EUR/-1,04EUR/-1,00%/15.11.2018/NAV/NAV/ string StrBetrag = str.Substring(0, str.Length - 3); wpsyn.WPSWährung = "EUR"; // Währung if (StrArr[0].Contains("USD")) { wpsyn.WPSWährung = "USD"; } Match match0 = regBetrag.Match(StrBetrag); // Kurs Format 2 if (match0.Success) { wpsyn.WPSKurs = Convert.ToSingle(match0.Value); strPrint += "Kurs: " + wpsyn.WPSWährung + " " + wpsyn.WPSKurs + " "; } else { match0 = regBetrag.Match(StrBetrag); // Kurs Format 1 if (match0.Success) { wpsyn.WPSKurs = Convert.ToSingle(match0.Value); strPrint += "Kurs: " + wpsyn.WPSWährung + " " + wpsyn.WPSKurs + " "; } else { MessageBox.Show("Fehler Kurs !!!!!!!!!!!!! "); } } Match match1 = regBetrag.Match(StrArr[1]); // Diff Euro (nicht gebraucht) if (match1.Success) { float diffEur = Convert.ToSingle(match1.Value); strPrint += "Diff-EUR: " + diffEur + " "; } else { MessageBox.Show("Fehler Diff-EUR!!!!!!!!!!!!! "); } Match match2 = regBetrag.Match(StrArr[2]); // Diff % if (match2.Success) { float diffProz = Convert.ToSingle(match2.Value); wpsyn.WPSProzentAenderung = diffProz; strPrint += "Diff-%: " + diffProz + " "; } else { MessageBox.Show("Fehler Diff-%!!!!!!!!!!!!! "); } Match match3 = regDatumJJJJ.Match(StrArr[3]); // KursDatum Match matchZeit = null; if (match3.Success) { wpsyn.WPSKursZeit = Convert.ToDateTime(match3.Value); if (matchZeit != null) { wpsyn.WPSKursZeit = Convert.ToDateTime(match3.Value + " " + matchZeit.Value); } strPrint += " Datum : " + wpsyn.WPSKursZeit; } else { matchZeit = regZeit.Match(StrArr[3]); // KursZeit if (matchZeit.Success) { DateTime dt = wpsyn.WPSKursZeit; wpsyn.WPSKursZeit = Convert.ToDateTime(dt.Day + "." + dt.Month + "." + dt.Year + " " + matchZeit.Value); strPrint += "Zeit: " + wpsyn.WPSKursZeit + " "; } else { MessageBox.Show("Fehler Match KursDatum/Zeit !!!!!!"); } } // else PrintTxtUnten(strPrint); strPrint = ""; } // Anleihe / Wertpapier } // foreach node2 } // foreach node1 n2 = 0; float Sharpe = GetSharpeRatio(doc, SearchV.textSharpeRatio1, SearchV.textSharpeRatio2); wpsyn.WPSSharpe = Sharpe; }