Форум программистов, компьютерный форум, киберфорум
Наши страницы
Nikto
Войти
Регистрация
Восстановить пароль
Оценить эту запись

Как в PascalABC.NET занести вывод консоли в буфер

Запись от Nikto размещена 14.02.2017 в 19:32
Обновил(-а) Nikto 08.06.2017 в 10:34

Сейчас я вам расскажу как сделать, чтобы ваша программа автоматически заносила в буфер данные из консоли. Зачем это нужно? Вдруг ваша программа делает какие-то безумно большие расчёты, а потом весь вывод вам нужно скопировать и использовать где-либо ещё для дальнейшей обработки.

Чтобы реализовать данную задачу будем использовать возможности платформы .NET

Как это работает: используем класс System.Diagnostics.Process для создания нового процесса с командной строкой. В командную строку на вывод перенаправляем простой echo вместе с командой clip.
Например:
Код:
echo yo | clip
скопирует в буфер обмена «yo»

Чтобы работать с несколькими строками будем использовать несколько echo (каждый echo переносит строку), чтобы отдать команде clip все наши echo будем использовать скобочки, например:
Код:
(echo yo & echo niga) | clip
И в завершение данного поста предлагаю посмотреть как это можно удобно упаковать в отдельные функции и использовать в своих программах:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
var strClip: string;
 
procedure ClipStartOut();
begin
strClip := 'echo ';
end;
 
procedure ClipWriteLn(s: string);
begin
strClip += s + '& echo ';
end;
 
procedure ClipWriteLn(s: integer);
begin
strClip += s + '& echo ';
end;
 
procedure ClipExitOut();
begin
strClip := strClip.Remove(strClip.LastIndexOf('& echo'), 6);
var proc := new System.Diagnostics.Process();
proc.StartInfo := new System.Diagnostics.ProcessStartInfo('cmd', '/C (' + strClip + ') | clip');
proc.Start();
end;
 
begin
ClipStartOut();
ClipWriteLn(66);
ClipWriteLn(99);
ClipExitOut();
end.
Для начала работы с буфером надо вызвать процедуру ClipStartOut, для отправки текста в буфер - ClipWriteLn, для помещения всех данных отправленных через ClipWriteLn в буфер - ClipExitOut.

Источник: https://catplusplus.ru/blog/pascalabc_net_writeln_to_clipboard
Если что, то это мой сайт, разница в датах публикации потому, что мне лень всё делать сразу.
Размещено в Без категории
Просмотров 224 Комментарии 0
Всего комментариев 0
Комментарии
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru