Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   Можно ли скопировать текст из буфера обмена средством Delphi (http://forum.oszone.net/showthread.php?t=338657)

turbolover 10-01-2019 12:38 2851132

Можно ли скопировать текст из буфера обмена средством Delphi
 
Можно ли скопировать текст из буфера обмена и вставить его в текстовый файл на компьютере и сохранить, на пример на рабочем столе, или записать текст в заранее созданный текстовый файл 'Test.txt".
Вот нашел вариант как вставить текст в буфер обмена- а как скопировать не нашел.
Если можно помогите с кодом.
Код:

Clipboard.SetTextBuf(PChar('Text in Clipboard'));

Iska 10-01-2019 13:03 2851139

Цитата:

Цитата turbolover
а как скопировать не нашол. »

Первые же ссылки из выдачи Google:
Работа с буфером обмена в Delphi | Разные статьи | Статьи | Программирование Realcoding.Net - Программирование C++, Delphi, C#, .NET, базы данных, статьи, электронные книги скачать
Работа с буфером обмена | Блог Delphi-программиста
Работа с буфером обмена -> Форум на Исходниках.Ру

Цитата:

Цитата turbolover
вставить его в текстовый файл на компьютере и сохранить »

Это называется «Append» — дополнить, дописать в конец.

Цитата:

Цитата turbolover
на пример на рабочем столе, »

Получаете путь к Рабочему столу текущего пользователя.

Цитата:

Цитата turbolover
или записать текст в заранее созданный текстовый файл 'Test.txt". »

Без разницы. Если такого файла на Рабочем столе нет — создаёте его и пишете в него. Если уже есть — открываете и дописываете.

ufooo000 10-01-2019 13:19 2851144

https://www.youtube.com/watch?v=jBDLmnNjdh8

opel431 11-01-2019 02:00 2851344

Звучит как "посолить соль".
Что служит источником данных для копирования в буфер, - откуда вы заполняете его, не с потолка же?
Буфер можно сохранить в файл, предварительно проверив формат хранящихся в нем данных, - if ClipBoard.HasFormat(CF_TEXT) then ....
можно скинуть в TStringList или TMemo и сохранить встроенными функциями, - SaveToFile(...).
Для сохранения на рабочий стол необходимо применить функцию определения пути к специальным папкам
Код:

uses ShlObj;
....
function GetSpecialPath(CSIDL: word): string;
var s:  string;
begin
 SetLength(s, MAX_PATH);
 if not SHGetSpecialFolderPath(0, PChar(s), CSIDL, true)
 then s := '';
 result := PChar(s);
end;
....

var
PathDesktop: string;

PathDesktop := GetSpecialPath(CSIDL_DESKTOP);

Больше вопросов, чем ответов!

ufooo000 12-01-2019 20:15 2851663

Я неаример копирую батником

turbolover 12-01-2019 20:21 2851666

Цитата:

Цитата opel431
откуда вы заполняете его, не с потолка же »

Сылкой из "Youtube"

opel431 13-01-2019 09:13 2851761

Цитата:

Цитата turbolover
Сылкой из "Youtube" »

Ну и что дальше? Ссылка, это просто строка, вида - https://youtu.be/nWCUTxz5wFw
Можете сохранить "буфер" в строковую переменную, предварительно проверив формат данных (см. выше), или вставить в визуальный компонент TEdit, если несколько ссылок одновременно, добавляем в TStringList или визуальный компонент TMemo, - вариантов море. Далее, делайте, что хотите. Строка есть, путь к папке рабочего стола, есть, - получили ссылку, проверили формат, присвоили "переменной", сохранили данные в файл. Добавление удаление и т.д. ссылок из файла, можно потом производить стандартными процедурами и функциями TFile или TStringList.

turbolover 04-02-2019 13:52 2856171

Пока нашел такой вариант который показывает что за текст в буфере обмена.
А как этот текст скопировать в скажем файл "Test.txt" незнаю...
Код:

if ClipBoard.FormatCount=4 then
    ShowMessage(ClipBoard.AsText);


opel431 05-02-2019 11:00 2856304

Цитата:

Цитата turbolover
Пока нашел такой вариант который показывает что за текст в буфере обмена.
А как этот текст скопировать в скажем файл "Test.txt" незнаю... »

Вы справку, по Delphi, хоть один раз открывали! Извините, но одного желания, с такими познаниями, мало. Нет справки, так задайте правильный поиск в сети, - "Delphi операции со строками", или "Delphi работа с файлами". Одно дело, просить помощи в решении более менее сложной проблемы или оптимизации своего кода, другое дело, вести "начальные уроки информатики".

turbolover 05-02-2019 17:11 2856368

Цитата:

Цитата opel431
Вы справку, по Delphi, хоть один раз открывали! »

Естественно.
Могу скопировать с файла в "Clipboard" а с "Clipboard" в файл неумею.
Код:

assignFile(F, 'Test.txt');
  Reset(F);
  n := 1;
while not eof(f) do
  begin
    readln(f, s[n]);
    inc(n);
  end;
 Clipboard.Clear;
  for i := 1 to n - 1 do
    Clipboard.AsText:=Clipboard.AsText+s[i]+' ';


Iska 05-02-2019 17:25 2856371

Цитата:

Цитата opel431
Вы справку, по Delphi, хоть один раз открывали! Извините, но одного желания, с такими познаниями, мало. Нет справки, так задайте правильный поиск в сети, - "Delphi операции со строками", или "Delphi работа с файлами". Одно дело, просить помощи в решении более менее сложной проблемы или оптимизации своего кода, другое дело, вести "начальные уроки информатики". »

opel431, ну, если спустя месяц после того, как я привёл во втором сообщении готовые ссылки, человек пишет:
Цитата:

Цитата turbolover
Пока нашел такой вариант который показывает что за текст в буфере обмена. »

— ответ, надо полагать, очевиден.

opel431 05-02-2019 20:59 2856413

Цитата:

Цитата turbolover
Могу скопировать с файла в "Clipboard" а с "Clipboard" в файл неумею »

Вам уже неоднократно ответили, что то, что у вас в буфере, это строка - string!
Цитата:

Цитата turbolover
ShowMessage(ClipBoard.AsText); »

ClipBoard.AsText, - это и есть string.
Как сохранить в файл? Тоже ответили, смотрите в справке и примените что-то одно:
1. TFile
2. TStringList
3. TFileStream

или, в современных версиях Delphi 2010 и выше TFile.WriteAllText. http://www.proghouse.ru/programming/...s#TFile_Create
Простой пример.
Код:

uses
  SysUtils, IOUtils; // добавим необходимые юниты
...

var
  s: string;
begin
  TFile.WriteAllText('C:\Test1\Test.txt', ClipBoard.AsText, TEncoding.ANSI); // пишем в кодировке ANSI
  s := TFile.ReadAllText('C:\Test1\test.txt')); // читаем
  ShowMessage(s): // выводим в сообщение
end;


opel431 05-02-2019 21:37 2856426

Цитата:

Цитата Iska
ну, если спустя месяц после того, как я привёл во втором сообщении готовые ссылки »

Да желание сделать "своими руками" приветствуется. При нынешней информатизации и доступности получения первоначального уровня, из справки или сети, не должно вызывать проблем, но человек застрял исключительно на "хочу" и не хочет, извиняюсь, включать мозги. Но, разжевать нужно, хотя бы потому, что неизвестен ни возраст, ни серьезность намерений. С уровнем знаний и выработкой алгоритма решения задачи, пока все плохо.

turbolover 06-02-2019 00:48 2856457

Цитата:

Цитата opel431
"хочу" и не хочет, извиняюсь, включать мозги »

я не программист - я просто немного увлекаюсь этим когда есть время и что то пришло в голову.
Где я пропал на месяц - ездил на фуре по эвропе и щас опять уеду на две недели.

А мне пока нет времени учится- вот сменю профессию и тогда...

Busla 06-02-2019 10:49 2856485

turbolover, я тоже когда-то совершал аналогичную ошибку - пытался сразу решить простую практическую задачу вместо явно учебных примеров. Так вот - это не работает.
Пройдите последовательно пару учебных курсов. А потом уже пробуйте свои силы в произвольных задачах.

Iska 06-02-2019 13:34 2856521

Лучше пару-тройку вменяемых учебников.

Busla 06-02-2019 15:13 2856540

Iska, учебник - это курс напечатанный на бумаге :-)

Iska 06-02-2019 19:17 2856576

Busla, я бы выразился иначе: курсы — слабая пародия на левую руку :) качественный учебник. Курсы хороши в нескольких случаях — когда нужно быстро ознакомиться с технологией, когда нужно пройти переквалификацию/ознакомиться с новыми возможностями уже известной технологии, или когда тебя слабо интересует конечный результат.

Хороших курсов реально мало. И если учебник достаточно минут пять-десять полистать, чтобы понять, годный он, або нет, то с курсами такая песня как правило не проходит — их приходится глядеть/читать от и до, дабы составить правильное представление.

Busla 06-02-2019 22:30 2856605

Iska, вы сейчас как студент из байки про "какого цвета учебник". Возьмите качественный учебник (для взрослого человека), и на обложке будет написано:
Курс экономической теории.
Курс общей физики.
Начальный курс французского языка.
Курс математического анализа.
Поэтому для меня "учебник" и "курс" - практически синонимы

Iska 07-02-2019 19:29 2856753

Цитата:

Цитата Busla
Iska, вы сейчас как студент из байки про "какого цвета учебник". »

«Во валит, гад, во валит!»™ :lol:

Busla, я не про те курсы. К старому пониманию понятия «курс» у меня никаких претензий нет и быть не может. И, увы, боюсь, перечисленное Вами начисто угроблено усилиями наших доблестных реформаторов от образования. «ОКи-ПоКи наше фсё». Елена Сергеевна Вентцель им, видите ли, устарела.


Время: 18:57.

Время: 18:57.
© OSzone.net 2001-