C#: fájlból beolvasni bizonyos szavakat és tömbbe rakni

C#: fájlból beolvasni bizonyos szavakat és tömbbe rakni
2019-11-28T13:47:16+01:00
2019-12-19T14:27:00+01:00
2022-10-15T21:26:24+02:00
Karmko
Sziasztok!

Játékos által megadott méretű pályára szókirakó játékot kell készítenem, amiben megakadtam annál a pontnál, hogy egy szótár txt fájlból kellene adott hosszúságú szavakat beolvasnom, amik maximum annyi karakterből állhatnak, mint a pálya sora/oszlopa. (A szavak nem rakódnak ki a pályára "L" alakban, csak függőlegesen, vízszintesen vagy átlósan.)
Majd ezeket az adott hosszúságú szavakat egy tömbbe kellene helyeznem, de ezt a lépést sehogy sem tudom megoldani.
Esetleg tudna valaki segíteni? Nagyon kezdő vagyok.
Köszönöm!
Mutasd a teljes hozzászólást!

  • Hali!

    Mutasd – forráskóddal/-részlettel –, hogy eddig mivel, hogyan próbálkoztál, meddig jutottál el, mi nem megy, miben/hol akadtál el!

    Mutasd a teljes hozzászólást!
  • class Program { static char[,] PalyaGeneralas() { int x; int y; Console.WriteLine("Add meg a szókereső pálya méretét!"); Console.Write("Sorok száma: "); x = int.Parse(Console.ReadLine()); Console.Write("Oszlopok száma: "); y = int.Parse(Console.ReadLine()); char[,] palya = new char[x,y]; int megfeleloSzavakSzama = 0; StreamReader sr = new StreamReader("szotar.txt"); int karakterSzam = 0; while (!sr.EndOfStream) { string sor = sr.ReadLine(); karakterSzam = sor.Length; if (karakterSzam <= palya.GetLength(0) || karakterSzam <= palya.GetLength(1)) { Console.WriteLine(sor); megfeleloSzavakSzama++; } } //Console.WriteLine(megfeleloSzavakSzama); sr.Close(); //Console.Clear(); string[] sorok = new string[megfeleloSzavakSzama];

    Eddig jutottam. A tanár szerint a szótár fájl első sorában eltárolható a szótár szavak teljes száma, ez alapján létrehozható a szavakat tartalmazó tömb mérete, a beolvasó metódus pedig visszaadhatja, hogy hány olyan szót talált, amik beleférnek a játékos által választott pálya méretbe, ezzel adott a maximális indexérték is.A fenti adatok alapján már megoldható a szavak elhelyezése a táblán.
    Nos, így sem ment:

    string egyben = ""; StreamReader sr = new StreamReader("szotar.txt"); while (!sr.EndOfStream) { egyben += sr.ReadLine().ToUpper() + "#"; } sr.Close(); string[] sorok = egyben .Substring(0, egyben.Length - 1) .Split('#');
    Ennél a megoldásnál addig sem jutottam, hogy a szavak hosszát összemérjem a pálya méretével.
    Mutasd a teljes hozzászólást!
  • Nagy segítség lenne, ha mutatnál pár sort abból a txt fájlból.
    Mutasd a teljes hozzászólást!
  • Ebből nem igazán  derül ki pontosan mit akarsz.

    Esetleg valami ilyet ?

    var rt = System.IO.File.ReadAllLines(@"C:\wrk\szotar.txt").Where(w=>w.Length<4).ToArray();
    Vagy a szavak nincsenek külön sorban ? Ekkor valami delimiter kell.

    var rt = System.IO.File.ReadAllText(@"C:\wrk\szotar.txt").Replace(Environment.NewLine,"").Split('#').Where(w=>w.Length<4).ToArray();
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd