IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> файлы, файлы
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской
Реальное имя: Михаил

Репутация: -  0  +


как переписать информацию и неформатног record файла, в форматный text файл?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


можешь привести здесь, как у тебя описаны эти файлы?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской
Реальное имя: Михаил

Репутация: -  0  +


 program svet;
      type tovar=record
      shapka:string[50] ;
      tip:string[10];
      name:string[10];
      art:string[10];
      coast:string[10];
      proizv:string[10];
      end;
{_____________________________________________________}
var
   work_file : file of tovar;
         rec : tovar;
   file_name : string;
         key : integer;
        exit : boolean;
           x : string;
           shapka:string;
           srst:real;
 {----------------------------------------------------------------------------}
      procedure add_record;
      begin
      writeln('Record N ',filepos(work_file)+1);
      with rec do
          begin
              shapka:= 'і tip tovara і naimenovanie і articul і stoimost і O/P і';

              readln(shapka) ;
               write('type tovara  ');
               readln(tip);
               write('tovar   ');
               readln(name);
               write('articul  ');
               readln(art);
               write('stoimost  ');
               readln(coast);
               write('obem proizvodstva  ');
               readln(proizv);
               write(work_file,rec);
          end;
          end;
{_________________________________________________________}
      procedure create_new_file;
      var
   i,n:integer;
      begin
     write('enter file name');
     readln(file_name);
     assign(work_file,file_name);
     rewrite(work_file);
     writeln('Create records of file ',file_name);
     write('Enter count records: ');
     readln(n);
     for i:=1 to n do add_record;
     writeln('FILE CREATED');
     writeln('File of data have ',filesize(work_file),' records');
     close(work_file);
   end;
   {-----------------------------------------------------------------}
   procedure add_records_in_the_end;
begin
         write('enter file name');
     readln(file_name);
     assign(work_file,file_name);

     {$I-}
     reset(work_file);
     {$I+}
     if IOresult = 0 then
        begin
             seek(work_file,filesize(work_file));
             add_record;
             writeln('Data is wrote. So ',filesize(work_file),' records');
             close(work_file);
        end
     else
         writeln('File with name '+file_name+' is not');
end;
{-----------------------------------------------------------------------}

  {______________________________________________________________________}
   procedure output_record;
begin
     read(work_file,rec);
     with rec do
          begin
               write('N ',filepos(work_file),' : ');
               writeln('tip: ',tip);
               writeln('naimenovanie: ',name);
               writeln('articul ',art);
               writeln('cena: ',coast);
               writeln('o/p: ',proizv)
          end;
end;
{----------------------------------------------------------}
   procedure output_all_records;
   begin
     write('enter file name');
     readln(file_name);
     assign(work_file,file_name);
     assign(work_file,file_name);
     {$I-}
     reset(work_file);
     {$I+}
     if IOresult = 0 then
        begin
             seek(work_file,0);
             writeln('OUTPUT INFORMATION ABOUT BOOK ','"',file_name,'"');
             while (not eof(work_file)) do output_record;
        end
     else
         writeln('File '+file_name+' is not');
end;
{--------------------------------------------------------------------}
procedure update_records;
var
   number_of_record:integer;
begin
      write('enter file name');
     readln(file_name);
     assign(work_file,file_name);
     {$I-}
     reset(work_file);
     {$I+}
     if IOresult = 0 then
        begin
             writeln('Enter number of rewrite record :');
             readln(number_of_record);
             seek(work_file,number_of_record-1);
             writeln('Zna4enie of this record: ');
             output_record;
             seek(work_file,number_of_record-1);
             writeln('Enter new zna4enie ',number_of_record,' record');
             add_record;
             close(work_file);
        end
     else
         writeln('nepvernoe' +file_name);
end;

 {-------------------------------------------------------------------------}
  begin
     exit:=false;
          repeat
          writeln('                                      MENU');
           writeln('1 - Sozdat" noviy fail');
           writeln('2 - prosmotr informacii o tovare');
           writeln('3 - Obnovit" zapis');
           writeln('4 - dobavit" zapis');
           writeln('5 -SOSTAVIT SPISOK');
           writeln('6 - EXIT');
           write('Your choose: ');
           readln(key);
           case key of
                1:create_new_file;
                2:output_all_records;
                3: update_records;
                4:add_records_in_the_end;
                6:exit:=true;
           end;
           writeln('Executed. <ENTER>');
           readln;
           until exit;
           readln;
