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

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

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

> файлы, файлы
maklir
сообщение 3.01.2008 22:33
Сообщение #1


Новичок
*

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

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


как переписать информацию и неформатног record файла, в форматный text файл?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 12)
мисс_граффити
сообщение 3.01.2008 22:42
Сообщение #2


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

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

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


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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
maklir
сообщение 3.01.2008 22:50
Сообщение #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 
 К началу страницы 
+ Ответить 
andriano
сообщение 3.01.2008 22:52
Сообщение #4


Гуру
*****

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

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


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


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

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

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


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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 4.01.2008 0:06
Сообщение #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 - 4.01.2008 0:16
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 4.01.2008 0:25
Сообщение #7


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

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

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


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


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


Новичок
*

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

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


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


Новичок
*

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

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


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


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

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

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


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


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
andriano
сообщение 5.01.2008 11:07
Сообщение #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 - 5.01.2008 11:09
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
мисс_граффити
сообщение 5.01.2008 14:11
Сообщение #12


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

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

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


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

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


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


Гуру
*****

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

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


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

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

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

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

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

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

 



- Текстовая версия 20.07.2025 3:05
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"