Модераторы: volvo877, Snowy, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> "Файлы", Изменить программы 
:(
    Опции темы
Чекмарь
Дата 30.4.2008, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 11.4.2008

Репутация: нет
Всего: нет



У меня имеются 2 программы:
1:
Код

uses crt;  
type  
toys=record  
title:string;  
price,count:integer;   
end;  
var  
d:array [1..15] of toys;  
i,e,best:integer;  
begin  
clrscr;    
for i:=1 to 15 do  
begin  
writeln;  
writeln('Toy  ',i,':');  
write('Title: ');  
readln(d[i].title);  
write('Price: ');  
readln(d[i].price);  
write('Count: ');  
readln(d[i].count);  
end;     
best:=1;  
for i:=2 to n do  
if (d[i].count>d[best].count) then best:=i;  
writeln('The most popular toy is ',d[best].title,'. Moneys = ',d[best].count*d[best].price);  
best:=1;
for i:=2 to 15 do
if (d[i].price>d[best].price) then best:=1;
writeln('naibolee vigodnaya: ');
writeln(d[best].title);     
readln;  
end. 


и 2:
Код

uses crt;
var
  s1, s2: string;
  i: integer;
begin
  writeln('Введите первую строку');
  readln(s1);
  writeln('Введите вторую строку');
  readln(s2);
  s1 := s1 + s2;
  s2 := '';
  for i := length(s1) downto 1 do
    if s1[i] in ['0' .. '9'] then begin
      s2 := s1[i] + s2; delete(s1, i, 1);
    end;
  Writeln('Строка с буквами=',s1);
  Writeln('Строка с цифрами=',s2);
end.


Нужно изменить эти программы так, чтобы данные считывались из файла, а результат работы выводился в файл на диск. (Файл входных данных сформировать при помощи редактора)

И еще: Нужна программа, которая позволяла бы по выбору оператора просматривать на экране и распечатывать на принтере файлы, содержащие тексты этих 2-х программ и файлы результатов работы программ. Путь файлов, например, такой: H:\proga1(2).txt 

Если кто сможет, подскажите пожалуйста.
PM MAIL   Вверх
Letov
Дата 30.4.2008, 13:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 4



Вот так?
Для второй программы:
Код

uses crt;
var
  s1, s2: string;
  i: integer;
  f, fe: text;
begin
  assignfile(f, 'proga2.txt');
  reset(f);
  readln(f, s1);
  readln(f, s2);
  close(f);
  s1 := s1 + s2;
  s2 := '';
  for i := length(s1) downto 1 do
    if s1[i] in ['0' .. '9'] then begin
      s2 := s1[i] + s2; delete(s1, i, 1);
    end;
  assign(fe, 'proga2out.txt');
  rewrite(fe);
  Writeln(fe,'Строка с буквами=',s1);
  Writeln(fe,'Строка с цифрами=',s2);
  close(fe);
end.


Переменная s1 считывается из первой строки входного файла, s2 - из второй.
Входной файл: proga2.txt
Файл с результатом: proga2out.txt


--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
Чекмарь
Дата 30.4.2008, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 11.4.2008

Репутация: нет
Всего: нет



Что-то похожее, а как печатать это?
PM MAIL   Вверх
Letov
Дата 30.4.2008, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 4



Вот из паскаля - точно не знаю. Попробуй перенаправить ввод\вывод. Что-то вроде этого
Код

var pr: text;
...

begin
assign(pr, LPT1);
rewrite(pr);
writeln('Печать');
close(pr);
end.



--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
Чекмарь
Дата 11.5.2008, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 11.4.2008

Репутация: нет
Всего: нет



Вместо троеточия пишем программу так, а что такое LPT1?
PM MAIL   Вверх
Чекмарь
Дата 11.5.2008, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 11.4.2008

Репутация: нет
Всего: нет



и как перенаправить ввод-вывод?

Это сообщение отредактировал(а) Чекмарь - 11.5.2008, 21:19
PM MAIL   Вверх
Letov
Дата 12.5.2008, 11:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 4



Вот это и есть перенаправление. Ты открываешь принтер, как файл, и работаешь с ним как с файлом.


--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
volvo877
Дата 12.5.2008, 12:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Не надо ничего перенаправлять... Есть модуль Printer, используем его, а не пишем свой велосипед:

Код
Uses Printer;
begin
  writeln(Lst, 'Hello, World!');
end.

Если принтер к компьютеру подключен через LPT-порт, то все будет печататься...

Если не хочется использовать Printer, то делаем так:
Код
var pr: Text;
...
  assign(pr, 'LPT1'); { <--- Апострофы }
  rewrite(pr);
  writeln(pr, 'Печать'); { <--- Куда печатать }
  close(pr);
...
(это то же самое, что делает вышеупомянутый модуль)
PM MAIL   Вверх
Letov
Дата 12.5.2008, 13:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 4



volvo877
Цитата(volvo877 @  12.5.2008,  13:49 Найти цитируемый пост)
Код
var pr: Text;
...
  assign(pr, 'LPT1'); { <--- Апострофы }
  rewrite(pr);
  writeln(pr, 'Печать'); { <--- Куда печатать }
  close(pr);
...


Спасибо за поправку.

А в первом примере 
Код
Uses Printer;
begin
  writeln(Lst, 'Hello, World!');
end.

Что такое Lst? Константа?

Это сообщение отредактировал(а) Letov - 12.5.2008, 13:14


--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
Чекмарь
Дата 12.5.2008, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 11.4.2008

Репутация: нет
Всего: нет



Цитата(volvo877 @ 12.5.2008,  12:49)
Если не хочется использовать Printer, то делаем так:
Код
var pr: Text;
...
  assign(pr, 'LPT1'); { <--- Апострофы }
  rewrite(pr);
  writeln(pr, 'Печать'); { <--- Куда печатать }
  close(pr);
...
(это то же самое, что делает вышеупомянутый модуль)

Спасибо, что поправили. А что должно быть на месте 2-го и 3-го троеточия?
PM MAIL   Вверх
Letov
Дата 12.5.2008, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 4



На месте второго и третьего троеточия должен быть твой код.


--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
Чекмарь
Дата 12.5.2008, 22:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 16
Регистрация: 11.4.2008

Репутация: нет
Всего: нет



Т.е по примеру Вашего 1-го сообщения, да?
PM MAIL   Вверх
Letov
Дата 13.5.2008, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 4



Да, только теперь ты выводишь информацию на принтер, а не сохраняешь в файл.


--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
volvo877
Дата 13.5.2008, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2073
Регистрация: 15.11.2004

Репутация: 2
Всего: 116



Цитата(Letov @  12.5.2008,  13:14 Найти цитируемый пост)
Что такое Lst? Константа?

Нет, переменная... Вот модуль Printer полностью:

Код

Unit Printer;

Interface
Var
  Lst: Text;

Implementation
Begin
  Assign(Lst, 'LPT1');
  Rewrite(Lst);
End.

PM MAIL   Вверх
Letov
Дата 13.5.2008, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 321
Регистрация: 22.2.2007
Где: Санкт-Петербург

Репутация: нет
Всего: 4



volvo877, спасибо.


--------------------
Не бывает плохих языков программирования. Бывают плохие программисты...

PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0862 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.