将文本写入streamwriter文件帮助 [英] Writing text to a streamwriter file help
问题描述
我正在尝试创建一个GUI,当选择7个数字时,它将生成所有可能的字母组合(2,187)。例如:如果选择数字2,则可能的组合将是ABC,ACB,BCA,BAC,CBA,CAB。现在只发出写入编写器文件。
2 = ABC,3 = DEF,4 = GHI,5 = JKL,6 = MNO,7 = PQRS ,8 = TUV,9 = WXYZ
**不包括1& 0
我尝试过:
I am trying to create a GUI that will generate all the possible combination of letters (2,187) when 7 numbers are chosen. ex: if number 2 is chosen the possible combinations would be ABC, ACB, BCA, BAC, CBA, CAB. Only issue right now is writing to the streamwriter file.
2 = ABC, 3 = DEF, 4 = G 5 = JKL, 6 = MNO, 7 = PQRS, 8 = TUV, 9 = WXYZ
**Excluding 1 & 0
What I have tried:
<pre>using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TeleNumLetters
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int[] numberInput = new int[8] { 2, 3, 4, 5, 6, 7, 8, 9 };
int maxLength = 7;
char[] phoneArray = new char[7];
char[] number2 = { 'A', 'B', 'C'};
char[] number3 = { 'D', 'E', 'F' };
char[] number4 = { 'G', 'H', 'I' };
char[] number5 = { 'J', 'K', 'L' };
char[] number6 = { 'M', 'N', 'O' };
char[] number7 = { 'P', 'Q', 'R', 'S'};
char[] number8 = { 'T', 'U', 'V'};
char[] number9 = { 'W', 'X', 'Y', 'Z'};
public void ConvertNumber()
{
String phoneNumber = textBox1.Text;
for (int i = 0; i < 7; i++)
{
phoneArray[i] = phoneNumber.ElementAt(i);
}
}
private void generateButton_Click(object sender, EventArgs e)
{
try
{
string mydocpath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
using (StreamWriter writer = new StreamWriter(mydocpath + @"F:\\log.txt"))
{
writer.WriteLine("");
}
}
catch { }
}
private void numberTwobutton_Click(object sender, EventArgs e)
{
if (textBox1.TextLength < maxLength)
{
textBox1.Text += Convert.ToString(numberInput[0]);
}
else { }
}
private void numberThreebutton_Click(object sender, EventArgs e)
{
if (textBox1.TextLength < maxLength)
{
textBox1.Text += Convert.ToString(numberInput[1]);
}
else { }
}
private void numberFourbutton_Click(object sender, EventArgs e)
{
if (textBox1.TextLength < maxLength)
{
textBox1.Text += Convert.ToString(numberInput[2]);
}
else { }
}
private void numberFivebutton_Click(object sender, EventArgs e)
{
if (textBox1.TextLength < maxLength)
{
textBox1.Text += Convert.ToString(numberInput[3]);
}
else { }
}
private void numberSixbutton_Click(object sender, EventArgs e)
{
if (textBox1.TextLength < maxLength)
{
textBox1.Text += Convert.ToString(numberInput[4]);
}
else { }
}
private void numberSevenbutton_Click(object sender, EventArgs e)
{
if (textBox1.TextLength < maxLength)
{
textBox1.Text += Convert.ToString(numberInput[5]);
}
else { }
}
private void numberEightbutton_Click(object sender, EventArgs e)
{
if (textBox1.TextLength < maxLength)
{
textBox1.Text += Convert.ToString(numberInput[6]);
}
else { }
}
private void numberNinebutton_Click(object sender, EventArgs e)
{
if (textBox1.TextLength < maxLength)
{
textBox1.Text += Convert.ToString(numberInput[7]);
}
else { }
}
}
}
推荐答案
new StreamWriter(mydocpath + @"F:\\log.txt")
这是最可能的问题。
mydocpath
将包含以下内容: C:\ Users \ You \Documents
然后你追加一个绝对路径 F:\ log.txt
所以你的最终路径是: C:\ Users \You \DocumentsF:\ log.txt
不仅该目录不存在,不能存在,因为文件和文件夹名称不能包含冒号字符。
使用绝对路径或我的文档路径:
That's the most likely problem.
The mydocpath
will contain something like: C:\Users\You\Documents
You then append an absolute path of F:\log.txt
So your final path will be: C:\Users\You\DocumentsF:\log.txt
Not only does that directory not exist, it cannot exist, because file and folder names cannot contain a colon character.
Either use the absolute path, or the "My Documents" path:
new StreamWriter(Path.Combine(mydocpath, "log.txt"))
这篇关于将文本写入streamwriter文件帮助的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!