kopiowanie z pliku stringow do pliku z warun

0

Mam napisac procedurke ktora dodaje wyrazyz pliku txt do drugiego pliku txt, przy czym w kazdej linii ma byc 1 wyraz i nie moze byc wartosci innych niz string.
Mam zrobione zapisywanie w tej postaci ze przy spacji zapisuje wyraz do drugiego pliku ale mam problem azeby moglo to w jakis sposob eliminowac wszystko NIE stingowe, probowalem zrobic do tego tablice, ale kupa wyszla :

PROCEDURE z_pliku;
VAR
  plik,plik2 : text;
  line:string;
  wyraz : string;
  znak : integer;
  
BEGIN

  assign(plik2, paramIN); //paramIN to ofkoz plik z ktorego dodaje
  reset(plik2);
  assign(plik, paramOUT);

  append(plik);
   while not eof(plik2) do
    begin
         readln(plik2,line);
         repeat
            znak:=pos(#32,line);
            wyraz:=copy(line,1,znak-1);
            line:=copy(line,znak+1,length(line)-znak);
            writeln(plik,wyraz);
         until pos(#32,line)  = 0;
    end;
    writeln(plik,line);
 
     writeln('Slowa zostaly dodane');
     writeln;
     writeln('Wcisnij ENTER');
     readln;

  close(plik2);
  close(plik);
END;

Za wszelkie porady - sugestie bede wdzieczny

0

Mam zrobione zapisywanie w tej postaci ze przy spacji zapisuje wyraz do drugiego pliku ale mam problem azeby moglo to w jakis sposob eliminowac wszystko NIE stingowe, probowalem zrobic do tego tablice, ale kupa wyszla :

Może to troszke rozjaśnisz nam? [???]

0
Deti napisał(a)

Mam zrobione zapisywanie w tej postaci ze przy spacji zapisuje wyraz do drugiego pliku ale mam problem azeby moglo to w jakis sposob eliminowac wszystko NIE stingowe, probowalem zrobic do tego tablice, ale kupa wyszla :

Może to troszke rozjaśnisz nam? [???]

OK wyjasniam :
Podaje programowi plik wejsciowy w ktorym jest jakis tekst z przecinkami, kropkami, cyframi i wszystkimi innmi nie literowymi znakami. Program ma przejrzec plik, wybrac wszystkie wyrazy i zapisac je do innego podawanego pliku w taki sposoba aby nie bylo w tym 2 pliku znaczkow innych niz litery i dodatkowo ma byc jedno slowo w linijce , np :
plik wejsciowy :
To jest tekst. Text ma przecinki, ale trzeba je usunac - razem z kropkami i innymi znakami.
plik wyjsciowy :

 
To
jest
tekst
Text
ma
.
.
.

wprawdzie mam napisana inna procedurke niz ta ktora podalem wyzej, ale w niej zkolei za duzo ENTEROW mi robi bo czasem wychodzi plik ktory ma 'wyraz i 5 enterow'
Oto kod :
(jak ktos bedzie mial pomysl jak go usprawnic zeby nie bylo tyle ENTEROW - bede wdzieczny)

procedure texty; 
var 
  plik1, plik2 : text; 
  nazwa, linia1, linia2 : string; 
  i, j, d : integer; 

begin 
  Write('Podaj nazwe pliku: '); 
  Readln(nazwa); 
  Assign(plik1, nazwa); 
  Assign(plik2, 'out.txt'); 
  Reset(plik1); 
  ReWrite(plik2); 
  repeat 
    readln(plik1, linia1); 
    linia2 := ''; 
    d := length(linia1); 
    j := 1; 
    for i:=1 to d do begin 
      if (linia1[i] in ['0'..'9','A'..'Z','a'..'z'] ) then begin 
        SetLength(linia2,j); 
        linia2[j] := linia1[i]; 
      end; 
      inc(j); 
      if linia1[i] = #32 then begin 
        writeln(plik2, linia2); 
        linia2 := ''; 
        j := 1; 
      end; 
    end; 
  until eof(plik1); { warunek wyjscia z petli } 

  Close(plik1); 
  Close(plik2); 
end;
 

1 użytkowników online, w tym zalogowanych: 0, gości: 1