Advertisement
Guest User

Untitled

a guest
Mar 4th, 2015
190
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.57 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. class PHPVariables
  8. {
  9.     static void Main()
  10.     {
  11.         StringBuilder text = new StringBuilder();
  12.         StringBuilder result = new StringBuilder();
  13.         HashSet<string> existing = new HashSet<string>();
  14.         string line = Console.ReadLine().Trim();
  15.  
  16.         while (line != "?>")
  17.         {
  18.             text.AppendLine(line);
  19.             line = Console.ReadLine().Trim();
  20.         }
  21.  
  22.         bool oneLineComment = false;
  23.         bool moreLineComment = false;
  24.         for (int i = 0; i < text.Length; i++)
  25.         {
  26.             if (text[i].ToString() == "/" || text[i].ToString() == "#")
  27.             {
  28.                 oneLineComment = true;
  29.             }
  30.             else if (text[i] == '\n')
  31.             {
  32.                 oneLineComment = false;
  33.             }
  34.             else if (text[i].ToString() == "/*")
  35.             {
  36.                 moreLineComment = true;
  37.             }
  38.             else if (text[i].ToString() == "*/")
  39.             {
  40.                 moreLineComment = false;
  41.             }
  42.  
  43.             if (!oneLineComment && !moreLineComment)
  44.             {
  45.                 if (text[i] == '\\')
  46.                 {
  47.                     i += 2;
  48.                 }
  49.                 if (text[i] == '$')
  50.                 {
  51.                     if (char.IsNumber(text[i + 1]) || char.IsLetter(text[i + 1]) || text[i + 1] == '_')
  52.                     {
  53.                         i++;
  54.                         while (char.IsNumber(text[i]) || char.IsLetter(text[i]) || text[i] == '_')
  55.                         {
  56.                             result.Append(text[i]);
  57.                             i++;
  58.                         }
  59.                         existing.Add(result.ToString());
  60.                         result.Clear();
  61.                         i--;
  62.                     }
  63.                 }
  64.             }
  65.         }
  66.         //1
  67.         //string[] answer = existing.ToArray();
  68.         //Array.Reverse(answer);
  69.         //Console.WriteLine(existing.Count);
  70.         //Console.WriteLine(string.Join("\n", answer));
  71.  
  72.         //2
  73.         //StringBuilder answer = new StringBuilder();
  74.         //foreach (var item in existing.OrderBy(x => x))
  75.         //{
  76.         //    answer.AppendLine(item);
  77.         //}
  78.         //Console.WriteLine(existing.Count);
  79.         //Console.Write(answer);
  80.  
  81.         //3
  82.         List<string> answer = existing.ToList();
  83.         Console.WriteLine(existing.Count);
  84.         Console.WriteLine(string.Join("\n", answer));
  85.     }
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement