私は現在C#を学習しています。私が学んでいる本の練習の1つは、独自の単語と定義を追加できる辞書コンソールプログラムの種類を作ることです。コードでは、ユーザーが単語とその単語の定義を入力すると、それぞれを別のテキストファイルに入れます。私が持っている問題は、ユーザーが以前に追加した単語を検索するときに、その単語を対応する定義で印刷するプログラムが必要であるということです。だから私は定義テキストファイルのどこにその単語の対応する定義が始まって終わるのかを知り、それを印刷するプログラムが必要です。.txtファイルのテキストと別の.txtファイルの他のテキストをリンクすることはできますか? C#
私は自分自身を明確にしなかった場合、私はちょうど学ぶために始めている、これが可能であるか知っているか、同じ結果を得るためのより良い方法があります場合は、ええ...
申し訳ありません。
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
namespace ConsoleApplication8
{
class Program
{
#region Static variables and stuff
static string palabra;
static string definicion;
static string PalabrasContenido;
static string DefinicionesContenido;
static int opcion;
static bool palabraborrada = false;
static bool palabraborrada0 = false;
static FileStream PalabraStream = new FileStream("Palabras.txt", FileMode.Append);
static FileStream DefinicionStream = new FileStream("Definiciones.txt", FileMode.Append);
static byte[] PalabraBytes = new byte[100];
static byte[] DefinicionBytes = new byte[5000];
//static StreamReader PalabrasSR = new StreamReader("C:\\Users\\Dani\\Documents\\Visual Studio 2015\\Projects\\ConsoleApplication8\\ConsoleApplication8\\bin\\Debug\\Palabras.txt");
#endregion
static void ShowMenu()
{
Console.WriteLine("________________________________________________________");
Console.WriteLine("");
Console.WriteLine("Por favor escoje tu opcion.");
Console.WriteLine("________________________________________________________");
Console.WriteLine("");
Console.WriteLine("1 - Agregar palabra.");
Console.WriteLine("2 - Buscar palabra.");
Console.WriteLine("3 - Mostrar palabras.");
Console.WriteLine("4 - Borrar palabra.");
Console.WriteLine("5 - Salir.");
}
static void AskChoice()
{
Console.WriteLine("");
Console.WriteLine("");
int.TryParse(Console.ReadLine(), out opcion);
}
static void AddWord()
{
PalabrasContenido = File.ReadAllText("C:\\Users\\Dani\\Documents\\Visual Studio 2015\\Projects\\ConsoleApplication8\\ConsoleApplication8\\bin\\Debug\\Palabras.txt");
PalabraStream = new FileStream("Palabras.txt", FileMode.Append);
DefinicionStream = new FileStream("Definiciones.txt", FileMode.Append);
Console.Clear();
Console.WriteLine("Ingresa palabra a agregar...\n");
palabra = Console.ReadLine().ToLower() + " ";
Console.WriteLine("");
if (PalabrasContenido.Contains(palabra))
{
Console.Clear();
Console.WriteLine("\n--La palabra '{0}' ya existe en El Diccionario.--\n", palabra);
Console.WriteLine("Volviendo al menu...");
Thread.Sleep(3000);
}
else
{
Console.WriteLine("Ingresa definicion...\n");
definicion = Console.ReadLine() + " ";
Console.WriteLine("");
PalabraStream.Write(Encoding.ASCII.GetBytes(palabra), 0, palabra.Length);
DefinicionStream.Write(Encoding.ASCII.GetBytes(definicion), 0, definicion.Length);
PalabraStream.Close();
DefinicionStream.Close();
Console.Clear();
Console.WriteLine("--La palabra ha sido agregada con exito--\n");
Console.WriteLine("Volviendo al menu...");
Thread.Sleep(3000);
}
}
static void SearchWord()
{
PalabrasContenido = File.ReadAllText("C:\\Users\\Dani\\Documents\\Visual Studio 2015\\Projects\\ConsoleApplication8\\ConsoleApplication8\\bin\\Debug\\Palabras.txt");
DefinicionesContenido = File.ReadAllText("C:\\Users\\Dani\\Documents\\Visual Studio 2015\\Projects\\ConsoleApplication8\\ConsoleApplication8\\bin\\Debug\\Definiciones.txt");
Console.Clear();
Console.WriteLine("Ingresa palabra a buscar...\n");
palabra = Console.ReadLine().ToLower();
if (PalabrasContenido.Contains(palabra))
{
PalabraStream = new FileStream("Palabras.txt", FileMode.Open);
Console.Clear();
Console.WriteLine("\nDefinicion de: {0}", palabra);
Console.WriteLine("________________________________________________________\n");
Console.WriteLine("{0}", definiciones[palabra]);
Console.WriteLine("________________________________________________________\n");
Console.WriteLine("Pulsa enter para continuar...");
Console.ReadLine();
PalabraStream.Close();
}
else
{
Console.Clear();
Console.WriteLine("\n--La palabra ingresada no ha sido encontrada--\n");
Console.WriteLine("Pulsa enter para continuar...");
Console.ReadLine();
Console.WriteLine("");
}
}
static void ShowWords()
{
Console.Clear();
PalabraStream = new FileStream("Palabras.txt", FileMode.Open);
if (PalabraStream.Length > 0)
{
Console.WriteLine("________________________________________________________\n");
Console.WriteLine("Palabras encontradas:");
Console.WriteLine("________________________________________________________\n");
PalabraStream.Read(PalabraBytes, 0, (int)PalabraStream.Length);
Console.WriteLine(Encoding.ASCII.GetString(PalabraBytes));
PalabraStream.Close();
Console.WriteLine("\n\nPulsa enter para continuar...");
Console.ReadLine();
}
else
{
Console.WriteLine("________________________________________________________\n");
Console.WriteLine("Palabras encontradas:");
Console.WriteLine("________________________________________________________\n");
Console.WriteLine("\n--No se han encontrado palabras.--\n");
Console.WriteLine("Pulsa enter para continuar...");
PalabraStream.Close();
Console.ReadLine();
Console.WriteLine("");
}
}
static void DeleteWord()
{
Console.Clear();
Console.WriteLine("\nIngresa palabra a borrar...\n");
palabra = Console.ReadLine().ToLower();
palabraborrada = definiciones.Remove(palabra);
palabraborrada0 = diccionario.Remove(palabra);
if (palabraborrada == true && palabraborrada0 == true)
{
Console.Clear();
Console.WriteLine("\n--La palabra ha sido borrada con exito.--\n");
Console.WriteLine("Volviendo al menu...");
Thread.Sleep(3000);
}
else
{
Console.Clear();
Console.WriteLine("\n--La palabra no existe.--\n");
Console.WriteLine("Volviendo al menu...");
Thread.Sleep(3000);
}
}
static void Exit()
{
Console.Clear();
Console.WriteLine("\n--Gracias por usar El Diccionario.--\n");
Console.WriteLine("Pulsa enter para continuar...");
Console.ReadLine();
Console.WriteLine("");
}
static void InvalidInput()
{
Console.WriteLine("\n--Opcion invalida.--\n");
Console.WriteLine("Pulsa enter para continuar...\n");
Console.ReadLine();
}
static void Main(string[] args)
{
Console.WriteLine("Bienvenido a Tu diccionario.\n");
PalabraStream.Close();
DefinicionStream.Close();
do
{
//Presentar menu y limpiar consola
Console.Clear();
ShowMenu();
//Pedir opcion
AskChoice();
if (opcion == 1)
{
//Añadir palabra
AddWord();
}
if (opcion == 2)
{
//Buscar palabra
SearchWord();
}
if (opcion == 3)
{
//Mostrar palabras
ShowWords();
}
if (opcion == 4)
{
DeleteWord();
}
if (opcion == 5)
{
Exit();
}
if (opcion > 5 || opcion < 1)
{
InvalidInput();
}
}
while (opcion != 5);
}
}
}
私はあなたの編集を元に戻しました。新しいコードをソリューションとして投稿したい場合は、他の誰かと同じように答えとして投稿することで、正しくコードを投稿してください。 **質問**を編集して**回答**を投稿するのは適切ではありません。あなた自身の質問に答えることはここで受け入れられます - 実際、そうする方法に専念する[ヘルプ/自己回答]セクションがあります。 –