Console.SetIn メソッド
指定した TextReader に In プロパティを設定します。
Public Shared Sub SetIn( _
ByVal newIn As TextReader _)
[C#]
public static void SetIn(TextReadernewIn);
[C++]
public: static void SetIn(TextReader* newIn);
[JScript]
public static function SetIn(
newIn : TextReader);
パラメータ
- newIn
新しい標準入力である TextReader ストリーム。
例外
例外の種類 | 条件 |
---|---|
ArgumentNullException | newIn が null 参照 (Visual Basic では Nothing) です。 |
SecurityException | 呼び出し元に、必要なアクセス許可がありません。 |
解説
既定では、 In プロパティは標準入力ストリームに設定されます。
FileStream をカプセル化する StreamReader を使用すると、ファイルから入力を受け取ることができます。
使用例
SetIn の使用方法については、次のコード例を参照してください。
Public Class InsertTabs
Private Const tabSize As Integer = 4
Private Const usageText As String = "Usage: INSERTTABS inputfile.txt outputfile.txt"
'Entry point which delegates to C-style main Private Function
Public Overloads Shared Sub Main()
System.Environment.ExitCode = Main(System.Environment.GetCommandLineArgs())
End Sub
Overloads Public Shared Function Main(args() As String) As Integer
Dim writer As StreamWriter = Nothing
If args.Length < 3 Then
Console.WriteLine(usageText)
Return 1
End If
Try
writer = New StreamWriter(args(2))
Console.SetOut(writer)
Console.SetIn(New StreamReader(args(1)))
Catch e As IOException
Dim errorWriter As TextWriter = Console.Error
errorWriter.WriteLine(e.Message)
errorWriter.WriteLine(usageText)
Return 1
End Try
Dim line As String
line = Console.ReadLine()
While Not line Is Nothing
Dim newLine As String = line.Replace("".PadRight(tabSize, " "c), ControlChars.Tab)
Console.WriteLine(newLine)
line = Console.ReadLine()
End While
writer.Close()
' Recover the standard output stream so that a
' completion message can be displayed.
Dim standardOutput As New StreamWriter(Console.OpenStandardOutput())
standardOutput.AutoFlush = True
Console.SetOut(standardOutput)
Console.WriteLine("INSERTTABS has completed the processing of {0}.", args(0))
Return 0
End Function 'Main
End Class 'InsertTabs
[C#]
public class InsertTabs {
private const int tabSize = 4;
private const string usageText = "Usage: INSERTTABS inputfile.txt outputfile.txt";
public static int Main(string[] args) {
StreamWriter writer = null;
if (args.Length < 2) {
Console.WriteLine(usageText);
return 1;
}
try {
writer = new StreamWriter(args[1]);
Console.SetOut(writer);
Console.SetIn(new StreamReader(args[0]));
}
catch(IOException e) {
TextWriter errorWriter = Console.Error;
errorWriter.WriteLine(e.Message);
errorWriter.WriteLine(usageText);
return 1;
}
string line;
while ((line = Console.ReadLine()) != null) {
string newLine = line.Replace(("").PadRight(tabSize, ' '), "\t");
Console.WriteLine(newLine);
}
writer.Close();
// Recover the standard output stream so that a
// completion message can be displayed.
StreamWriter standardOutput = new StreamWriter(Console.OpenStandardOutput());
standardOutput.AutoFlush = true;
Console.SetOut(standardOutput);
Console.WriteLine("INSERTTABS has completed the processing of {0}.", args[0]);
return 0;
}
}
[C++]
int main() {
String* args[] = Environment::GetCommandLineArgs();
const int tabSize = 4;
String* usageText = S"Usage: INSERTTABS inputfile.txt outputfile.txt";
StreamWriter* writer = 0;
if (args->Length < 3) {
Console::WriteLine(usageText);
return 1;
}
try {
writer = new StreamWriter(args[2]);
Console::SetOut(writer);
Console::SetIn(new StreamReader(args[1]));
}
catch(IOException* e) {
TextWriter* errorWriter = Console::Error;
errorWriter->WriteLine(e->Message);
errorWriter->WriteLine(usageText);
return 1;
}
String* line;
while ((line = Console::ReadLine()) != 0) {
String* newLine = line->Replace((S"")->PadRight(tabSize, ' '), S"\t");
Console::WriteLine(newLine);
}
writer->Close();
// Recover the standard output stream so that a
// completion message can be displayed.
StreamWriter* standardOutput = new StreamWriter(Console::OpenStandardOutput());
standardOutput->AutoFlush = true;
Console::SetOut(standardOutput);
Console::WriteLine(S"INSERTTABS has completed the processing of {0}.", args[1]);
return 0;
}
[JScript]
const tabSize = 4;
const usageText = "Usage: INSERTTABS inputfile.txt outputfile.txt";
var writer : StreamWriter = null;
var args = Environment.GetCommandLineArgs();
if (args.Length != 3) {
Console.WriteLine(usageText);
Environment.Exit(1);
}
try {
writer = new StreamWriter(args[2]);
Console.SetOut(writer);
Console.SetIn(new StreamReader(args[1]));
}
catch(e : IOException) {
var errorWriter = Console.Error;
errorWriter.WriteLine(e.Message);
errorWriter.WriteLine(usageText);
Environment.Exit(1);
}
var line;
while ((line = Console.ReadLine()) != null) {
var newLine = line.Replace(("").PadRight(tabSize, ' '), "\t");
Console.WriteLine(newLine);
}
writer.Close();
// Recover the standard output stream so that a
// completion message can be displayed.
var standardOutput = new StreamWriter(Console.OpenStandardOutput());
standardOutput.AutoFlush = true;
Console.SetOut(standardOutput);
Console.WriteLine("INSERTTABS has completed the processing of {0}.", args[0]);
必要条件
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, Common Language Infrastructure (CLI) Standard
.NET Framework セキュリティ:
- SecurityPermissionFlag (アンマネージ コードを呼び出すために必要なアクセス許可) SecurityPermissionFlag.UnmanagedCode (関連する列挙体)
参照
Console クラス | Console メンバ | System 名前空間 | TextReader | In