OfficialSub0 Ответов: 1

Запись текста в файл streamwriter справка


Я пытаюсь создать графический интерфейс, который будет генерировать все возможные комбинации букв (2187) при выборе 7 чисел. пример: если выбран номер 2, то возможными комбинациями будут ABC, ACB, BCA, BAC, CBA, CAB. Единственная проблема сейчас-это запись в файл streamwriter.

2 = ТЕЛЕКАНАЛА ABC, 3 = DEF, И 4 = ГХИ, 5 = ХЭЛЛОУИН, 6 = МНО, 7 = РЕКОМЕНДУЕТСЯ, 8 = TUV, А 9 = WXYZ
** Исключая 1 & 0

Что я уже пробовал:

<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 { }
        }
    }
    }

OriginalGriff

И что же? Вы не сказали нам, какая у вас проблема!

OfficialSub0

"Единственная проблема сейчас-это запись в файл streamwriter", - прошу прощения, если это недостаточно ясно. Я надеюсь, что различные комбинации букв будут выведены в файл после того, как пользователь выберет 7 чисел.

1 Ответов

Рейтинг:
10

Richard Deeming

Цитата:
new StreamWriter(mydocpath + @"F:\\log.txt")

Это наиболее вероятная проблема.

То mydocpath будет содержать что-то вроде: C:\Users\You\Documents

Затем вы добавляете абсолютный путь F:\log.txt

Так что ваш последний путь будет: C:\Users\You\DocumentsF:\log.txt

Этот каталог не только не существует, но и не могу существуют, поскольку имена файлов и папок не могут содержать символ двоеточия.

Используйте либо абсолютный путь, либо путь" Мои Документы".:
new StreamWriter(Path.Combine(mydocpath, "log.txt"))


OfficialSub0

Спасибо, что сработало отлично. Единственная проблема теперь заключается в том, что он будет писать в файл, но только с одной комбинацией букв. Поэтому, если выбрано 2, он будет писать только ABC и никаких других комбинаций. Есть какие-нибудь идеи о том, где я ошибаюсь?

Спасибо!

Richard Deeming

Посмотрите на код в вашем вопросе - единственное, что вы пишете в файл, - это пустая строка:

writer.WriteLine("");


Таким образом, он даже не собирается писать одну комбинацию букв; он просто напишет пустую строку.