Also lerne ich gerade C# und eine der Übungen aus dem Buch, das ich lese, um zu lernen, ist eine Art Wörterbuchprogramm, in dem Sie Ihre eigenen Wörter und Definitionen hinzufügen können. Im Code, wenn der Benutzer das Wort und die Definition für das Wort eingibt, gebe ich jedes in eine andere Textdatei ein. Das Problem, das ich habe, ist, dass, wenn der Benutzer nach einem Wort sucht, das er zuvor hinzugefügt hat, ich das Programm benötige, um dieses Wort mit seiner entsprechenden Definition zu drucken. Also brauche ich das Programm, um zu wissen, wo in der Definitionstextdatei die entsprechende Definition für dieses Wort beginnt und endet, und dann das auszudrucken.Kann ich Text aus einer TXT-Datei mit anderem Text aus einer anderen TXT-Datei verknüpfen? C#
Ich weiß nicht, ob dies möglich ist, oder wenn es einen besseren Weg, um das gleiche Ergebnis zu erhalten, aber ja ...
Sorry, wenn ich nicht ich klar Ich fange nur zu lernen: P und sorry, wenn mein Englisch ist nicht das größte (es ist nicht meine Muttersprache)
gehend, den Code hier setzen (einige davon es auf spanisch):
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);
}
}
}
Ich habe Ihre Bearbeitung zurückgesetzt. Wenn Sie Ihren neuen Code als Lösung posten möchten, tun Sie dies richtig, indem Sie ihn als Antwort posten, genau wie jeder andere auch. Bearbeiten Sie Ihre ** Frage **, um eine ** Antwort ** zu posten, ist nicht angemessen. Hier ist es akzeptabel, Ihre eigene Frage zu beantworten - in der Tat gibt es einen Abschnitt [help/self-answer], der dafür zuständig ist. –