|
|
DataMuseum.dkPresents historical artifacts from the history of: CP/M |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CP/M Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3968 (0xf80)
Types: TextFile
Names: »SPMERGE.PAS«
└─⟦a1337913c⟧ Bits:30002679 PGM1 - indeholder forskellige undervisningsprogrammer
└─⟦this⟧ »SPMERGE.PAS«
program merge_skema;
(***************************************************************************
* Et hjælpeprogram til spskema-programmet. Dette program bruges *
* til at flette indtastede data sammen til en fil. Dette gør det muligt *
* at indtaste data på alle 8 maskiner. *
* *
* OBS! programmet må kun anvendes 1 gang på hver undersøgelse. *
* *
****************************************************************************)
const maxsp=30;maxvalg=20;
type svartype = array(.1..maxsp.) of 0..maxvalg;
skematype = record
nr : integer;
svar : svartype;
end;
var diska,diskb : file of skematype;
skema : skematype;
navn : string(.8.);
fila,filb : string(.14.);
fejla,fejlb : integer;
svar : char;
procedure copy_a_til_b;
begin
reset(diska);
while not eof(diska) do begin
read(diska,skema);
write(diskb,skema);
write('.');
end;
writeln;
close(diska);close(diskb);
end;
begin
write(clrhom,' Program til overførsel af data i forbindelse med ');
writeln('spørgeskemaundersøgelser.');
writeln;
writeln('HUSK, at programmet kun må anvendes 1 GANG pr undersøgelse.');
writeln;
writeln('Hvis det benyttes flere gange skal ALLE data indtastes igen.');
writeln;
writeln('Programmet skal benytte 2 disketter. Er det i orden? ');
writeln;
repeat
write(' Ønsker du at fortsætte ? (j/n) ');
read(kbd,svar);
until svar in (.'J','j','N','n'.);
writeln;
if svar in (.'n','N'.) then halt; (* programmet standses *)
repeat
write('Hvad hedder undersøgelsen (max 8 tegn) ');
readln(navn);
until len(navn)>0;
fila:='A:'+navn;
filb:='B:'+navn;
(*$i-*) assign(diska,fila+'.SPS');reset(diska); fejla:=iores;
assign(diskb,filb+'.SPS');reset(diskb); fejlb:=iores;
(*$i+*)
if fejla<>0 then begin
writeln('Den undersøgelse findes ikke!!!');
writeln('Har du brugt et galt navn?? Programmet standses.');
writeln('Du kan evt. skrive DIR *.sps for at få en oversigt.');
writeln('Når du har det rigtige navn kan du starte igen.');
close(diska);close(diskb);
halt;
end;
if (fejla=0) and (fejlb<>0) then begin
writeln('Der er ikke nogen undersøgelse med det navn på diskette nr 2.');
writeln('Hvis du har 2 diskettestationer ,og du ønsker at overføre data');
writeln('fra station nr 1 til nr 2 ,kan du gøre det nu.');
write(' Ønsker du at fortsætte? j/n ');
repeat read(kbd,svar) until svar in (.'J','j','N','n'.);
writeln;
if svar in (.'N','n'.) then begin
close(diska);close(diskb);
halt;
end;
(*$i-*) rewrite(diskb); fejlb:=iores; (*$i+*)
if fejlb<>0 then begin
writeln('Der er stadig noget galt. Programmet stopper.');
writeln('Du har nok overset, at der SKAL være to diskettestationer.');
halt;
end;
copy_a_til_b;
end
else begin
(* i dette tilfælde findes begge filer *)
writeln('Nu kopieres. Det tager et øjeblik inden maskinen må slukkes.');
seek(diska,length(diska));
read(diskb,skema);
while not eof(diskb) do begin
read(diskb,skema);
write(diska,skema);
end;
close( diskb);
rename(diskb,filb+'.bak');
assign(diskb,filb+'.SPS');
rewrite(diskb);
copy_a_til_b;
assign(diskb,filb+'.bak');
erase(diskb);
writeln('Data ligger nu på begge disketter.');
writeln('Nu må maskinen slukkes.');
end;
end.
«eof»