Author Topic: Поместить в TOCLIP несколько элементов  (Read 1889 times)

0 Members and 1 Guest are viewing this topic.

Elad

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Возникла потребность выбирать из .txt файла с данными  N-е число строк и помещать их в буфер обмена (чтобы в буфере сразу находилось несколько строк из файла, а не по очереди загонять их туда), но я почему-то слабо представляю как это можно сделать.

Elad

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Поместить в TOCLIP несколько элементов
« Reply #1 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)
« Last Edit: April 05, 2019, 10:19:33 AM by Elad »

Elad

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Поместить в TOCLIP несколько элементов
« Reply #2 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)
« Last Edit: April 05, 2019, 10:19:48 AM by Elad »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Поместить в TOCLIP несколько элементов
« Reply #3 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

Elad

  • Освоившийся
  • **
  • Posts: 23
    • View Profile
Re: Поместить в TOCLIP несколько элементов
« Reply #4 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)