Кибор » Кибор - Интегрированная среда разработки ботов » О программе Кибор » Версия 2.02 Добавлены файловые операции (чтение запись в текстовый файл)

Страниц (12): В начало « ... 4 5 6 7 8 9 [10] 11 12 »
 

91. Kibor - 12 Февраля, 2021 - 14:00:24 - перейти к сообщению
Добавлена функция freadlineall
Ее назначение считывание за один вызов указанное количество строк с текстового файла или пока не будет достигнут конец файла.

Синтаксис:
CODE:
freadlineall(#stroka[0], 2000000);

Параметр первый = Указатель на массив string, в который будут считываться строки
Второй - количество строк которое надо считать.
Указывать можно больше чем есть в наличие. В таком случае будет считываться весь файл и функция завершит работу.
Если в файле больше строк чем выделен массив, это приведет к ошибке в программе.

Возвращает реально прочитанное количество строк.

Пример
CODE:
string slovar[500];
int k;

if (fopen ("C:\russian.txt", "r")!=0)
{
k=freadlineall(#slovar[0], 100);
fclose();
}
messagebox (k);

for (int n=0; n<k; n++)
{
messagebox (slovar[n]);
}
92. Paskuda - 13 Февраля, 2021 - 03:22:32 - перейти к сообщению
Можно ли надеяться в будущем на работу хотя бы с Экселем т.к. копировать из него построчно тот еще гемор, как и создание txt-файла в качестве промежуточного буфера.
93. Zireael - 13 Февраля, 2021 - 03:35:03 - перейти к сообщению
 Цитата:
Можно ли надеяться в будущем на работу хотя бы с Экселем

И сейчас можно.
1. Конвертировать из xlsx в csv и читать/записывать как txt файл.
2. Установить модуль для python и сделать что нужно.
3. Через createpipeprocess запустить powershell и сделать что нужно.
94. Kibor - 13 Февраля, 2021 - 14:10:12 - перейти к сообщению
Рабочий пример

 Zireael пишет:
Через createpipeprocess запустить powershell и сделать что нужно.

Сомневаюсь я .. Что то никак.. Видать защита не дает таких возможностей..
Получилось только реально запускать и манипулировать клавиатурой или вставлять через буфер обмена.

Такой скрипт powershell - ра создает файл, делает в него запись и сохраняет на диск:
CODE:
$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $true
$WorkBook = $Excel.Workbooks.Add()
$LogiclDisk = $WorkBook.Worksheets.Item(1)
$LogiclDisk.Name = 'Логические диски'
$LogiclDisk.Cells.Item(1,1) = 'Буква диска'
$WorkBook.SaveAs('C:\Bot\1\Report.xlsx')
$Excel.Quit()


Печатать клавиатурой

CODE:
start("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe");
while (window (-1, "ConsoleWindowClass", -1)==0)sleep(50);
win w=window (-1, "ConsoleWindowClass", -1);
pause(1000);
string A="$Excel = New-Object -ComObject Excel.Application;$Excel.Visible = $true;$WorkBook = $Excel.Workbooks.Add();$LogiclDisk =$WorkBook.Worksheets.Item(1);$LogiclDisk.Name = ^'Логические диски^';$LogiclDisk.Cells.Item(1,1) = ^'Буква диска^';$WorkBook.SaveAs(^'C:\Bot\1\Report.xlsx^');$Excel.Quit()^n";
key(A, 1, 1, w);



Ввод через буфер обмена (Для вин 7) В других версиях может меню отличаться. Настроить на свое.

CODE:
start("C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe");
while (window (-1, "ConsoleWindowClass", -1)==0)sleep(50);
win w=window (-1, "ConsoleWindowClass", -1);
sendlanguage("00000409", w);//Русс раскладка
string A="$Excel = New-Object -ComObject Excel.Application;$Excel.Visible = $true;$WorkBook = $Excel.Workbooks.Add();$LogiclDisk =$WorkBook.Worksheets.Item(1);$LogiclDisk.Name = ^'Логические диски^';$LogiclDisk.Cells.Item(1,1) = ^'Буква диска^';$WorkBook.SaveAs(^'C:\Bot\1\Report.xlsx^');$Excel.Quit()";
writeclipboard(A);//В буфер обмена
pause(1000);

//alt + Space для вызова меню
//Затем 5 раз вниз по меню, 1 раз враво, 2 раза вниз и ентер.
//Опять ентер
keydown(MENU, 1, 0, w); key(SPACE, 1, 0, w); keyup(MENU, 1, 0, w);
sleep(500);
loop(5){key(DOWN, 1, 0, w); sleep(300);}
key(DOWN, 1, 0, w);
sleep(500);
key(RIGHT, 1, 0, w);
sleep(500);
loop(2){key(DOWN, 1, 0, w); sleep(300);}
key(RETURN, 1, 0, w);
sleep(500);
key(RETURN, 1, 0, w);
95. Zireael - 13 Февраля, 2021 - 15:02:05 - перейти к сообщению
 Цитата:
Видать защита не дает таких возможностей..

Каких именно?
 Цитата:
Такой скрипт powershell - ра создает файл, делает в него запись и сохраняет на диск:

Если этот скрипт выполнился, то и остальное можно сделать.
Антивирусник может блокировать запуск powershell в скрытом режиме. Тогда добавить в исключения.
96. Kibor - 13 Февраля, 2021 - 15:04:10 - перейти к сообщению
 Zireael пишет:
Каких именно?

Да первая же.
CODE:
$Excel = New-Object -ComObject Excel.Application

Эксель не запускается.

 Zireael пишет:
Если этот скрипт выполнился, то и остальное можно сделать.

Он выполняется. Только не по Pipe..
97. Zireael - 13 Февраля, 2021 - 15:12:55 - перейти к сообщению
 Цитата:
Эксель не запускается.

У меня работает через pipe.
Если добавить powershell в исключения антивирусника?
Если сохранить код в файл с расширением .ps1, то выполнит код?
Если запустить консоль с параметром SW_SHOW?
98. Kibor - 13 Февраля, 2021 - 15:30:05 - перейти к сообщению
 Zireael пишет:
У меня работает через pipe.

Через Киборовский?
 Zireael пишет:
Если добавить powershell в исключения антивирусника?

Нету Даже виндовского.
 Zireael пишет:
Если запустить консоль с параметром SW_SHOW?

Пробовал по разному.
 Zireael пишет:
Если сохранить код в файл с расширением .ps1, то выполнит код?

Пробовал тоже.

Выводит это:
 Цитата:
Команда :
powershell.exe C:\Bot\1\myScript.ps1

Выводит следующее:
Не удается загрузить файл C:\Bot\1\myScript.ps1, так как выполнение скриптов за
прещено для данной системы. Введите "get-help about_signing" для получения допо
лнительных сведений.



get-help about_signing говорит что то про подписи и тд. Особо не вникал.
Короче надо что то возможно настраивать.
99. Zireael - 13 Февраля, 2021 - 15:47:21 - перейти к сообщению
 Цитата:
Через Киборовский?

Да.
Запустить консоль от админа, в начало скрипта добавить эту строку:
CODE:
Set-ExecutionPolicy Unrestricted -Force

Выполнит код?
100. Kibor - 13 Февраля, 2021 - 15:55:16 - перейти к сообщению
 Zireael пишет:
Выполнит код?

Да.

И файл командой C:\Bot\1\myScript.ps1 выполнился. А с Кибор не хочет.

 Zireael пишет:
Цитата:
Через Киборовский?

Да.


Код скиньте полный.

Powered by ExBB FM 1.0 Final