• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о проекте и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Помогите с задачкой

  • Автор темы Автор темы Pyx
  • Дата начала Дата начала

Pyx

Новые
Регистрация
16 Дек 2011
Сообщения
22
Реакции
0
Баллы
0
Помогите с задачкой

Создайте текстовый файл данных о расписании движения поездов. Выведите на экран информацию о поездах, отправляющихся в Киев после 19:00.
 
program Rozklad;

{$APPTYPE CONSOLE}

uses
SysUtils;
var myfile: text;
zvidku: string[10];
kyda: string[10];
chas: real;
begin
assign (myfile ,'C:\Documents and Settings\Пользователь\Рабочий стол\АМП\ьбт\poizd.txt');
reset (myfile);
while not eof (myfile) do
begin
readln (myfile, zvidku, kyda, chas);
if kyda='Kiev '
then writeln (zvidku:10, kyda:10, chas:2:2);
end;
close (myfile);
readln
end.



Что не правильно подзкажите....
 
Создайте текстовый файл данных о расписании движения поездов.
Выложите, пожалуйста, сам файл, чтобы можно было поместить его в нормальную (без, упаси Боже, кириллицы в путях!) директорию и запустить программу.
А так, на взгляд: требуется вывести данные о поездах, отправляющихся в Киев после 19:00, а значит нужно время отправления преобразовать в численный формат и вместо
if kyda='Kiev ' (кстати, никакого пробела после "v" быть не должно!)
записать
if (kyda='Kiev') and ({время отправления в числовом формате}>={19:00 тоже в числовом формате})
Могу помочь с конкретной реализацией, но только, повторяю, после того, как будет выложен файл данных.
 
текстовый файл

HTML:
Moskva    Kiev      22.30
Berlin    Odesa     09.00
Rum       Kiev      19.50
Yalta     Parish    19.30
Xarkiv    Kiev      15.25
 
Ну извольте (как видите, не так-то уж и просто):
Код:
var
 myfile: text;
 S,zvidku,kyda,time: string;
 chas: real;
 i,Code:Integer;

begin
 assign(myfile ,'D:\poizd.txt');
 reset(myfile);
 while not eof (myfile) do
  begin
   readln(myfile,S);
   i:=1;
   zvidku:='';
   while S[i]<>' ' do
    begin
     zvidku:=zvidku+S[i];
     Inc(i);
    end;
   while S[i]=' ' do Inc(i);
   kyda:='';
   while S[i]<>' ' do
    begin
     kyda:=kyda+S[i];
     Inc(i);
    end;
   while S[i]=' ' do Inc(i);
   time:='';
   while i<=length(S) do
    begin
     time:=time+S[i];
     Inc(i);
    end;
   VAL(time,chas,Code);
   if (kyda='Kiev') and (chas>=19.0) then
    begin
     write(zvidku);
     for i:=length(zvidku)+1 to 10 do write(' ');
     writeln(kyda+'   '+time);
    end;
  end;
 close (myfile);
 readln
end.
 
Спасибо, работает:tehnari_ru_288:
 
Спасибо, работает
В принципе, если структура входного файла жестко задана по позициям, то можно и существенно короче, как Вы с самого начала хотели, т.е. используя размерные строки. Но тогда так:
Код:
var
 myfile: text;
 zvidku,kyda: string[10];
 chas: real;
 i:Integer;

begin
 assign(myfile ,'D:\poizd.txt');
 reset(myfile);
 while not eof (myfile) do
  begin
   readln(myfile,zvidku,kyda,chas);
   if (kyda='Kiev      ') and (chas>=19.0) then
    begin
     write(zvidku);
     for i:=length(zvidku)+1 to 10 do write(' ');
     writeln(kyda,chas:7:2);
    end;
  end;
 close (myfile);
 readln
end.
 
супер, все запускается:tehnari_ru_203:
 
а вы не могли бы посмотреть еще эту задачу
нужно создать файл целых чисел (количество элементов файла и сами элементы вводятся с клавиатуры). Добавить элемент в конец файла. Выводить на экран содержимое нового файла.
 
а вы не могли бы посмотреть еще эту задачу
нужно создать файл целых чисел (количество элементов файла и сами элементы вводятся с клавиатуры). Добавить элемент в конец файла. Выводить на экран содержимое нового файла.
Пожалуйста:
Код:
Var
 f:Text;
 n:Integer;
 C:Char;