end.
end.




соответственно после(или в ней?)подрограммы ввода нужно записать этот файл text
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


1. Открыть бесформатный файл на ввод.
2. Открыть текстовый файл на запись.
3. Считать запись из бесформатного файла.
4. Записать в текстовый файл.
5. Если нет конца файла - на 3.
6. Закрыть оба файла.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


andriano, чудные советы.
мне понравилось.
особенно п.3 и 4.
с учетом того, что файл, из которого пишем, судя по всему, типизированный (work_file : file of tovar;)....
можешь показать _компилирующуюся_ реализацию того, как ты это себе представляешь?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


На компилируемость не проверял, но примерно так:

repeat
  blockread(FileIn,MyRecord,sizeof(MyRecord));
  writeln(FileOut,MyRecord.Item1,' ',MyTrcord.Item2,' ',MyRecord.Item3);
until eof(FileIn);


Это для тиа файла file, если файл типа file of MyRecord, то:
  read(FileIn,MyRecord);

А что, что-то не так?


PS. Фрагменты эквивалентны в том смысле, что с одним и тем же файлом может работать с равным успехом ЛЮБОЙ из них. Т.е. в данном случае файл, созданных типизированным, можно открыть и читать как нетипизированный и наоборот.

Сообщение отредактировано: andriano -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


из описанного тобой п.4 можно было понять, что речь идет о записи по полям, а не целиком?


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской
Реальное имя: Михаил

Репутация: -  0  +


именно по полям, мне это и надо
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Новичок
*

Группа: Пользователи
Сообщений: 16
Пол: Мужской
Реальное имя: Михаил

Репутация: -  0  +


ничего не получается...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


почему?
показывай, что написал....


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(мисс_граффити @ 4.01.2008 0:25) *

из описанного тобой п.4 можно было понять, что речь идет о записи по полям, а не целиком?
"Записать" и означает "записать" - любым доступным для данного ЯВУ и выбранного компилятора способом. Если компилятор не позволяет определить процедуру форматного преобразования для пользовательсткого типа, то только по полям. Если позволяет - можно и запись целиком.
Так что если не ставить знак равенства между "Задачи" и "Borland Pascal 7.0" (что, кстати, совсем не следует из условия), то вполне можно написать:
uses DOS;

procedure GetCurrentDate(var date: DateTime);
var
  Year, Month, Day, DayOfWeek: Word;
begin
  GetDate(Year, Month, Day, DayOfWeek);
  date.Year := Year;
  date.Month := Month;
  date.Day := Day;
end;

procedure __writer (var f: text; const value: DateTime; w: Integer);
const NameMonth : array[1..12]of string[3] = ('Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
begin
  with value do Write(f, Day, '-', NameMonth[Month], '-', Year);
end;

var
  date: DateTime;
begin
  GetCurrentDate(date);
  Writeln('Current Date: ',date);
end.

Вывод:
Цитата
Current Date: 5-Jan-2008


Сообщение отредактировано: andriano -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


просто человек
******

Группа: Пользователи
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


Цитата
"Записать" и означает "записать" - любым доступным для данного ЯВУ и выбранного компилятора способом.

Особенно когда человек спрашивает, КАК это сделать.
Примерно то же:
-Как написать сортировку слиянием?
-Заполняешь массив. Сортируешь его (слиянием). Выводишь полученный массив на экран или в файл.


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Гуру
*****

Группа: Пользователи
Сообщений: 1 168
Пол: Мужской
Реальное имя: Сергей Андрианов

Репутация: -  28  +


Цитата(мисс_граффити @ 5.01.2008 14:11) *

Особенно когда человек спрашивает, КАК это сделать.
Примерно то же:
-Как написать сортировку слиянием?
-Заполняешь массив. Сортируешь его (слиянием). Выводишь полученный массив на экран или в файл.

Нет, человек спрашивал как переписать из одного файла в другой. Я дал алгоритм в 6 шагов. Можно, конечно, детализировать, но для этого нужно минимум получить ряд уточнений, которыми мы пока не располагаем.

Кстати, создается впечатление, что приведенная программа написана совсем не автором темы. А автору нужно только чтобы кто-то внес в чужую программу нужные ему исправления.

Хотелось бы получить от автора темы:
1. Вразумительное описание того, что ему нужно.
2. Его собственные попытки сделать это.
3. Описание проблемы: чем то, что написано, не устраивает.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 21.04.2025 0:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name