Kezdőoldal » Számítástechnika » Programozás » Info házimhoz szeretnék...

Info házimhoz szeretnék segítséget kérni. Tudnátok segíteni?

Figyelt kérdés

A következő házit kaptuk, Lazarussal kellene megcsinálnom:


A BE.TXT szöveges fájl egész számokat tartalmaz szóközzel elválasztva.

Készítse el a KI.TXT szöveges fájlt, amely egy sorban csak 3 számot tartalmaz!


Pl.

BE.TXT

1 2 3 4 5 6 7 8 9 10


KI.TXT

1 2 3

4 5 6

7 8 9

10


Nem arra kérlek titeket, hogy megoldjátok helyettem, csak tippeket és információkat (esetleg linkeket) szeretnék. Előre is köszönöm.



2013. márc. 2. 22:17
 1/4 anonim ***** válasza:

Egyszerű. Beolvasod a fájlt soronként, a beolvasott szöveget szóköz (#32) karakterek mentén részekre bontod, és hármasával kiírod ++figyelsz arra hogy a sorok között legyen "átfedés", tehát pl:


be.txt:


3 4 5 6

2 3 4


ki.txt:


3 4 5

6 2 3

4

2013. márc. 2. 22:22
Hasznos számodra ez a válasz?
 2/4 ejbenjaro ***** válasza:

Én valószínűleg csinálnék két Stringlistet, az elsőbe beolvasnám a BE.TXT-t, majd az ExtractStrings eljárással felvágnám a szóközök mentén (ha több sor is van a fájlban, akkor a sorvége jeleket is belevenném és a stringlist text propertyjénből venném az adatokat, mert így az egész fájl tartalmát egy stringként adja vissza). Az extrtactstrings a másik stringlistbe fogja visszaadni az eredményt, minden szám egy sor a stringlistben. Innen kiírni pedig már egyszerű.


pl:

program szamdarabol;


{$mode objfpc}{$H+}


uses Classes, Sysutils;


var

befajl: TStringlist;

kimenet: TStringlist;

i: integer;


begin

Befajl:=TStringList.Create;

Befajl.LoadFromFile('BE.TXT');


Kimenet:=TStringList.Create;


ExtractStrings([' '],[],pChar(Befajl.Text),kimenet);


for i:=0 to Kimenet.Count-1 do

begin

if (i<>0) and ((i mod 3)=0) then writeln();

write(Kimenet[i],' ');

end;


Befajl.Clear;

Befajl.Free;

Kimenet.Clear;

Kimenet.Free;

end.

2013. márc. 3. 15:47
Hasznos számodra ez a válasz?
 3/4 anonim ***** válasza:
beolvasod karaktertömbbe az egészet, ciklussal végigfutsz rajta, egy counterrel számlálod a szóközöket, minden 3.nál sortörést printelsz szóköz helyett.
2013. márc. 7. 18:38
Hasznos számodra ez a válasz?
 4/4 anonim ***** válasza:

Az ilyen "beolvasom az egészet" megoldásoknál mindig megkérdezem, hogy mi van akkor ha a file 3 giga neked viszont csak 2 giga szabad memóriád van? :)


Én streamként nyitnám meg az input és output filet, a te esetedben karakterenként olvasnám be,írnám ki az adatokat és minden harmadik szóköz után beszúrnék egy extra sor vége karakter(eke)t is.


Elegánsabb, és kevésbé unalmas megoldás.

Az, hogy nem kell darabolni és tárolni semmit csak hab a tortán.

2013. márc. 9. 00:22
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!