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

 





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