Не могу понять, как мне вызвать метод TwiceUsedWord() в WordsGen()... - C#
Формулировка задачи:
Не могу понять, как мне вызвать метод TwiceUsedWord() в WordsGen(). Хотя, возможно, я в корне не так все делаю. В общем, нужно проверить, есть ли слово, введенное в textBox1, в textBox2 или в файле "*.txt", если обнаружится совпадение - запретить использование GenerateButton, не обрабатывать нажатие Enter в textbox1 и вывести с помощью MessageBox ошибку. Спасибо за помощь
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.ComponentModel;
- using System.Data;
- using System.Drawing;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows.Forms;
- using System.IO;
- namespace WordsGenerator
- {
- public partial class Form1 : Form
- {
- Random rGen;
- string fileName = null;
- bool progIsModified;
- string[] chars = {
- "z", "b", "v", "g", "dz", "dzh", "Г°", "s", "p", "f", "k", "t", "ts", "tsh", "Оё", "x", "m", "n", "r", "l", "w", "j",
- "a", "i", "u", "Й”", "o", "Й›", "e"};
- public Form1()
- {
- InitializeComponent();
- }
- private void Form1_Load(object sender,EventArgs e)
- {
- openFileDialog1.FileName = "";
- openFileDialog1.Filter =
- "Текстовые файлы (*.txt)|*.txt|All files (*.*)|*.*";
- }
- private void WordsGen()
- {
- rGen = new Random();
- var vowelTurn = true;
- int p = 0, syllabNum = 0, charsNum = 0;
- string wordStr = null;
- syllabNum = rGen.Next(0,2);//0 - 2слога;1 - 3слога и т.д.
- if (syllabNum == 0) charsNum = 3;
- if (syllabNum == 1) charsNum = 5;
- for (int i = 0; i < charsNum; i++)
- {
- if (vowelTurn)
- {
- p = rGen.Next(22,chars.Length);
- wordStr += chars[p];
- vowelTurn = !vowelTurn;
- }
- else if (!vowelTurn)
- {
- p = rGen.Next(0,22);
- wordStr += chars[p];
- vowelTurn = !vowelTurn;
- }
- }
- TwiceUsedWord();
- textBox2.Text += textBox1.Text + " " + wordStr + Environment.NewLine;
- textBox1.Clear();
- }
- private void выбратьСловарьToolStripMenuItem_Click(object sender,EventArgs e)
- {
- openFileDialog1.ShowDialog();
- if (openFileDialog1.FileName == null) return;
- fileName = openFileDialog1.FileName;
- label1.Text = "Выб. словарь " + fileName;
- }
- private void открытьToolStripMenuItem_Click(object sender,EventArgs e)
- {
- System.Diagnostics.Process.Start(
- "Wordpad",fileName);
- }
- private void сохранитьToolStripMenuItem_Click(object sender,EventArgs e)
- {
- try
- {
- var writer = new StreamWriter(
- fileName,true,Encoding.UTF8);
- writer.Write(textBox2.Text);
- writer.Close();
- textBox2.Clear();
- progIsModified = false;
- }
- catch (Exception badCase)
- {
- MessageBox.Show(badCase.Message,"Ошибка",
- MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
- }
- }
- private void textBox1_KeyDown(object sender,KeyEventArgs e)
- {
- if (e.KeyCode == Keys.Enter) WordsGen();
- if (textBox1.Text != null) progIsModified = true;
- }
- private void TwiceUsedWord(KeyEventArgs e)
- {
- var reader = new StreamReader(
- fileName,Encoding.UTF8);
- while (!reader.EndOfStream)
- {
- string line = reader.ReadLine();
- if (line.StartsWith(textBox1.Text) ||
- textBox2.Text.StartsWith(textBox1.Text))
- {
- GenerateButton.Enabled = false;
- e.Handled = true;
- MessageBox.Show("Данное слово уже существует","Ошибка",
- MessageBoxButtons.OK,MessageBoxIcon.Exclamation);
- }
- }
- }
- private void GenerateButton_Click(object sender,EventArgs e)
- {
- WordsGen();
- }
- }
- }
Решение задачи: «Не могу понять, как мне вызвать метод TwiceUsedWord() в WordsGen()...»
textual
Листинг программы
- KeyEventArgs ke = new KeyEventArgs(Keys.None);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д