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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.03.2011, 18:11   #1
kestugar
Пользователь
 
Регистрация: 25.03.2011
Сообщений: 28
Вопрос Текст вводится из текстового файла произвольной длины; вывод результатов на экран, принтер или в файл

Текст вводится из текстового файла произвольной длины; вывод результатов на экран, принтер или в файл по желанию пользователя.
Все работает, кроме вывода на принтер.
Язык Delphi
Код:
implementation

{$R *.dfm}

procedure symbols;  //процедура анализа текста
var
    j,n:byte;
    c:char;
begin
k:=0;
for i:=1 to 255 do a[i]:=0;{обнулим исходный массив}
while not eof(f) do
 begin
  readln(f,s);
  n:=length(s);
  for i:=32 to 255 do
  for j:=1 to n do
  if chr(i)=s[j] then a[i]:=a[i]+1;{если символ, соответствующий коду
  ячейки массива есть в строке, в эту ячейку добавляем 1}
 end;
closefile(f);
end;

procedure Proverka;  //процедура проверяет заполнены ли поля
 begin
  if (Form1.edit1.Text<>'')
  then begin
  Form1.Button1.Enabled:=True;
  fname:='H:\'+Form1.edit1.Text;
  end
 else ShowMessage('Enter name of file');
 end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 assignfile(f,fname);
 {$I-} reset(f);  {$I+}
if IOResult <> 0 then
 begin
  Showmessage('Can not open file ' +fname);
  exit;
 end;
 symbols;
 if RadioButton1.checked then begin
 label4.Caption:='Вывод в файл';
 for i:=0 to  Form1.Memo1.Lines.Count do
 begin
 Form1.Memo1.Lines[i]:='';
 end;
  assignfile(g,'H:\vivod.txt');
  rewrite(g);
 for i:=32 to 255 do
  if a[i]>0 then{если ячейка не пустая}
  begin
  Stroka:=(chr(i)+' - '+IntToStr(a[i]));
  writeln(g,Stroka);
  {выводим символ и количество его вхождений}
  end;
 closefile(g);
 end;
 if RadioButton2.checked then begin
 label4.Caption:='Вывод на форму';
  for i:=32 to 255 do
   if a[i]>0 then{если ячейка не пустая}
   begin
   Form1.Memo1.Lines.Insert(k, chr(i)+' - '+ inttostr(a[i]));
   k:=k+1;
  {выводим символ и количество его вхождений}
   end;
   end;
 if RadioButton3.checked then
 begin
  label4.Caption:='Вывод на принтер';
  for i:=0 to  Form1.Memo1.Lines.Count do
   begin
   Form1.Memo1.Lines[i]:='';
   end;
  for i:=32 to 255 do
   if a[i]>0 then{если ячейка не пустая}
   begin
   Stroka:=(chr(i)+' - '+IntToStr(a[i]));
   writeln(prn,Stroka);
   end;
 end;
end;
kestugar вне форума Ответить с цитированием
Старый 29.03.2011, 19:09   #2
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Код:
uses ..., Printers;
...
var
 Prn : TextFile;
...   
 AssignPrn(Prn);

...
 writeln(prn,Stroka);
// Если не сработает, можно попробовать добавить следующую строку
// writeln(prn,#12);
...
 CloseFile(Prn);
...
См. http://www.delphisources.ru/pages/fa...gnPrn.php.html
До свидания
OlegVE вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Класс матрица, вывод результатов на экран Student_911 Помощь студентам 0 03.10.2009 20:55
Проблема с чтением и выводом содержимого текстового файла на экран -=PascaL=- Помощь студентам 16 08.08.2009 07:13
сложение чисел произвольной длины Ferza Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 24.06.2009 11:16
Как вывести из текстового файла на экран русский текст? Mischa Помощь студентам 8 12.03.2008 06:23
Печать текстового файла на сетевой принтер VAbramyak Общие вопросы Delphi 3 06.04.2007 20:16