Cześc, na programowaniu dostałem następujące zadanie:
Napisz procedurę/funkcję, która przyjmuje jako parametr plik WE
(typu TXT), gdzie pojedyncza linia przechowuje trzy dowolne wyrazy
rozdzielone spacją. Procedura/funkcja przepisuje tylko środkowy
wyraz z każdej linii do pliku WY. Napisz prosty program
korzystający z tego podprogramu i wyświetlający rezultat jego
działania. UWAGA! Pomiędzy trzema wyrazami może wystąpić dowolna
liczba spacji !!! Zakładamy, że linia z wyrazami nie przekracza
255 znaków !!!
Przykład: tab1 -> abcde dfgre eeerfg, tab2 -> dfgre
Gdyby pomiędzy I a II wyrazem była tylko jedna spacja np: abcde dfgre eeerfg to program wygladalby tak:
uses crt;
var
plik,plik1:textfile;
wyraz,nwyraz,x:string;
n:longint;
i,licznik,k:byte;
begin
clrscr;
Assign(plik,'C:\programy pascala\dane.txt');
Assign(plik1,'C:\programy pascala\danek.txt');
Append(plik1);
reset(plik);
while not Eof(plik) do begin
readln(plik,wyraz);
n:=pos(' ',wyraz);
delete(wyraz,1,n);
n:=pos(' ',wyraz);
x:=copy(wyraz,1,n);
writeln(plik1,x);
end;
close(plik);
close(plik1);
end.
No ale wlaśnie w treści zadania pisze że mogą by rozdzielone dowolną liczbą spacji. Zastannawialem się w jaki sposób można by bylo wykasowac te spacje przed drugim wyrazem? Ewentualnie czy ma ktos inny pomysl na ten program?