File beolvasás, txt és darabolás az egész txt egy sorból áll probléma
2021-08-04T10:40:24+02:00
2021-08-04T19:05:36+02:00
2022-08-12T03:55:37+02:00
neur0nic
Sziasztok!

Új vagyok még itt, de remélem tudtok segíteni, és most tanulok programozni c#-ban.
A problémám van egy a.txt filom, abba számok betük és speciális karakterek vannak (. /).
Egy sorban van az egész és nincs benne "\n" vagy "Enter" én több sorra szeretném szétválasztani a txt -ben találhato adatott pontosan 79 karakterenként és majd miután megvan tovább lépni és betenni ; megadott karakterek után. (de az egy másik lépés) Ebbe kérném a segítségeteket, nagyon sok helyen utána olvastam, de nem találtam ehez hasonlót. igy néz ki a txt-m csatolom. Eddig ezt tudtam megcsinálni ó,a végén hogy mentes le a jót még majd az is lesz.

StreamReader olvas = new StreamReader("Ardaptxt", Encoding.UTF8);
            
            string adat = olvas.ReadLine();
            List<string> adatok = new List<string>();
            adatok.Add(adat);
            for (int i = 0; i < adatok.Count; i++)
            {
                Console.Write(adatok.Insert(79, "\n"));
                i++;
            }

Mutasd a teljes hozzászólást!
de miért van kétszer a i++?
(bár idegen a c#) de a for ciklus nem...
Másik, hogy a ciklusba én beraknám egy másik változóba az adatokat 
x+=adatok;
if (i==79){x+="\n"}
A ciklus végén meg ott a változóba az eredmény.
De mondom nem értek a c#-hez...
Mutasd a teljes hozzászólást!

  • nagyon sok helyen utána olvastam, de nem találtam ehez hasonlót

    Az angol nyelvű google keresést próbáltad?
    Mutasd a teljes hozzászólást!
  • Igen köszönöm a linket, sajnos angolul keveset tudok, de megnéztem ezeket a linkeket.
    Ki is probáltam, hogy működik-e, de az a baj, hogy nekem ugyan úgy csak az első sort, töri meg és nem folytatja, hogy mindegyik következő sort \n -el megtörje. Szóval lehet valamit én rontok el. Még egyszer köszönöm a linkedet.
    Mutasd a teljes hozzászólást!
  • de miért van kétszer a i++?
    (bár idegen a c#) de a for ciklus nem...
    Másik, hogy a ciklusba én beraknám egy másik változóba az adatokat 
    x+=adatok;
    if (i==79){x+="\n"}
    A ciklus végén meg ott a változóba az eredmény.
    De mondom nem értek a c#-hez...
    Mutasd a teljes hozzászólást!
  • Köszönöm a segítségedet! Igen a i++ kétszer szerepelt azt ki is szedtem. Nem tudom miért raktam oda. Megpróbáltam a te megoldásoat beilleszteni, de sajnos folyton hibák voltak. 
    Ez az új és csináltam egy folytonos ciklust. :(

    StreamReader olvas = new StreamReader("Ardap.txt", Encoding.UTF8);

                string adat = olvas.ReadLine();
                for (int i = 0; i < adat.Length; i++)
                {
                    Console.Write(adat.Insert(79, "\n"));
                }
                
                Console.ReadLine();
    Mutasd a teljes hozzászólást!
  • Eddig eljutottam itt már a végén be is rendezi ugy ahogy kell, de még minidg nem értem hol  a hiba.
     StreamReader olvas = new StreamReader("Ardap.txt", Encoding.UTF8);

                string adat = olvas.ReadLine();
                for (int i = 79; i < adat.Length; i += 79)
                {
                    adat = adat.Insert(i, "\n");
                    i++;
                    Console.WriteLine(adat);
                }
                
                Console.ReadLine();
    Mutasd a teljes hozzászólást!
  • Meg lett a megoldás, ha valakit érdekell itt van.

    StreamReader olvas = new StreamReader("Ardap.txt", Encoding.UTF8);
     
                string adat = olvas.ReadLine();
                for (int i =0; i < adat.Length; i= i + 79)
                {
                    adat = adat.Insert(i, "\n");
                    i++;
                }

    Console.WriteLine("{0}",adat);
                Console.ReadLine();

    Az viszonyt bajom volt, hogy az én adatom sokkal hosszabb volt, 789922 Karakter szoval 4-be osztottam az adatott és igy sikeresen megoldotta. a kódolással is baj volt mert nekem amúgy 852, de azt átváltottam más programmal. :) Köszönöm a segítséget mindenkinek a pont mindenkinek járna szívem szerint. De a legtöbbet "pch" segített, mert ott néztem meg jobban mi a baj. Itt a teljes kód:
    StreamReader olvas = new StreamReader("Ardap.txt", Encoding.UTF8);

    string adat = olvas.ReadLine();
    for (int i =0; i < adat.Length; i= i + 79)
    {
    adat = adat.Insert(i, "\n");
    i++;
    }

    StreamReader olvas2 = new StreamReader("Ardap2.txt", Encoding.UTF8);

    string adat2 = olvas2.ReadLine();
    for (int i = 0; i < adat2.Length; i = i + 79)
    {
    adat2 = adat2.Insert(i, "\n");
    i++;
    }

    StreamReader olvas3 = new StreamReader("Ardap3.txt", Encoding.UTF8);

    string adat3 = olvas3.ReadLine();
    for (int i = 0; i < adat3.Length; i = i + 79)
    {
    adat3 = adat3.Insert(i, "\n");
    i++;
    }

    StreamReader olvas4 = new StreamReader("Ardap4.txt", Encoding.UTF8);

    string adat4 = olvas4.ReadLine();
    for (int i = 0; i < adat4.Length; i = i + 79)
    {
    adat4 = adat4.Insert(i, "\n");
    i++;
    }
    Console.WriteLine("{0}{1}{2}{3}",adat,adat2,adat3,adat4);
    Console.ReadLine();
    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