1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code]. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Не могу заново открыть файл и вывести инфу на экран!! Как это сделать в этих 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.
Прога 2:
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.
В обоих прогах пытаюсь открыть файл Аутпут(полсе 2ух close), но пишет что файл не открыт для вывода или чтото подобное. Как можна вывести то на экран содержимое файла Output? Не нужно предлагать выводить результат работы.
Помогите, плиз, срочна!
Добавлено через 9 мин. Файлы для первой прогиЖ
Добавлено через 1 мин.
Цитата(not_programmer @ 28.12.2007 20:29)
Не могу заново открыть файл и вывести инфу на экран!! Как это сделать в этих 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.
Прога 2:
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.
В обоих прогах пытаюсь открыть файл Аутпут(полсе 2ух close), но пишет что файл не открыт для вывода или чтото подобное. Как можна вывести то на экран содержимое файла Output? Не нужно предлагать выводить результат работы.