Не могу заново открыть файл и вывести инфу на экран!! Как это сделать в этих 2х прогах??
Номер 1:
Program MORZE;
Type TElem = ^Elem;
Elem = Record
Next : TElem;
Bukva : String;
End;
Var Stack,E : TElem;
Bukva,Str : String;
I : Integer;
{ procedura vstavki bukvi v stek }
Procedure Add(Bukva : String);
Var E : TElem;
Begin
New(E);
E^.Next := Stack;
E^.Bukva := Bukva;
Stack := E;
End;
Begin
{ otkrivaem dannih }
Assign(Input,'morze.txt');
Reset(Input);
Assign(Output,'output.txt');
ReWrite(Output);
{ chtenie faila }
While Not Eof Do Begin
ReadLn(Str);
Repeat
I := Pos(' ',Str);
If I > 0 Then Begin
Bukva := Copy(Str,0,I-1);
Add(Bukva);
Str := Copy(Str,I+1,Length(Str)-I);
End
Until I = 0;
If Length(Str) > 0 Then Add(Str);
End;
{ pechat' steka v vihodnoi fail }
E := Stack;
While E <> nil Do Begin
WriteLn(E^.Bukva);
E := E^.Next;
End;
{ zakrivaem faili }
Close(Input);
Close(Output);
End.
Program ATS_5_15;
Type TElem = ^Elem;
Elem = Record
Next : TElem;
FIO : String
End;
Var ATS : Array[0..99] Of TElem;
InFile,OutFile : String;
I,Code : Integer;
Str,FIO,Phone : String;
Abonent : TElem;
Begin
{ vvod imen failov }
Write('Enter input filename: '); ReadLn(InFile);
Write('Enter output filename: '); ReadLn(OutFile);
Assign(Input,InFile);
Assign(Output,OutFile);
Reset(Input);
ReWrite(Output);
{ obrabotka dannih }
For I := 0 To 99 Do ATS[I] := nil;
While Not Eof Do Begin
{ chtenie stroki }
ReadLn(Str);
I := Pos(',',Str);
{ izvlekaem fio i nomer telefona }
FIO := Copy(Str,0,I-1);
Phone := Copy(Str,I+1,Length(Str)-I);
If Length(Phone) > 2 Then Phone := Copy(Phone,0,2);
Val(Phone,I,Code);
{ uzanaem pervie dve cifri }
While I >= 100 Do I := I Div 10;
{ dobavlyaem abonenta v spisok }
New(Abonent);
Abonent^.FIO := FIO;
Abonent^.Next := ATS[I];
ATS[I] := Abonent;
End;
{ vivod spiska v vihodnoi fail }
For I := 0 To 99 Do
If ATS[I] <> nil Then Begin
Abonent := ATS[I];
Write(I,':');
While Abonent <> nil Do Begin
Write(Abonent^.FIO);
If Abonent^.Next <> nil Then Write(',');
Abonent := Abonent^.Next;
End;
WriteLn;
End;
{ zakrivaem faili }
Close(Input);
Close(Output);
End.
Program MORZE;
Type TElem = ^Elem;
Elem = Record
Next : TElem;
Bukva : String;
End;
Var Stack,E : TElem;
Bukva,Str : String;
I : Integer;
{ procedura vstavki bukvi v stek }
Procedure Add(Bukva : String);
Var E : TElem;
Begin
New(E);
E^.Next := Stack;
E^.Bukva := Bukva;
Stack := E;
End;
Begin
{ otkrivaem dannih }
Assign(Input,'morze.txt');
Reset(Input);
Assign(Output,'output.txt');
ReWrite(Output);
{ chtenie faila }
While Not Eof Do Begin
ReadLn(Str);
Repeat
I := Pos(' ',Str);
If I > 0 Then Begin
Bukva := Copy(Str,0,I-1);
Add(Bukva);
Str := Copy(Str,I+1,Length(Str)-I);
End
Until I = 0;
If Length(Str) > 0 Then Add(Str);
End;
{ pechat' steka v vihodnoi fail }
E := Stack;
While E <> nil Do Begin
WriteLn(E^.Bukva);
E := E^.Next;
End;
{ zakrivaem faili }
Close(Input);
Close(Output);
End.
Program ATS_5_15;
Type TElem = ^Elem;
Elem = Record
Next : TElem;
FIO : String
End;
Var ATS : Array[0..99] Of TElem;
InFile,OutFile : String;
I,Code : Integer;
Str,FIO,Phone : String;
Abonent : TElem;
Begin
{ vvod imen failov }
Write('Enter input filename: '); ReadLn(InFile);
Write('Enter output filename: '); ReadLn(OutFile);
Assign(Input,InFile);
Assign(Output,OutFile);
Reset(Input);
ReWrite(Output);
{ obrabotka dannih }
For I := 0 To 99 Do ATS[I] := nil;
While Not Eof Do Begin
{ chtenie stroki }
ReadLn(Str);
I := Pos(',',Str);
{ izvlekaem fio i nomer telefona }
FIO := Copy(Str,0,I-1);
Phone := Copy(Str,I+1,Length(Str)-I);
If Length(Phone) > 2 Then Phone := Copy(Phone,0,2);
Val(Phone,I,Code);
{ uzanaem pervie dve cifri }
While I >= 100 Do I := I Div 10;
{ dobavlyaem abonenta v spisok }
New(Abonent);
Abonent^.FIO := FIO;
Abonent^.Next := ATS[I];
ATS[I] := Abonent;
End;
{ vivod spiska v vihodnoi fail }
For I := 0 To 99 Do
If ATS[I] <> nil Then Begin
Abonent := ATS[I];
Write(I,':');
While Abonent <> nil Do Begin
Write(Abonent^.FIO);
If Abonent^.Next <> nil Then Write(',');
Abonent := Abonent^.Next;
End;
WriteLn;
End;
{ zakrivaem faili }
Close(Input);
Close(Output);
End.
input, output - зарезервированные имена для ввода с клавиатуры/вывода на терминал.
Какого рожна Вы их используете?
Примите что-нибудт попроще - f1,f2 и etc.