Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: Elad on April 05, 2019, 09:40:06 AM
-
Возникла потребность выбирать из .txt файла с данными N-е число строк и помещать их в буфер обмена (чтобы в буфере сразу находилось несколько строк из файла, а не по очереди загонять их туда), но я почему-то слабо представляю как это можно сделать.
-
Написал, перечитал и пришло решение:
Склеить в цикле строки, через STRCONCAT, а результат поместить в буфер ... Но тут возникает следующая проблема:
Как поместить строки в буфер, чтобы при вставке в excel они помещались друг под другом?
Вот пример кода, который склеит все в одну длинную строку, которая будет вставляться целиком в одну ячейку ..
$file = "test.txt"
$buffer = ""
for($i = 1, $i <=5)
$buffer = STRCONCAT($buffer,TFREAD($file,$i))
end_cyc
TOCLIP($buffer)
-
В общем все есть в справке, мб кому-то пригодится
Код берет 5 строк из файла и помещает в буфер обмена (ctrl+c) так, чтобы при вставке в excel эти строки находились друг под другом:
$file = "test.txt"
$buffer = ""
for($i = 1, $i <=5)
$buffer = STRCONCAT($buffer,CHAR(13),TFREAD($file,$i))
end_cyc
TOCLIP($buffer)
Если надо вставлять слева на право:
CHAR(13) заменяете на CHAR(9)
-
Для перевода строки лучше вставлять два символа char(13),char(10)
К тому же в твоем варианте первая строка оказывается пустой.
$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
-
Для перевода строки лучше вставлять два символа char(13),char(10)
К тому же в твоем варианте первая строка оказывается пустой.
$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)