Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Uses crt;
- type
- list = ^elem;
- elem = record
- data:string;
- next:list;
- end;
- procedure add(var head: list; info:string);
- var x: list;
- begin
- new(x);
- x^.data:=info;
- x^.next:=head;
- head:=x;
- end;
- procedure print(head: list);
- var i:list;
- begin
- i := head;
- while i <> nil do
- begin
- writeln(i^.data);
- i:=i^.next;
- end;
- writeln;
- end;
- procedure del(var head: list;index:integer);
- var
- i,prev:list;
- counter:integer;
- begin
- i := head;
- counter := 0;
- prev := head;
- if(index = 1) then
- begin
- head := head^.next;
- dispose(i);
- end
- else
- while i <> nil do
- begin
- inc(counter);
- if(counter = index) then
- begin
- prev^.next := i^.next;
- i^.next := nil;
- dispose(i);
- break;
- end;
- prev := i;
- i:=i^.next;
- end;
- writeln;
- end;
- var
- list1,list2,buf: list;
- n:integer;
- info:string;
- k:integer;
- i:integer;
- f:text;
- M,NB,KB:integer;
- begin
- list1:=nil;
- list2:=nil;
- write('Count of strings in file : ');
- readln(M);
- write('NB : ');
- readln(NB);
- write('KB : ');
- readln(KB);
- assign(f,'input.txt');
- reset(f);
- for i:=1 to M do
- begin
- readln(f,info);
- add(list1,info);
- end;
- close(f);
- buf := list1;
- for i:=1 to M do
- begin
- add(list2,buf^.data);
- buf := buf^.next;
- end;
- writeln('------------TEXT BEFORE--------------');
- print(list2);
- for i:=NB to KB do
- begin
- del(list2,NB);
- dec(M);
- end;
- writeln('------------TEXT AFTER--------------');
- print(list2);
- assign(f,'afterDel.txt');
- rewrite(f);
- buf := list2;
- for i:=1 to M do
- begin
- writeln(f,buf^.data);
- buf := buf^.next;
- end;
- close(f);
- readkey;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement