Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Elad on April 05, 2019, 09:40:06 AM

Title: Поместить в TOCLIP несколько элементов
Post by: Elad on April 05, 2019, 09:40:06 AM
Возникла потребность выбирать из .txt файла с данными  N-е число строк и помещать их в буфер обмена (чтобы в буфере сразу находилось несколько строк из файла, а не по очереди загонять их туда), но я почему-то слабо представляю как это можно сделать.
Title: Re: Поместить в TOCLIP несколько элементов
Post by: Elad on April 05, 2019, 10:02:37 AM
Написал, перечитал и пришло решение:
Склеить в цикле строки, через STRCONCAT, а результат поместить в буфер ... Но тут возникает следующая проблема:
Как поместить строки в буфер, чтобы при вставке в excel они помещались друг под другом?
Вот пример кода, который склеит все в одну длинную строку, которая будет вставляться целиком в одну ячейку ..
Code: [Select]
$file = "test.txt"
$buffer = ""
for($i = 1, $i <=5)
$buffer = STRCONCAT($buffer,TFREAD($file,$i))
end_cyc
TOCLIP($buffer)
Title: Re: Поместить в TOCLIP несколько элементов
Post by: Elad on April 05, 2019, 10:13:22 AM
В общем все есть в справке, мб кому-то пригодится
Код берет 5 строк из файла и помещает в буфер обмена (ctrl+c) так, чтобы при вставке в excel эти строки находились друг под другом:
Code: [Select]
$file = "test.txt"
$buffer = ""
for($i = 1, $i <=5)
$buffer = STRCONCAT($buffer,CHAR(13),TFREAD($file,$i))
end_cyc
TOCLIP($buffer)
Если надо вставлять слева на право:
Code: [Select]
CHAR(13) заменяете на CHAR(9)
Title: Re: Поместить в TOCLIP несколько элементов
Post by: Oraven on April 05, 2019, 11:10:35 AM
Для перевода строки лучше вставлять два символа char(13),char(10)
К тому же в твоем варианте первая строка оказывается пустой.

Code: (clickermann) [Select]
$file = "test.txt"
$buffer = ""
for($i = 1, $i<=5)
   IF($i = 1)
      $buffer = TFREAD($file,$i)
   ELSE
      $buffer = STRCONCAT($buffer,char(13),char(10),TFREAD($file,$i))
   END_IF
end_cyc
TOCLIP($buffer)

HALT
Title: Re: Поместить в TOCLIP несколько элементов
Post by: Elad on April 05, 2019, 11:38:08 AM
Для перевода строки лучше вставлять два символа char(13),char(10)
К тому же в твоем варианте первая строка оказывается пустой.

Code: (clickermann) [Select]
$file = "test.txt"
$buffer = ""
for($i = 1, $i<=5)
   IF($i = 1)
      $buffer = TFREAD($file,$i)
   ELSE
      $buffer = STRCONCAT($buffer,char(13),char(10),TFREAD($file,$i))
   END_IF
end_cyc
TOCLIP($buffer)

HALT

Да, вы правы, того что я описал, хватило для корректной вставки в excel и блокнот, а вот для копирования в таблицу access пришлось добавлять уже CHAR(10)