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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2011, 22:17   #1
Sayli
 
Регистрация: 19.03.2011
Сообщений: 5
Сообщение Открыть текстовый файл в качестве параметра. В том случае, если имя текстового файла...

Открыть текстовый файл в качестве параметра. В том случае, если имя текстового файла "File.txt", то завершить работу программы с кодом 1. В противном случае записать в файл данные об авторе и завершить работу программы с кодом 0.

помогите пожалуйста
Sayli вне форума Ответить с цитированием
Старый 11.10.2011, 22:21   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

В качестве параметра чего? Процедуры\функции? Командной строки? Чем помочь? Что не получается? Что получилось?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 11.10.2011, 22:28   #3
Sayli
 
Регистрация: 19.03.2011
Сообщений: 5
По умолчанию

Как я думаю(если правильно) то текстовый файл можно с помощью assign, но как это сделать в качестве параметра? (не с помощью paramstr?) и незнаю как определить имя текстового файла?
Sayli вне форума Ответить с цитированием
Старый 11.10.2011, 22:34   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

А почему бы не paramstr? Еще, кстати, вроде есть paramcount для определения числа полученных параметров.
Цитата:
как определить имя текстового файла?
Ну так запускается программа как-нибудь типа путь\program.exe -file.txt
и из параметра (какая-нибудь_строка:=paramstr(1) ) и достается имя файла. Или как надо?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 11.10.2011 в 22:37.
Alex11223 вне форума Ответить с цитированием
Старый 11.10.2011, 22:37   #5
Sayli
 
Регистрация: 19.03.2011
Сообщений: 5
По умолчанию

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

Последний раз редактировалось Sayli; 11.10.2011 в 22:40. Причина: добавлено сообщение
Sayli вне форума Ответить с цитированием
Старый 11.10.2011, 22:40   #6
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Можно конечно, причем тут параметр. Параметр только принимается при запуске программы и возвращается в виде строки при вызове paramstr(номер_параметра), больше он ничего не умеет. Дальше уже что угодно можно делать с полученной строкой.
http://www.delphisources.ru/pages/fa...amStr.php.html
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 11.10.2011 в 22:43.
Alex11223 вне форума Ответить с цитированием
Старый 11.10.2011, 22:46   #7
Sayli
 
Регистрация: 19.03.2011
Сообщений: 5
По умолчанию

а тут что-то написал, но не знаю как правильно использовать paramstr
program _;
uses crt;
var
f:text;
begin
assign (f,'file.txt');
end;
Sayli вне форума Ответить с цитированием
Старый 11.10.2011, 22:50   #8
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Выше по ссылке наглядный пример.
Перед assign и т.д. по условию задачи же еще надо проверить, что имя не file.txt (например, строка:=paramstr(1) и уже со строкой что-то делать).
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

Последний раз редактировалось Alex11223; 11.10.2011 в 22:55.
Alex11223 вне форума Ответить с цитированием
Старый 11.10.2011, 23:06   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

угу. полностью согласен с Alex11223.

позволю себе прокомментировать примером кода:
Код:
var f : Text;

{функция для проверки, существует ли файл}
function FileExists(FileName : string) : boolean;
var
  FileParameters : SearchRec;
begin
  FindFirst(FileName,AnyFile,FileParameters);
  if (DosError = 0) { or (DosError = 18)}
    then
      FileExists := True
    else
      FileExists := False;
end;
{-------------------------------------------}

function UpperCase(s : string) : string;
var i : byte; sRes : string;
begin
   sRes := '';
   for i:=1 to Length(s) do sRes := sRes + UpCase(s[i]);
   UpperCase := sRes;
end;

begin
   if ParamCount=0 then begin
     WriteLn('Error: No parametrs found! You must type filename in command line!');
      Halt(10); {завершим работу программы с кодом 0}
   end;   
   if UpperCase(ParamStr(1))='FILE.TXT' then Halt(1);
   Assign(f, ParamStr(1) );
   if FileExists(ParamStr(1) ) 
       then Append(f)
       else Rewrite(f);
   WriteLn(f, 'Author: Pupkin Vasisualiy. (c) 2011');
   Close(f);
   Halt(0);
end.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.10.2011, 23:10   #10
Sayli
 
Регистрация: 19.03.2011
Сообщений: 5
По умолчанию

Спасибо Вам большое! Буду разбираться
Sayli вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как открыть текстовый файл в блокноте? Aleksandr Общие вопросы Delphi 0 30.06.2011 16:51
Выделить из текстового файла ФИО и записать инициалы и фамилию в другой текстовый файл [Паскаль] Chupa-pups Помощь студентам 1 14.12.2010 08:22
можно ли в качестве аргумента функции использовать имя текстового файла Arassir Общие вопросы Delphi 2 31.05.2010 23:12
Вставка строки в том случае, если такой нету Mixasik SQL, базы данных 3 11.04.2010 19:00
Ввести имя файла с клавиатуры,открыть если существует,перименовать и переместить его mulatoschka1990 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 23.10.2009 16:18