Datuve :: Forums :: Arhīvs :: problēma ar pascal+text failiem

Datuve

Mana Datuve

Reģistrācija | Noteikumi | Paroles atjaunošana



Forums

Ieskaties


Raksti

Lietotāji online

Lietotāji online: 67

Reģistrētie lietotāji online: 0

Viesi online: 67

Datuve.lv video
Top.LV

problēma ar pascal+text failiem

Ievietoja: masterdesmaize @ 2010.10.28 22:49  

Tā tad mans uzdevums ir - No TEXT faila ielasīt simbolu rindas, veikt to apstrādi un apstrādes rezultātu ievadīt citā TEXT failā. Ja ievades failā divas viena otrai sekojošas rindas ir vienādas, tad izvades failā otrā vienādās rindas sākumā pievieno tekstu „COPY”. Tā teksta faila kopēšana no viena faila otrā īpašas grūtības nesagādāja, bet pēdējais teikums "Ja ievades failā ir divas viena otrai ..." liek saprast, ka paskāls ir diezgan sveša lieta. Būtu lieliski, ja kāds varētu izlīdzēt.

līdz šim esmu ticis tik tālu

uses
crt;
var
f,d:text;
s, :string;
begin
clrscr;
assign(f,'Z:\speckur\text.txt');
reset(f);
assign(d,'z:\speckur\text2.txt');
rewrite(d);
while (eof(f)=false) do begin
 readln(f, s);
 writeln(d, s);
 end;
close(f);
close(d);
end.

Komentāri:

#1 ob1 @ 2010.10.29 01:16

apstrāde varētu notikt pēc "readln(f, s);" - tad varētu salīdzināt vai rinda nav vienāda ar iepriekšējo.

#2 masterdesmaize @ 2010.10.29 12:57

es tā mēģināju, bet tad viņš pārbaudīja man ik pa divām rindām un, ja piemēram pirmā rinda nav vienāda ar otro, bet otrā ir vienāda ar trešo rindu tad viņš nepievieno "copy" priekšā trešajai rindai izvades failā.

#3 sLIDe @ 2010.10.29 14:22

Vienam jau te citā forumā bija līdzīgs uzdevums, kur rindu, kas atkārtojas, nevajadzēja rakstīt. Domāju, ka pats mācēsi pārveidot.

http://paste.php.lv/1d829829f141eca958efe5f02e75d7a2?lang=pascal

#4 karuuzo @ 2010.10.29 17:53

#3: bij tāds uzdevums arī te :)

Autoram, vai tu taisies uzsākt programmētāja/programmas izstrādātāja karjeru? Ja nē, lasi tālāk...

uses
crt;
var
f,d:text;
s, sPrev:string;
begin
clrscr;
assign(f,'Z:\speckur\text.txt');
reset(f);
assign(d,'z:\speckur\text2.txt');
rewrite(d);
sPrev = '';
while (eof(f)=false) do begin
readln(f, s);
if s = sPrev then
 writeline (f, 'COPY'+s);
else

 writeln(d, s);
sPrev := s;
end;
close(f);
close(d);
end.

Man galvā kompilators slikti strādā, tā kā var būt arī kāda kļūda, bet, ja to nemāki izlabot, ar tevi ir galīgi švaki ;)

m

#5 masterdesmaize @ 2010.11.01 20:38

Nē, programmētāja karjera nebūs man piemērota.

SUPER ! viss sanāca liels paldies tev karuuzo