Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Задача на текстовый файл 
:(
    Опции темы
Рус
Дата 14.2.2009, 14:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 25.1.2009

Репутация: нет
Всего: нет



Плз Помогите переделать эту прогу на Текстовый файл:

Program MAGAZ;
Uses crt;
TYPE
   Napitok = Record
   name:string;
   kol:integer;
   gazirovanost:(s_gazom,bez_gaza);
   Cena:integer;
   kompania:string
       end;
     Tmas=array[1..50]of Napitok;
             var
         cv:Tmas;
         n,w:byte;

       procedure Zagr_iz_Fail(FileName:string);
         var f:file of Napitok;
         begin
         assign(f,fileName);  
         reset(f);   
         n:=0;
         while (not eof(f)) and (n <> 50) do
         begin
         inc(n);
         read(f,cv[n]);
         end;
         close(f);
         end;

         procedure Sohr_V_Fail(FileName:string);
         var f:file of Napitok;
             i:integer;
             begin
             assign(f,fileName);
             rewrite(f);   
             for i:=1 to n do
             write(f, cv[i]);  
             Close(f);  
             end;

      procedure vvod(var n:byte;var m:Tmas);
       var s:byte; c:char;
       i:Napitok;
         begin
          n:=0;
          repeat n:=n+1;
           with m[n] do
         begin
         clrscr;
         textcolor(10);
           write('Название напитка =');readln(Name);
           write('Количество=');readln(kol);
           write('газированность= (0-без газа; 1-с газом)');readln(s);
           if s=0 then gazirovanost:=bez_gaza else gazirovanost:=s_gazom;
           write('имя компании производителя= '); readln(kompania);
                    write('Цена');readln(Cena);
         writeln('для того чтобы выйти в меню нажмите  Esc,для продолжения работы нажмите 

Enter' );
               end;
                c:=readkey;
                until c=#27;
                end;
            procedure print(n:byte;var m:Tmas);
            var i:byte;
                 begin
                   clrscr;
                   writeln('Прейскурант на напитки');
                    writeln;
                    writeln('------------------------------------------------------');
                    writeln('|Название|Количество|Газированность|Камапния|Цена');
                    writeln('------------------------------------------------------');
                        for i:=1 to n do
                        begin
                        with m[i] do
                        begin
                         gotoXY(1,whereY); write('|',Name);
                         gotoXY(11,whereY);write('|',kol);
                         gotoXY(22,whereY); if gazirovanost=bez_gaza then 
                          write('|без газа ') else write('с газом');
                         gotoXY(37,whereY); write('|',kompania);

                         gotoXY(49,whereY); write('|',Cena);
                         gotoXY(54,whereY); write('|');
                       end;
                        writeln;
                         writeln('-------------------------------------------------------');
                           end;
                           end;
                           Begin {Osnovnaia proga}
                           clrscr;
                           w:=0;
                           while w<4 do begin
                           textcolor(12);
                           writeln('Меню программы');
                           writeln('1:Ввод данных');
                           writeln('2:Вывод данных на экран');
                           Writeln('3:Загрузка из файла');
                        Writeln('4:Сохранение в файл');
                        writeln('5:Выход');
                        readln(w);
                           case w of
                           1:vvod(n,cv);
                           2:print(n,cv);
                           3:Zagr_iz_Fail('Napitok.dat');
                           4:Sohr_V_Fail('Napitok.dat');
                           end;
                           end;
                           readln;
                           end.

PM MAIL   Вверх
Dobermann
Дата 15.2.2009, 10:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 992
Регистрация: 7.1.2008

Репутация: нет
Всего: 0



Цитата(Рус @  14.2.2009,  14:11 Найти цитируемый пост)
Плз Помогите переделать эту прогу на Текстовый файл:

Зачем? С текстовым файлом будет в 5 раз геморойней следить за такими записями:
Цитата(Рус @  14.2.2009,  14:11 Найти цитируемый пост)
TYPE   
Napitok = Record   
name:string;  
kol:integer;   
gazirovanost:(s_gazom,bez_gaza);   
Cena:integer;   
kompania:string      
end;



PM   Вверх
Рус
Дата 15.2.2009, 10:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 25.1.2009

Репутация: нет
Всего: нет



Цитата(Dobermann @  15.2.2009,  10:37 Найти цитируемый пост)
Y

препод сказал сделать через текстовый файл...вот и приходиться делать

PM MAIL   Вверх
Metalex
Дата 15.2.2009, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 635
Регистрация: 22.10.2008
Где: Украина-ZPсity

Репутация: нет
Всего: нет



Чтоб переделать на текстовый файл достаточно изменить описание в Var:
Код
var Myfile:text;

и поизменять read и  write на readln и writeln где нужно.

Попробуй, должно все получится.

Это сообщение отредактировал(а) Metalex - 15.2.2009, 20:09


--------------------
Don't let the system get you down.
PM WWW ICQ Skype   Вверх
volvo877
Дата 17.2.2009, 00:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(Metalex @  15.2.2009,  19:09 Найти цитируемый пост)
должно все получится.
Как бы не так... Никто не научил Паскаль одним Read-ом читать запись из текстового файла, придется сделать ввод каждого поля. И записывать в файл аналогично: каждое поле записи по отдельности:

Код
{Чуть-чуть поменять определение типа:}
type
  Gaz = (bez_gaza, s_gazom);
  Napitok = Record
    name:string;
    kol:integer;
    gazirovanost: Gaz;
    Cena:integer;
    kompania:string
  end;

{ ... }

procedure Zagr_iz_Fail(FileName:string);
var
  f: text;
  b: byte;
begin
  assign(f,fileName);
  reset(f);
  n:=0;
  while (not eof(f)) and (n <> 50) do begin
    inc(n);
    with cv[n] do begin
      readln(f, name);
      readln(f, kol, b, cena);
      gazirovanost := Gaz(b);
      readln(f, kompania);
    end;
  end;
  close(f);
end;

procedure Sohr_V_Fail(FileName:string);
var
  f: text;
  i: integer;
begin
  assign(f,fileName);
  rewrite(f);
  for i:=1 to n do
    with cv[i] do begin
      writeln(f, name);
      writeln(f, kol, #32, ord(gazirovanost), #32, Cena);
      writeln(f, kompania);
    end;
  close(f);
end;

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0530 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.