Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2009, 18:19   #1
hascker
Новичок
Джуниор
 
Регистрация: 14.09.2009
Сообщений: 2
По умолчанию Работа с текстовыми файлами

Здравствуйте, вообще у меня проблемка возникла, данна программа надо свзяать переменны с текстовым файлом(любым), так что бы при работе в программе изминения сохронялись при выходе, я сделал наброски(мелким шрифтом) правильно если да то как закончить?
http://depositfiles.com/files/20vkbqzmy--листинг

Последний раз редактировалось hascker; 14.09.2009 в 19:07.
hascker вне форума Ответить с цитированием
Старый 14.09.2009, 18:22   #2
sheka
Босс
Форумчанин
 
Аватар для sheka
 
Регистрация: 03.06.2009
Сообщений: 125
По умолчанию

Посмотрел... Как-то страшно по ссылке переходить.

Две одинаковые вложенные ошибки называются четной ошибкой и ошибкой не являются.
Ася 255507394. Отзывы здесь.
sheka вне форума Ответить с цитированием
Старый 14.09.2009, 18:27   #3
hascker
Новичок
Джуниор
 
Регистрация: 14.09.2009
Сообщений: 2
По умолчанию

Цитата:
Сообщение от sheka Посмотреть сообщение
Посмотрел... Как-то страшно по ссылке переходить.

что страшного?=) мне просто нужна помощь=)
я же не буду прогу сюда копирывать хотя можно=)
hascker вне форума Ответить с цитированием
Старый 14.09.2009, 18:39   #4
SuperVisor
Павел Сергеевич
Форумчанин
 
Регистрация: 05.11.2006
Сообщений: 665
По умолчанию

Скачал - обычный doc. Вирусов НЕТ.
To hascker:
Разбей код на пару-тройку частей или прикрепи файл на форум.
Познавая других, мы познаем себя.
С'est la vie...
SuperVisor вне форума Ответить с цитированием
Старый 14.09.2009, 19:00   #5
sheka
Босс
Форумчанин
 
Аватар для sheka
 
Регистрация: 03.06.2009
Сообщений: 125
По умолчанию

Код:
uses crt;
type EE2=array[1..8] of record
    Name1:string[50];
    Sex1:char;{w,m}
    PrPrib1:char;{g,k}
    Bron1:char;{B}
    Podsel1:char;{d,n}
          Name2:string[50];
          Sex2:char;{w,m}
          PrPrib2:char;{g,k}
          Bron2:char;{B}
          Podsel2:char;{d,n}
   end;
    EE34=array[3..4,1..16] of record
    Name1:string[50];
    Sex1:char;{w,m}
    PrPrib1:char;{g,k}
    Bron1:char;{B}
    end;
    EE58=array[5..8,1..16] of record
    Name1:string[50];
    Sex1:char;{w,m}
    PrPrib1:char;{g,k}
    Bron1:char;{B}
    Podsel1:char;{d,n}
           Name2:string[50];
           Sex2:char;{w,m}
           PrPrib2:char;{g,k}
           Bron2:char;{B}
           Podsel2:char;{d,n}
   end;
      var i,j,a:integer;m,h:char;f:text;Put:string;
        e2: ee2; e34:ee34; e58:ee58; 

{-------------------процедуры заселения----------------------------------}
{------------------------2-го этажа-------------------------------------------}
   procedure VV_E2(var E2:ee2);
     
  begin
     writeln('введите номер комнаты');read(i);
     writeln('введите № места '); readln (a);
     if a=1 then begin
    writeln('введите фамилию 1-го человека ');readln(E2[i].name1);
    writeln('введите пол 1-го:(m/w) m-men, w-women');readln(E2[i].sex1);
    writeln('введите причину пребывания 1-го(g/k)g-гость,k-командировка ');readln(E2[i].PrPrib1);
    writeln('можно подселить к 1-му(d/n)d-да ,n-нет');readln(E2[i].Podsel1);
    end;
     if a=2 then begin
    writeln(' введите фамилию 2-го человека ');readln(E2[i].name2);
    writeln(' введите пол 2-го:(m/w) m-men, w-women ');readln(E2[i].sex2);
    writeln(' введите причину пребывания 1-го(g/k)g-гость,k-командировка ');readln(E2[i].PrPrib2);
    writeln('можно подселить к 2-му(d/n)d-да ,n-нет ');readln(E2[i].Podsel2);
    end;
 end;
{-------------------------3,4 этажа-----------------------------------------}
   procedure VV_E34(j:integer; var E34:ee34);
    begin
    writeln(' введите номер комнаты ');read(i);
    writeln(' введите фамилию человека ');readln(E34[j,i].name1);
    writeln(' введите пол:(m/w) m-men, w-women ');readln(E34[j,i].sex1);
    writeln(' введите причину пребывания (g/k)g-гость,k-командировка  ');readln(E34[j,i].PrPrib1);
  end;

