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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2010, 12:15   #1
Rock231
Новичок
Джуниор
 
Регистрация: 25.05.2010
Сообщений: 2
Печаль Не сохраняет файлы (Создает файлы пустышки)

Собственно, дано задание: "Отредактировать текст, заменив в датах, заданных цифрами, разделенными
символом ".", номер месяца на его название, двузначный номер года на четырехзначный, символ "." на пробел, удалив незначащий ноль в номере числа и добавив после даты символы "г." (Например, 01.04.10 -> 1 Апреля 2010 г.)"
Программа у меня работает, я ее защитил, преподавателя все устраивает, но - она ни в какую не хочет сохранять файл с изменениями. Вместо этого она создает файл-пустышку размером 0. Пожалуйста, помогите!
Код:
Program Kursach;
uses crt;
var
f,o:text;
t,s:array[1..700] of char;
nt,i,u,d,y,z:integer;
c:char;
subs,out: string[255];
begin
nt:=0;
writeln('choose your way:');
writeln('1 - file, 2 - manual:');
readln(u);
case u of
1:begin
Write('Введите полный путь к файлу: ');
ReadLn(subs);
Assign(f, subs);
Reset(f);
if IOResult <> 0 then begin
WriteLn('Файл не может быть открыт или его не существует.');
Exit;
end;
writeln('Текст исходного файла:');
writeln;
while not eof(f) do
  begin
    inc(nt);
    read(f,t[nt]);
    write(t[nt]);
  end;
  end;
  2:begin
  writeln('Enter your text here:');
  while c<>#13 do
  begin
  inc(nt);
  c:=readkey;
  t[nt]:=c;
  write(t[nt]);
  end;
  end;
  end;
  writeln;
  writeln('Нажмите любую клавишу чтобы изменить формат даты');
  readln;
z:=0;
i:=0;
while i<=nt+1 do
begin
if t[i] in ['0'..'3'] then
if t[i+1] in ['0'..'9'] then
if t[i+3] in ['0'..'1'] then
if t[i+4] in ['0'..'9'] then
if t[i+6] in ['0'..'9'] then
if t[i+7] in ['0'..'9'] then
if t[i+2] = '.' then
if t[i+5] = '.' then
begin
if t[i] in ['1'..'3'] then s[z]:=t[i] else z:=z-1;
s[z+1]:=t[i+1];
s[z+2]:=' ';
if t[i+3] = '1' then
if t[i+4] = '0' then
begin
s[z+3]:='О';
s[z+4]:='к';
s[z+5]:='т';
s[z+6]:='я';
s[z+7]:='б';
s[z+8]:='р';
s[z+9]:='я';
z:=z+10;
end;
if t[i+3] = '1' then
if t[i+4] = '1' then
begin
s[z+3]:='Н';
s[z+4]:='о';
s[z+5]:='я';
s[z+6]:='б';
s[z+7]:='р';
s[z+8]:='я';
z:=z+9;
end;
if t[i+3] = '1' then
if t[i+4] = '2' then
begin
s[z+3]:='Д';
s[z+4]:='е';
s[z+5]:='к';
s[z+6]:='а';
s[z+7]:='б';
s[z+8]:='р';
s[z+9]:='я';
z:=z+10;
end;
if t[i+3] = '0' then
if t[i+4] = '1' then
begin
s[z+3]:='Я';
s[z+4]:='н';
s[z+5]:='в';
s[z+6]:='а';
s[z+7]:='р';
s[z+8]:='я';
z:=z+9;
end;
if t[i+3] = '0' then
if t[i+4] = '2' then
begin
s[z+3]:='Ф';
s[z+4]:='е';
s[z+5]:='в';
s[z+6]:='р';
s[z+7]:='а';
s[z+8]:='л';
s[z+9]:='я';
z:=z+10;
end;
if t[i+3] = '0' then
if t[i+4] = '3' then
begin
s[z+3]:='М';
s[z+4]:='а';
s[z+5]:='р';
s[z+6]:='т';
s[z+7]:='а';
z:=z+8;
end;
if t[i+3] = '0' then
if t[i+4] = '4' then
begin
s[z+3]:='А';
s[z+4]:='п';
s[z+5]:='р';
s[z+6]:='е';
s[z+7]:='л';
s[z+8]:='я';
z:=z+9;
end;
if t[i+3] = '0' then
if t[i+4] = '5' then
begin
s[z+3]:='М';
s[z+4]:='а';
s[z+5]:='я';
z:=z+6;
end;
if t[i+3] = '0' then
if t[i+4] = '6' then
begin
s[z+3]:='И';
s[z+4]:='ю';
s[z+5]:='н';
s[z+6]:='я';
z:=z+7;
end;
if t[i+3] = '0' then
if t[i+4] = '7' then
begin
s[z+3]:='И';
s[z+4]:='ю';
s[z+5]:='л';
s[z+6]:='я';
z:=z+7;
end;
if t[i+3] = '0' then
if t[i+4] = '8' then
begin
s[z+3]:='А';
s[z+4]:='в';
s[z+5]:='г';
s[z+6]:='у';
s[z+7]:='с';
s[z+8]:='т';
s[z+9]:='а';
z:=z+10;
end;
if t[i+3] = '0' then
if t[i+4] = '9' then
begin
s[z+3]:='С';
s[z+4]:='е';
s[z+5]:='н';
s[z+6]:='т';
s[z+7]:='я';
s[z+8]:='б';
s[z+9]:='р';
s[z+10]:='я';
z:=z+11;
end;
s[z]:=' ';
s[z+1]:='2';
s[z+2]:='0';
s[z+3]:=t[i+6];
s[z+4]:=t[i+7];
s[z+5]:=' ';
s[z+6]:='г';
s[z+7]:='.';
z:=z+8;
i:=i+8;
end;
s[z]:=t[i];
inc(i);
inc(z);
end;
writeln('Текст после изменения формата даты:');
writeln;
for d:=0 to z do
begin
write(s[d]);
end;
writeln;
writeln('Введите полный путь для сохранения файла:');
ReadLn(out);
Assign(o,out);
Rewrite(o);
for d:=0 to z do
begin
write(o,s[d]);
end;
writeln('Сохранение прошло успешно! Для выхода нажмите любую клавишу');
readln;
end.
Rock231 вне форума Ответить с цитированием
Старый 25.12.2010, 12:17   #2
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

файлы Закрывать надо после сохранения!
Код:
Close(o);
writeln('Сохранение прошло успешно! Для выхода нажмите любую клавишу');
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 25.12.2010, 12:31   #3
Rock231
Новичок
Джуниор
 
Регистрация: 25.05.2010
Сообщений: 2
По умолчанию

Чорд. Я дебил.
Mad_Cat, Спасибище огромное!!!
Rock231 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы данных.Типизированные файлы. вылка Помощь студентам 6 17.05.2010 15:42
файлы Scofield8 Фриланс 7 05.02.2010 15:48
Файлы Archangelos Паскаль, Turbo Pascal, PascalABC.NET 1 01.06.2009 11:27
Файлы MrRockchip Общие вопросы C/C++ 5 30.05.2009 15:24
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53