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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 08.11.2014, 14:09   #1
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию Запись и чтение файлов

Всем привет! Сразу прошу извинить за тупые вопросы, но все же:
есть два файла в одном хранятся входящие данные в другом исходящие,
файл с входящими данными выглядит так:
Код:
10 20
reset
в зависимости от того что будет написано во второй строке (reset) надо выбрать действие а результат записать в файл с исходящими данными.
Моя проблема в том что если написать число, причем в первую строчку, вместо слова то все работает а если стоит слово но ничего прога не делает.
Вот небольшой пример как я делаю:
Код:
program Project2;
{$APPTYPE CONSOLE}

uses
  SysUtils;
Var
  a,b: integer;
  r: string;
begin
  Assign(Input, 'in.txt');
  Reset(Input);
  Assign(Output, 'ou.txt');
  Rewrite(Output);
  Readln(a,b,r);
  Close(Input);
if r='reset' then Write(a*b);
  Close(Output);
writeln('peremennaya r = ', r);
Readln;
end.
И еще одно: почему после закрытия файлов пользователю не выводится сообщение а просто сразу все закрывается?
Мой скромненький сайт

Последний раз редактировалось Vladya; 08.11.2014 в 14:19.
Vladya вне форума Ответить с цитированием
Старый 08.11.2014, 14:44   #2
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию

с первым вопросом разобрался просто вместо
Код:
Readln(a,b,r);
написал следующее:
Код:
while not Eof(Input) do
  Begin
    Readln(a,b);
    Read(r);
  End;
Второй вопрос все еще не решен, даже если вместо Close написать CloseFile то все равно все что надо показать пользователю оно записывает в файл
Мой скромненький сайт
Vladya вне форума Ответить с цитированием
Старый 08.11.2014, 14:50   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Второй вопрос все еще не решен, даже если вместо Close написать CloseFile то все равно все что надо показать пользователю оно записывает в файл
так не трогайте стандартный файл вывода (output)

заведите файловую переменную, свяжите её с нужным файлом на диске и выводите.

пример.
Код:
rogram Project2;
{$APPTYPE CONSOLE}

uses
  SysUtils;
Var
  a,b: integer;
  r: string;
  fileOut : TextFile;
begin
...
  AssignFile(fileOut, 'ou.txt');
  Rewrite(fileOut);
 
  WriteLn(fileOut, 'Текст');  {этот Текст будет выведен в файл ou.txt}

  WriteLn('User is so smart! ')  {этот текст будет выведен на стандратное устройство вывод == на консоль == на экран}

  CloseFile(fileOut)
идея понятна, надеюсь?


Цитата:
с первым вопросом разобрался просто вместо
кстати. Вы не очень корректно разобрались с первым вопросом.
Лучше написать так.
вместо:
Код:
Readln(a,b,r);
напишите
Код:
Readln(a,b);
if eof(Input) 
  then r := ''
  else Readln(r);

Последний раз редактировалось Serge_Bliznykov; 08.11.2014 в 14:53.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 08.11.2014, 15:39   #4
Vladya
Форумчанин
 
Аватар для Vladya
 
Регистрация: 04.11.2008
Сообщений: 360
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
идея понятна, надеюсь?
Само собою!!! Спасибо за помощь!
Мой скромненький сайт
Vladya вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чтение и запись файлов schmitz C# (си шарп) 3 29.05.2013 00:51
Чтение и запись из файлов Rocky095 Помощь студентам 4 08.12.2012 10:52
Запись и чтение файлов Bugrimov Общие вопросы C/C++ 14 09.11.2012 09:49