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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.02.2014, 13:37   #1
crancv
 
Регистрация: 12.02.2014
Сообщений: 9
По умолчанию Файл

Прошу помощи. Как на паскаль написать программу, которая запрашивает ввод имени файла и если файл есть, создает другой файл, причем имя созданного файла - это расширение введенного имени файла+15, а расширение допустим .inc

Например: исходный файл Main.txt, в результате работы программы должен появиться файл txt15.inc

Начало в принципе понятно:
var
s:string;
Writeln('Введите имя файла');
read(s);

Как быть дальше ? Какой алгоритм дальнейших действий по созданию нового файла ?
crancv вне форума Ответить с цитированием
Старый 12.02.2014, 15:34   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Паскаль (компилятор) какой? Это важно в данном случае.
В случае FreePascal/ Delphi можете использовать функцию FileExists()
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.02.2014, 17:32   #3
Malriser
xor esp, esp
Форумчанин
 
Регистрация: 11.02.2014
Сообщений: 135
По умолчанию

Код для Delphi 7

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var
  tmp_t, tmp, name:string;
  i:integer;
  t:textfile;
begin
  write('FileName: ');
  readln(name);
  tmp:='';
  if FileExists(PChar(name)) then
    begin
      if ((pos('.', name)) = 0) then
        begin
          writeln('there no extension');
        end else
          begin
            for i:=length(name) downto 1 do
            begin
              if (name[i] = '.') then break;
              tmp:=tmp + name[i];
            end;
            tmp_t:='';
            for i:=length(tmp) downto 1 do
            tmp_t:=tmp_t + tmp[i];
            tmp_t:=tmp_t + '15.inc';
            AssignFile(t, tmp_t);
            rewrite(t);
            closefile(t);
        end;
    end;
writeln('The end!');
readln;
end.

Результат работы:




Так же работает если два расширения, читает то - которое исполняется.





Код для FreePascal/PascalABC

Код:
program Project2;



uses crt;

var
  tmp_t, tmp, name:string;
  i:integer;
  t:textfile;
begin
  write('FileName: ');
  readln(name);
  tmp:='';
  if FileExists(PChar(name)) then
    begin
      if ((pos('.', name)) = 0) then
        begin
          writeln('there no extension');
        end else
          begin
            for i:=length(name) downto 1 do
            begin
              if (name[i] = '.') then break;
              tmp:=tmp + name[i];
            end;
            tmp_t:='';
            for i:=length(tmp) downto 1 do
            tmp_t:=tmp_t + tmp[i];
            tmp_t:=tmp_t + '15.inc';
            assign(t, tmp_t);
            rewrite(t);
            close(t);
        end;
    end;
writeln('The end!');
readln;
end.

Результат тот же


Если нету расширения, то пишет "There no extension"

Последний раз редактировалось Malriser; 12.02.2014 в 17:37.
Malriser вне форума Ответить с цитированием
Старый 12.02.2014, 20:50   #4
crancv
 
Регистрация: 12.02.2014
Сообщений: 9
По умолчанию

спасибо, благодаря вам справился
crancv вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Открыть файл, разделить ячейку на 1000, сохранить файл, закрыть файл. Как? Ник Харди Microsoft Office Excel 7 30.01.2012 18:47
Тестовый файл. Найти сумму всех чисел, входящих в этот файл. (Паскаль) Homeros Помощь студентам 1 26.01.2011 14:05
WinInet загрузить файл во временной файл , использовать, потом удалить Человек_Борща Работа с сетью в Delphi 5 03.08.2010 13:46
Ссылка на файл из текущей папки! Сбор инфы в один файл! mephist Microsoft Office Excel 11 10.07.2009 13:51