Две одинаковые вложенные ошибки называются четной ошибкой и ошибкой не являются.
Ася 255507394. Отзывы здесь.
sheka вне форума Ответить с цитированием
Старый 14.09.2009, 19:01   #6
sheka
Босс
Форумчанин
 
Аватар для sheka
 
Регистрация: 03.06.2009
Сообщений: 125
По умолчанию

Код:
 {--------------------------с 5 по 8 этаж-----------------------------------------------}
     procedure VV_E58(j:integer;var E58:ee58);
   begin
     writeln(' введите номер комнаты ');read(i);
     writeln('введите № места '); readln (a);
     if a=1 then begin
    writeln(' введите фамилию 1-го человека ');readln(E58[j,i].name1);
    writeln(' введите пол 1-го:(m/w) m-men, w-women ');readln(E58[j,i].sex1);
    writeln(' введите причину пребывания 1-го(g/k)g-гость,k-командировка ');readln(E58[j,i].PrPrib1);
    writeln(' можно подселить к 1-му(d/n)d-да ,n-нет ');readln(E58[j,i].Podsel1);
    end;
     if a=2 then begin
    writeln(' введите фамилию 2-го человека  ');readln(E58[j,i].name2);
    writeln(' введите пол 2-го:(m/w) m-men, w-women ');readln(E58[j,i].sex2);
    writeln(' введите причину пребывания 2-го(g/k)g-гость,k-командировка ');readln(E58[j,i].PrPrib2);
    writeln(' можно подселить к 2-му(d/n)d-да ,n-нет ');readln(E58[j,i].Podsel2);
    end;
   end;

  {-------------------процедуры выселения---------------------------------}
  {------------------------2-го этажа-------------------------------------------}
  procedure VS_E2(var E2:ee2);
          begin
                writeln('введите номер комнаты');read(i);
                writeln('введите № места'); readln (a);
          if a=1 then begin
           E2[i].name1:='';
           E2[i].sex1:=' ';
           E2[i].PrPrib1:=' ';
           E2[i].Bron1:=' ';
           E2[i].Podsel1:=' ';
          end;
             if a=2 then begin
              E2[i].name2:=' ';
              E2[i].sex2:=' ';
              E2[i].PrPrib2:=' ';
              E2[i].Bron2:=' ';
              E2[i].Podsel2:=' ';

             end;
        end;
    {--------------------------3,4 этажа-----------------------------------------}

         procedure VS_E34(j:integer;var E34:ee34);
           begin     writeln('введите номер комнаты');read(i);
           E34[j,i].name1:=' ';
           E34[j,i].sex1:=' ';
           E34[j,i].PrPrib1:=' ';
           E34[j,i].Bron1:=' ';


             end;
    {------------------------с 5 по 8 этаж-------------------------------------}


      procedure VS_E58(j:integer;var E58:ee58);
          begin
                writeln(' введите номер комнаты ');read(i);
                writeln(' введите № места '); readln (a);
          if a=1 then begin
           E58[j,i].name1:=' ';
           E58[j,i].sex1:=' ';
           E58[j,i].PrPrib1:=' ';
           E58[j,i].Bron1:=' ';
           E58[j,i].Podsel1:=' ';
          end;
             if a=2 then begin
              E58[j,i].name2:=' ';
              E58[j,i].sex2:=' ';
              E58[j,i].PrPrib2:=' ';
              E58[j,i].Bron2:=' ';
              E58[j,i].Podsel2:=' ';

             end;
         end;


 {------------------------- Процедуры бронирования---------------------}
 {------------------------2-го этажа-------------------------------------------}

 procedure B_E2(j:integer; var E2:ee2);
  begin
     writeln(' введите номер комнаты ');read(i);
     writeln('введите № места '); readln (a);
     if a=1 then
      begin
     writeln('забронировать?(b)');readln(E2[i].Bron1);
      end;
     if a=2 then
      begin
     writeln(' забронировать?(b)');readln(E2[i].Bron2);
      end;
  end;                                             
  {-------------------------- 3,4-го этажа -----------------------------------}

 procedure B_E34(j:integer; var E34:ee34);
 begin
    writeln(' введите номер комнаты ');read(i);
    writeln('забронировать?(b)'); readln(E34[j,i].Bron1);

 end;
  {--------------------------с 5 по 8 этаж----------------------------------------------}

