2017-05-22 2 views
2

Ich versuche, für Rss-Updates TextBox bewegen, zu tun, aber das Problem ist, dass der Rss Text auch in Hebräisch auf Englisch ist und auch Zahlen, so jedes Mal, wenn die Zahl erreicht es beginnt zu verrückt :)C# rechts nach links in TextBox

Exmaple Rss = „* Ynet - * Breaking News * Trump besuchen: US-Präsident nahm von Saudi-Arabien, Israel von * 15 Jahren im Gefängnis Breda weißen Mann in einem Kampf auf See vor 4 Jahren getötet * Thailand: 24 bei einer Explosion verletzt an Bangkok Krankenhaus * Dutzende Hungerstreik Sicherheit Gefangenen an Krankenhäuser in die evakuiert wurden, Und im Gefängnis verteilt * Aufgrund Besuch Trump: werden Züge von und nach Jerusalem * Nordkorea verstärkt werden: unable Massenproduktion von ballistischen Raketen zu starten, die Japan erreichen können * Berichterstattung Libanon: Trump und al-Sisi auf dem Gipfel eines regionalen Friedensplans in den kommenden Wochen vereinbart * Zwei \ „H: mehr warm und trocken unseasonably * Überraschung NBA: Boston schlagen Cleveland, reduziert auf 2: 1 in der Serie „

public void Run_Ynet_Rss() 
{ 
    Ynet_Rss.Text = ""; 
    foreach (string s in (Rss) 
    { 
     Ynet_Rss.Text = Ynet_Rss.Text + " * " + s; 
    } 
    Ynet_Rss.TextAlignment = TextAlignment.Right; 
} 
public void Update_Ynet_Rss() 
{ 
    if (Ynet_Rss.Text == "") 
    { 
     Run_Ynet_Rss(); 
    } 
    Ynet_Rss.Text = Ynet_Rss.Text.Substring(1); 
    Ynet_Rss.TextAlignment = TextAlignment.Right; 
} 
hunderttausend Beschäftigten im öffentlichen Dienst sind seit dem Putschversuch in der Türkei * Prognose entlassen

Natürlich gibt es eine DispatcherTimer, die die Update_Ynet_Rss Funktion

+0

Nur eine unbegründete Meinung: try RichTextBox. – ZloyMakak

+0

Ich vermute, dass das Problem mit der Codierung ist. Die Hebrew ist Unicode (zwei Bytes), während die Zahlen ASCII (ein Byte) sind. Zeichen/Strings ist zwei Byte Objekte mit einem Privatgrundstück in der Klasse, um anzuzeigen, wenn der Charakter ein oder zwei Bytes ist. Die RSS-Funktion verarbeitet die Codierung nicht korrekt. – jdweng

Antwort

2

Nach ein bisschen Denken alle paar Momente löst, ich das Problem gefunden .. und hier ist die Lösung:

 public void Update_Ynet_Rss() 
    { 
     if(Ynet_Rss.Text == "") 
     { 
      Run_Ynet_Rss(); 
     } 
     // Ynet_Rss.Text = Ynet_Rss.Text.Substring(0, Ynet_Rss.Text.Length-1); 
     string s = Ynet_Rss.Text; 
     // MessageBox.Show("Index = " + s.IndexOf("מבזקים")); 
     if (s[0] >= 'א' && s[0] <= 'ת') 
     { 
      string tmp = ""; 
      string tmp2 = ""; 
      //Ynet_Rss.Text = Cutting(Ynet_Rss.Text, 0, s.IndexOf(" ")); 
      int EndIndex = -1; 
      for (int i = 0; i < s.Length; i++) 
      { 
       if ((s[i] >= 'a' && s[i] <= 'z') || (s[i] >= 'A' && s[i] <= 'Z')) 
       { 
        EndIndex = i; 
        //MessageBox.Show("EndIndex = " + EndIndex + "s[i] = " + s[i].ToString()); 
        break; 
       } 
      } 
      if(EndIndex == -1) 
      { 
      // MessageBox.Show("EndIndex = " + EndIndex); 
       EndIndex = s.Length; 
      } 
      //tmp = Ynet_Rss.Text.Substring(Ynet_Rss.Text.IndexOf(" ")); 
      tmp = Ynet_Rss.Text.Substring(EndIndex); 
      tmp2 = Ynet_Rss.Text.Substring(0, EndIndex); 
      // MessageBox.Show("V1 = " + tmp2); 
      tmp2 = Ynet_Rss.Text.Substring(0, tmp2.Length-1); 
     //  MessageBox.Show("V2 = " + tmp2); 
      Ynet_Rss.Text = tmp2 + tmp; 
     } 
     else 
     { 
      Ynet_Rss.Text = Ynet_Rss.Text.Substring(1); 
     } 

      Ynet_Rss.TextAlignment = TextAlignment.Left; 
    } 
Verwandte Themen