88 lines
1.9 KiB
C#
88 lines
1.9 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using System.IO;
|
|
|
|
namespace ase.com
|
|
{
|
|
public partial class AwkForm : Form
|
|
{
|
|
public AwkForm()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void btnRun_Click(object sender, EventArgs e)
|
|
{
|
|
Awk awk = new StdAwk ();
|
|
|
|
//System.Text.Encoding.Default
|
|
awk.SourceInputStream = new MemoryStream (UnicodeEncoding.UTF8.GetBytes(tbxSourceInput.Text));
|
|
awk.SourceOutputStream = new MemoryStream();
|
|
|
|
awk.ConsoleInputStream = new MemoryStream(UnicodeEncoding.UTF8.GetBytes(tbxConsoleInput.Text));
|
|
awk.ConsoleOutputStream = new MemoryStream();
|
|
|
|
tbxSourceOutput.Text = "";
|
|
tbxConsoleOutput.Text = "";
|
|
|
|
if (!awk.Parse())
|
|
{
|
|
MessageBox.Show(awk.ErrorMessage);
|
|
}
|
|
else
|
|
{
|
|
MemoryStream s = (MemoryStream)awk.SourceOutputStream;
|
|
tbxSourceOutput.Text = UnicodeEncoding.UTF8.GetString(s.GetBuffer());
|
|
|
|
awk.EntryPoint = cbxEntryPoint.Text;
|
|
awk.ArgumentsToEntryPoint = chkPassArgumentsToEntryPoint.Checked;
|
|
|
|
bool n;
|
|
int nargs = lbxArguments.Items.Count;
|
|
if (nargs > 0)
|
|
{
|
|
string[] args = new string[nargs];
|
|
for (int i = 0; i < nargs; i++)
|
|
args[i] = lbxArguments.Items[i].ToString();
|
|
n = awk.Run(args);
|
|
}
|
|
else n = awk.Run();
|
|
|
|
if (!n)
|
|
{
|
|
MessageBox.Show(awk.ErrorMessage);
|
|
}
|
|
else
|
|
{
|
|
MemoryStream c = (MemoryStream)awk.ConsoleOutputStream;
|
|
tbxConsoleOutput.Text = UnicodeEncoding.UTF8.GetString(c.GetBuffer());
|
|
}
|
|
}
|
|
|
|
//awk.Close();
|
|
}
|
|
|
|
|
|
private void btnAddArgument_Click(object sender, EventArgs e)
|
|
{
|
|
if (tbxArgument.Text.Length > 0)
|
|
{
|
|
lbxArguments.Items.Add(tbxArgument.Text);
|
|
tbxArgument.Text = "";
|
|
tbxArgument.Focus();
|
|
}
|
|
}
|
|
|
|
private void btnClearAllArguments_Click(object sender, EventArgs e)
|
|
{
|
|
lbxArguments.Items.Clear();
|
|
}
|
|
|
|
}
|
|
}
|