Две одинаковые вложенные ошибки называются четной ошибкой и ошибкой не являются.
Ася 255507394. Отзывы здесь.
sheka вне форума Ответить с цитированием
Старый 14.09.2009, 19:01   #7
sheka
Босс
Форумчанин
 
Аватар для sheka
 
Регистрация: 03.06.2009
Сообщений: 125
По умолчанию

Код:
 procedure B_E58(j:integer; var E58:ee58);
  begin
     writeln(' введите номер комнаты ');read(i);
     writeln(' введите № места '); readln (a);
     if a=1 then
      begin
     writeln(' забронировать?(b)');readln(E58[j,i].Bron1);
      end;
     if a=2 then
      begin
     writeln(' забронировать?(b)');readln(E58[j,i].Bron2);
      end;
  end;

 {-------------------------Процедура бронирования  info----------------------}
 procedure info_b(e2:ee2;e34:ee34;e58:ee58);
  begin

    for i:=1 to 8 do
    begin
    if e2[i].bron1='b' then write ('2',i:2,'  1-е место забронированное') ;
    if e2[i].bron2='b' then write ('2',i:2,'  2-е место забронированное'') ;
    end;

    for j:=3 to 4 do for i:=1 to 16 do
    begin
    if e34[j,i].bron1='b' then write (j:1,i:2,'  место забронированное');
    end;

    for j:=5 to 8 do for i:=1 to 16 do
    begin
    if e58[j,i].bron1='b' then write (j:1,i:2,'  1- место забронированное ');
    if e58[j,i].bron2='b' then write (j:1,i:2,'  2- место забронированное ')
    end;

  end;

   {----------------------процедура свободных номеров -----------------------------}
    procedure info_sv_n(e2:ee2;e34:ee34;e58:ee58);
   begin
    for i:= 1 to 8 do
    begin
    if (e2[i].name1=' ') and (e2[i].name2=' ')   then write ('2',i:2)
    end;
    for j:=3 to 4 do for i:=1 to 16 do
    begin
    if e34[j,i].name1=' ' then write (j:1,i:2)
    end;
    for j:=5 to 8 do for i:=1 to 16 do
    begin
    if (e58[j,i].name1=' ') and (e58[j,i].name2=' ') then write (j:1,i:2)
    end;
   end;
    {---------------------- Процедура свободных женских мест ------------------}
    procedure info_sv_w(e2:ee2;e34:ee34;e58:ee58);
 begin
    for i:= 1 to 8 do
    begin
    if (e2[i].sex1='w') and (e2[i].name2=' ') then write ('2',i:2, '(2)')
    end;
    for i:= 1 to 8 do
     begin
    if (e2[i].sex1=' ') and (e2[i].name2='w') then write ('2',i:2, '(1)')
     end;
    for j:=5 to 8 do for i:=1 to 16 do
     begin
    if (e58[j,i].sex1='w') and (e58[j,i].sex2=' ') then write (j:1,i:2, '(2)')
     end;
    for j:=5 to 8 do for i:=1 to 16 do
     begin
    if (e58[j,i].sex1=' ') and (e58[j,i].sex2='w') then write (j:1,i:2, '(1)')
     end;
 end;
    {---------------------- процедура свободных мужских мест ---------------------}
    procedure info_sv_m(e2:ee2;e34:ee34;e58:ee58);
 begin
    for i:= 1 to 8 do
     begin
    if (e2[i].sex1='m') and (e2[i].name2=' ') then write ('2',i:2, '(2)')
     end;
    for i:= 1 to 8 do
     begin
    if (e2[i].sex1=' ') and (e2[i].name2='m') then write ('2',i:2, '(1)')
     end;
    for j:=5 to 8 do for i:=1 to 16 do
     begin
    if (e58[j,i].sex1='m') and (e58[j,i].sex2=' ') then write (j:1,i:2, '(2)')
     end;
    for j:=5 to 8 do for i:=1 to 16 do
     begin
    if (e58[j,i].sex1=' ') and (e58[j,i].sex2='m') then write (j:1,i:2, '(1)')
     end;
 end;
   {-------------------------процедура инфо--------------------------------}

   procedure info(e2:ee2;e34:ee34;e58:ee58);
 begin
  repeat clrscr;
  write ('Menu:1-забронированые №. 2-свободные №. 3- свободные женских мест . 4- свободные мужских мест . 5-выход');
 read(h);
  case h of
  '1': info_b(e2,e34,e58);
  '2': info_sv_n(e2,e34,e58);
  '3':info_sv_w(e2,e34,e58);
  '4': info_sv_m(e2,e34,e58);
  '5':exit   end;
     until h<>'5'
  end;
  {---------------------------программа ------------------------------------}
Begin 
  while upcase(m)<>'4' do
 begin clrscr;
writeln ('Menu:1-заселение  2-выселение  3-инфо 4-бронирование №  5-выход');
   m:=readkey;
   case upcase(m) of
'1':
   begin
    writeln ('введите этаж');readln(j);
    if j= 2 then begin VV_E2(e2) end;
    if (j=3) or (j= 4) then begin VV_E34(j,e34) end;
    if(j= 5) or  (j= 6)  or (j= 7) or  (j= 8) then begin VV_E58(j,e58) end;
  end;
'2':
   begin
    writeln (' введите этаж ');readln(j);
    if j= 2 then begin VS_E2(e2) end;
    if (j=3) or (j= 4) then begin VS_E34(j,e34) end;
    if(j= 5) or  (j= 6)  or (j= 7) or  (j= 8) then begin VS_E58(j,e58) end;
  end;
'3': 
   begin  info(e2,e34,e58) end;
'4': then
   begin
   writeln (' введите этаж ');readln(j);
    if j= 2 then begin B_E2(j,e2) end;
    if (j=3) or (j= 4) then begin B_E34(j,e34) end;
    if(j= 5) or  (j= 6)  or (j= 7) or  (j= 8) then begin B_E58(j,e58) end;
  end;
'5':   exit;
end;

Put:='D:\TP7\BIN\Primer3'; {Полный путь к файлу }
assign(f,Put); {Связываем файл с переменной f}
  rewrite(f); {Открываем файл на запись}
for j:=1 to 8 do with EE2[i] do writeln(f,Name1,Sex1,PrPrib1,Bron1,Podsel1,Name2,Sex2,PrPrib2,Bron2,Podsel2);
for j:=3 to 4 do for i:=1 to 16 dowith EE34[i,j] do writeln(f,Name1,Sex1,PrPrib1,Bron1);
for j:=5 to 8 do for i:=1 to 16 do with EE58[i,j] do writeln(f,Name1,Sex1,PrPrib1,Bron1,Podsel1,Name2,Sex2,PrPrib2,Bron2,Podsel2);
close(f);

end.

Две одинаковые вложенные ошибки называются четной ошибкой и ошибкой не являются.
Ася 255507394. Отзывы здесь.

Последний раз редактировалось sheka; 14.09.2009 в 19:50.
sheka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
посмотрите пожалуйста merets Паскаль, Turbo Pascal, PascalABC.NET 1 10.09.2009 12:08
посмотрите как merets Паскаль, Turbo Pascal, PascalABC.NET 7 08.09.2009 20:35