BEGIN
 Assign(f,'D:\fff');
 Rewrite(f);
 Close(f);
 Repeat
  Write('Next n (Y/N)? ');
  Readln(C);
  If (C='Y') or (C='y') then
   begin
    Append(f);
    Write('n= ');
    Readln(n);
    Writeln(f,n);
    Close(f);
   end
   else
    begin
     Write('Show file (Y/N)? ');
     Readln(C);
     If (C='Y') or (C='y') then
      begin
       Reset(f);
       Repeat
        Readln(f,n);
        Write(n,' ');
       Until EoF(f);
       Close(f);
       Writeln;
      end;
     end;
 Until (C='N') or (C='n');
END.
 
Var
f:Text;
n:Integer;
C:Char;
BEGIN
Assign(f,'D:\fff');
Rewrite(f);
Close(f);
Repeat
Write('Next n (Y/N)? ');
Readln(C);
If (C='Y') or (C='y') then
begin
Append(f);
Write('n= ');
Readln(n);
Writeln(f,n);
Close(f);
end
else
begin
Write('Show file (Y/N)? ');
Readln(C);
If (C='Y') or (C='y') then
begin
Reset(f);
Repeat
Readln(f,n);
Write(n,' ');
Until EoF(f);
Close(f);
Writeln;
end;
end;
Until (C='N') or (C='n');
END.
я что не понимаю.... ето не то что нужно((
 
я что не понимаю.... ето не то что нужно((
Тогда подробнее, пожалуйста - а что нужно? Программа принимает с клавиатуры число, записывает в конец файла, в любой момент выводит на экран содержимое файла, после чего можно продолжать добавление чисел, а можно выйти из программы. Что именно "не то"?
 
Помогите с задачей:
нужно создать файл данных об ассортименте товаров: наименование, цена. Сюжет: цены на товар выросли на p%. Составьте программу, которая на базе предыдущего файла создает новый файл с такой структурой: название, старая цена, новая цена.
 
Тогда подробнее, пожалуйста - а что нужно? Программа принимает с клавиатуры число, записывает в конец файла, в любой момент выводит на экран содержимое файла, после чего можно продолжать добавление чисел, а можно выйти из программы. Что именно "не то"?

вот я сделала, но я не могу понять почему оно не меняет местами????
HTML:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;

var fail: file of integer;
    i,n,k,cum:integer;
begin
 write ('vvedit kilkist elementiv faily:');
 readln(n);
 assign (fail,'fail1');
 rewrite (fail);
 for i:=1 to n do
 begin
        write('vvedit ',i,'-i element faily:');
        readln(k);
        write(fail,k);
 end;
 reset (fail);
 while not eof(fail) do
 begin
 read (fail,k);
 write (k,' ');
 end;
 readln;
 close (fail);

 write ('element jakui treba dodatu y kinec faily:');
 readln (cum);
 rewrite (fail);
seek (fail,filesize(fail));
write (fail,cum);
close (fail);

reset (fail);
while not eof(fail) do
begin
read (fail,k);
write (k,' ');
end;
 close(fail);

 readln;
end.
:tehnari_ru_121:
 
нужно создать 2 файла ввести в него информацию и закрыть затем нужно чтобы открылся новый файл с информацией
 
Для закрытия файла используйте команду close(fail) перед командой reset(fail) :)) Только я вас не пойму, вам же, вроде как, надо решить на Delphi эту задачу или я не прав? И тему вы, вроде как, уже создали соответствующую: http://www.tehnari.ru/f43/t61389/
 
Для закрытия файла используйте команду close(fail) перед командой reset(fail) :)) Только я вас не пойму, вам же, вроде как, надо решить на Delphi эту задачу или я не прав? И тему вы, вроде как, уже создали соответствующую: http://www.tehnari.ru/f43/t61389/
сегодня мне сказали что эту задачу нужно разрешить таким образом, создать 1 файл открыть его для записи, внести в него данные, закрыть .. затем снова открыть записать в него данные закрыть и открыть его с новити данным.
 
То есть вам нужно создать исходный файл, потом его же изменить и вывести измененные данные на экран?
 
Назад
Сверху