Monday, 23 October 2017
Capturing console stream input for processing
Some good articles below found interesting in the web.
The simplest
The sample Host and Client implementation here
My Own test
class Program
{
static public void test()
{
System.Diagnostics.Process cmd = new System.Diagnostics.Process();
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.RedirectStandardInput = true;
cmd.StartInfo.RedirectStandardOutput = true;
cmd.StartInfo.CreateNoWindow = true;
cmd.StartInfo.UseShellExecute = false;
cmd.Start();
cmd.StandardInput.Flush();
cmd.StandardInput.WriteLine("echo 5 > input.txt");
cmd.StandardInput.WriteLine("echo 3 1 2 3 >> input.txt");
cmd.StandardInput.WriteLine("echo 2 1 1 >> input.txt");
cmd.StandardInput.WriteLine("echo 4 10 5 5 1 >> input.txt");
cmd.StandardInput.WriteLine("echo 0 >> input.txt");
cmd.StandardInput.WriteLine("echo 1 2 >> input.txt");
cmd.StandardInput.WriteLine("PrizeDraw < input.txt");
cmd.StandardInput.Flush();
cmd.StandardInput.Close();
string line;
int i = 0;
do
{
line = cmd.StandardOutput.ReadLine();
i++;
if (line != null)
{
Console.WriteLine(line);
//Console.WriteLine("Line " + i.ToString() + " -- " + line);
}
} while (line != null);
}
static void Main(string[] args)
{
test();
Console.ReadLine();
}
}
Wednesday, 5 July 2017
c# coding OOPs
Code on using Char
using System;
using System.Text;
public class TextInput {
protected string _value;
public virtual void Add(char c)
{
_value
+= c.ToString();
}
public virtual string GetValue()
{
return _value;
}
}
public class NumericInput : TextInput
{
public override void Add(char n)
{
if(Char.IsNumber(n))
_value
+= n.ToString();
}
}
public class UserInput
{
public static void Main(string[] args)
{
TextInput input = new NumericInput();
input.Add('1');
input.Add('a');
input.Add('0');
Console.WriteLine(input.GetValue());
Console.ReadLine();
}
}
RESULT: 10
Code 2 : IndexOf and Substring
using System;
public class Path
{
public string CurrentPath { get; private set; }
public Path(string path)
{
this.CurrentPath = path;
}
public void Cd(string newPath)
{
string[] folders = CurrentPath.Split('/');
if(newPath.IndexOf("..")<0)
CurrentPath += "/" + newPath;
else
{
CurrentPath = CurrentPath.Substring(0, CurrentPath.LastIndexOf("/"));
CurrentPath += newPath.Substring(2, newPath.Length -2);
}
}
public static void Main(string[] args)
{
Path path = new Path("/a/b/c/d");
path.Cd("../x");
Console.WriteLine(path.CurrentPath);
}
}
Unresolved - Binary Tree Search
using System;
public class Node
{
public int Value { get; set; }
public Node Left { get; set; }
public Node Right { get; set; }
public Node(int value, Node left, Node right)
{
Value
= value;
Left
= left;
Right
= right;
}
}
public class BinarySearchTree
{
public static bool Contains(Node root, int value)
{
if (root == null) return false;
if (root.Value == value)
return true;
else if (root.Value <
value)
return Contains(root.Right,
value);
else
return Contains(root.Left,
value);
}
public static void Main(string[] args)
{
Node n1 = new Node(1, null, null);
Node n3 = new Node(3, null, null);
Node n2 = new Node(2, n1, n3);
Console.WriteLine(Contains(n2,
3));
Console.ReadLine();
}
}
Palindrome Test
public class Palindrome
{
public static bool IsPalindrome(string word)
{
if (word.ToLower() == ReverseString(word.ToLower()))
return true;
return false;
}
public static void Main(string[] args)
{
Console.WriteLine(Palindrome.IsPalindrome("Deleveled"));
Console.ReadLine();
}
public static string ReverseString(string s)
{
char[] arr = s.ToCharArray();
Array.Reverse(arr);
return new string(arr);
}
}
-----------------------------
Another String Manipulation
-- imcomplete
using System;
public class Path
{
public string CurrentPath { get; private set; }
public Path(string path)
{
this.CurrentPath = path;
}
public void Cd(string newPath)
{
if (newPath == "/") CurrentPath = "/";
string[] cmd =
newPath.Split('/');
foreach (string cd in cmd)
switch (cd)
{
case "..":
{
CurrentPath
= "/" +
CurrentPath.Substring(1, CurrentPath.LastIndexOf('/') - 1);
break;
}
case "":
{
CurrentPath
= ""; //to root this can
only happen some cd(/x);
break;
}
default:
{
CurrentPath
= CurrentPath + "/" + cd;
break;
}
}
}
public static void Main(string[] args)
{
Path path = new Path("/a/b/c/d");
path.Cd("/x");
Console.WriteLine(path.CurrentPath);
Console.ReadLine();
}
}
-------------
-- Smallest number left to be used ..
input = { 1, 3, 4, 5, 7 }; the answer = 2
input = { 1, 2, 3, 4, 7,9 }; the answer = 5
class Program
{
static void Main(string[] args)
{
int[] input = { 1, 3, 4, 5, 7 };
int result = solution(input);
Console.WriteLine("small number to be used is {0}", result);
Console.ReadLine();
}
public static int solution(int[] A)
{
int smallGuy = 1;
// write your code in Java SE 8
if (A.GetUpperBound(0) == 0) return smallGuy;
if (A == null) return smallGuy;
var aList = A.ToList();
foreach (var number in A)
{
if (aList.IndexOf(smallGuy) >= 0)
++smallGuy;
}
return smallGuy;
}
}
-- Smallest number left to be used ..
input = { 1, 3, 4, 5, 7 }; the answer = 2
input = { 1, 2, 3, 4, 7,9 }; the answer = 5
class Program
{
static void Main(string[] args)
{
int[] input = { 1, 3, 4, 5, 7 };
int result = solution(input);
Console.WriteLine("small number to be used is {0}", result);
Console.ReadLine();
}
public static int solution(int[] A)
{
int smallGuy = 1;
// write your code in Java SE 8
if (A.GetUpperBound(0) == 0) return smallGuy;
if (A == null) return smallGuy;
var aList = A.ToList();
foreach (var number in A)
{
if (aList.IndexOf(smallGuy) >= 0)
++smallGuy;
}
return smallGuy;
}
}
Subscribe to:
Posts (Atom)