qse/ase/test/net/Form1.cs

144 lines
3.3 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace asetestnet
{
public partial class Form1 : Form
{
public class Awk : ASE.Net.StdAwk
{
protected override int OpenSource(ASE.Net.StdAwk.Source source)
{
System.IO.FileMode mode;
System.IO.FileAccess access;
System.IO.FileStream fs;
if (source.Mode.Equals(ASE.Net.StdAwk.Source.MODE.READ))
{
mode = System.IO.FileMode.Open;
access = System.IO.FileAccess.Read;
fs = new System.IO.FileStream ("t.awk", mode, access);
source.Handle = new System.IO.StreamReader (fs);
return 1;
}
else if (source.Mode.Equals(ASE.Net.StdAwk.Source.MODE.WRITE))
{
mode = System.IO.FileMode.Create;
access = System.IO.FileAccess.Write;
fs = new System.IO.FileStream("t.out", mode, access);
source.Handle = new System.IO.StreamWriter(fs);
return 1;
}
return -1;
}
protected override int CloseSource(ASE.Net.StdAwk.Source source)
{
if (source.Mode.Equals(ASE.Net.StdAwk.Source.MODE.READ))
{
System.IO.StreamReader sr = (System.IO.StreamReader)source.Handle;
sr.Close ();
return 0;
}
else if (source.Mode.Equals(ASE.Net.StdAwk.Source.MODE.WRITE))
{
System.IO.StreamWriter sw = (System.IO.StreamWriter)source.Handle;
sw.Close ();
return 0;
}
return -1;
}
protected override int ReadSource(ASE.Net.StdAwk.Source source, char[] buf, int len)
{
System.IO.StreamReader sr = (System.IO.StreamReader)source.Handle;
return sr.Read (buf, 0, len);
}
protected override int WriteSource(ASE.Net.StdAwk.Source source, char[] buf, int len)
{
System.IO.StreamWriter sw = (System.IO.StreamWriter)source.Handle;
sw.Write(buf, 0, len);
return len;
}
protected override int OpenConsole(ASE.Net.StdAwk.Console console)
{
return -1;
}
protected override int CloseConsole(ASE.Net.StdAwk.Console console)
{
return -1;
}
protected override int ReadConsole(ASE.Net.StdAwk.Console console, char[] buf, int len)
{
return -1;
}
protected override int WriteConsole(ASE.Net.StdAwk.Console console, char[] buf, int len)
{
return -1;
}
protected override int FlushConsole(ASE.Net.StdAwk.Console console)
{
return -1;
}
protected override int NextConsole(ASE.Net.StdAwk.Console console)
{
return -1;
}
}
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
ASE.Net.Awk awk = new Awk();
/*awk.OpenFileHandler += new ASE.Net.Awk.OpenFile (OpenFile);
awk.CloseFileHandler += CloseFile;*/
//awk.Open();
//awk.SourceInputStream = new System.IO.FileStream("t.awk", System.IO.FileMode.Open, System.IO.FileAccess.Read);
//awk.SourceOutputStream = new System.IO.FileStream("t.out", System.IO.FileMode.Create, System.IO.FileAccess.Write);
awk.Parse();
awk.Run();
}
/*
private int OpenFile(ASE.Net.Awk.File file)
{
MessageBox.Show("OpenFile");
file.Handle = "abc";
return 1;
}
private int CloseFile(ASE.Net.Awk.File file)
{
MessageBox.Show("CloseFile" + (string)file.Handle);
return 0;
}*/
}
}