Guest User

Untitled

a guest
Jan 4th, 2012
121
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // Json Array parser
  2.  
  3.     static string GetString(string str, ref int i)
  4.         {
  5.             string buffer = "";
  6.             i++;
  7.             for (; i < str.Length; i++)
  8.             {
  9.                 if (str[i] == '\"' && str[i - 1] != '\\')
  10.                 {
  11.                     return buffer;
  12.                 }
  13.                 else
  14.                 {
  15.                     buffer += str[i];
  16.                 }
  17.             }
  18.             return buffer;
  19.         }
  20.  
  21.         static void ParseArray(string str, ref int i, ArrayList list = null)
  22.         {
  23.             string buffer = "";
  24.             i++;
  25.             ArrayList _list = new ArrayList();
  26.             for (; i < str.Length; i++)
  27.             {
  28.                 var bt = str[i];
  29.                 if (str[i] == '[')
  30.                 {
  31.                     ParseArray(str, ref i, list);
  32.                 }
  33.                 else
  34.                 {
  35.                     if (str[i] == ']')
  36.                     {
  37.                         list.Add(_list);
  38.                         return;
  39.                     }
  40.                     else if (str[i] == '\"')
  41.                     {
  42.                         var stra = GetString(str, ref i);
  43.                         _list.Add(stra);
  44.                     }
  45.                 }
  46.             }
  47.         }
  48.  
  49. // Google Translate
  50.  
  51.         static string DecodeEncodedNonAsciiCharacters(string value)
  52.         {
  53.             return Regex.Replace(
  54.                 value,
  55.                 @"\\u(?<Value>[a-zA-Z0-9]{4})",
  56.                 m =>
  57.                 {
  58.                     return ((char)int.Parse(m.Groups["Value"].Value, NumberStyles.HexNumber)).ToString();
  59.                 });
  60.         }
  61.  
  62.  public static List<string> TranslateText(string input)
  63.         {
  64.             string url = String.Format("http://translate.google.com/translate_a/t?client=t&text={0}&hl=en&sl=ja&tl=en&multires=1&otf=2&ssel=4&tsel=4&sc=1", input);
  65.             WebSession session = new WebSession(url);
  66.             ArrayList list = new ArrayList();
  67.             int i = 0;
  68.             ParseArray(session.LastResponse.PageParser.Content, ref i, list);
  69.             List<string> strings = new List<string>();
  70.             foreach (var arry in list)
  71.             {
  72.                 if (arry is ArrayList && ((ArrayList)arry).Count > 0)
  73.                 {
  74.                     strings.Add(DecodeEncodedNonAsciiCharacters((string)((ArrayList)arry)[0]).Replace("\\n","\n").Replace("\\\"", "\""));
  75.                 }
  76.                 else
  77.                     break;
  78.             }
  79.             return strings;
  80.         }
RAW Paste Data