Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (1): [1]   

> Описание: нужно изменить кодировку на UTF-8
marjachok
Отправлено: 19 Октября, 2018 - 14:15:51
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 15
Дата рег-ции: Окт. 2018  
Репутация: 0




Необходимо изменить кодировку разпознанного текста а, то после того как я изменяю кодировку в txt и после очередного заполнения текстового документа распознанным текстом изменяется кодировка txt файле и значение берётся не корректно.

 Цитата:
string text_KIB;
int sum_symbol_KIB;
int n_readtext_KIB;
int color_text_KIB_5[1];
color_text_KIB_5[0]=0;
double correct_symbol_KIB[45];
loadsymbolbase("C:\Users\Windows_7\Downloads\basetext.sib"Подмигивание;
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;

start_();

sum_symbol_KIB=readtext(RU | MARK, #text_KIB, 8, 1, -1, 50, -1, #color_text_KIB_5[0], -1, 0, 50, 1064, 208, 1290, 223, w_KIB);
for (n_readtext_KIB=0; n_readtext_KIB<sum_symbol_KIB; n_readtext_KIB++)correct_symbol_KIB[n_readtext_KIB]=symbolcorrect(n_readtext_KIB);




function start_()
{
pause(1000);
int x, y;
getmouse(x, y);
w_KIB=getwindow(0, x, y);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
}


if (fopen ("D:\програмирование-2\1zenoposter\RubSerf\Capcha_Rubserf\тест.txt", "w"Подмигивание!=0)
{
fwrite(text_KIB);
fclose();//закрываем файл
}
 
 Top
Zireael
Отправлено: 19 Октября, 2018 - 14:49:05
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4421
Дата рег-ции: Нояб. 2017  
Репутация: 584




 Цитата:
после того как я изменяю кодировку в txt

Файл, в который сохраняется распознанный текст, оставлять без изменений. Через командную строку создать копию файла в нужной кодировке.
CODE:
string path_in="C:\1111.txt"; // путь к файлу в кодировке ANSI
string path_out="C:\2222.txt"; // куда сохранить в кодировке Unicode

// сохранить батник, разовая операция, потом можно оставить только start
if(fopen("C:\ANSIinUnicode.bat", "w")!=0)
{
fwrite("chcp 1251"); fwrite(ENDL);
fwrite("cmd /u/c type "+path_in+" >C:\temp.txt"); fwrite(ENDL);
fwrite("chcp 65001"); fwrite(ENDL);
fwrite("type C:\temp.txt >"+path_out);
fclose();
sleep(1000);
start("C:\ANSIinUnicode.bat"); // запустить батник
}
 
 Top
marjachok
Отправлено: 20 Октября, 2018 - 14:33:08
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 15
Дата рег-ции: Окт. 2018  
Репутация: 0




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

CODE:
string text_KIB;
int sum_symbol_KIB;
int n_readtext_KIB;
int color_text_KIB_5[1];
color_text_KIB_5[0]=0;
double correct_symbol_KIB[45];
loadsymbolbase("C:\Users\Windows_7\Downloads\basetext.sib");

sum_symbol_KIB=readtext(RU | MARK, #text_KIB, 8, 1, -1, 50, -1, #color_text_KIB_5[0], -1, 0, 50, 1065, 208, 1313, 222, -1);
for (n_readtext_KIB=0; n_readtext_KIB<sum_symbol_KIB; n_readtext_KIB++)correct_symbol_KIB[n_readtext_KIB]=symbolcorrect(n_readtext_KIB);


if (fopen ("D:\програмирование-2\1zenoposter\RubSerf\Capcha_Rubserf\тест.txt", "w")!=0)
{
fwrite(text_KIB);
fclose();//закрываем файл
}

string path_in="D:\програмирование-2\1zenoposter\RubSerf\Capcha_Rubserf\тест.txt"; // путь к файлу в кодировке ANSI
string path_out="D:\програмирование-2\1zenoposter\RubSerf\Capcha_Rubserf\test_2.txt"; // куда сохранить в кодировке Unicode


start("C:\ANSIinUnicode.bat"); // запустить батник
}
 
 Top
Zireael
Отправлено: 20 Октября, 2018 - 19:26:06
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4421
Дата рег-ции: Нояб. 2017  
Репутация: 584




 Цитата:
Что я сделал неправильно?

Не использовать кириллицу в пути.
CODE:
string text_KIB="english text, русский текст"; // текст

string path_in="D:\ansi.txt"; // путь к файлу в кодировке ANSI
string path_out="D:\unicode.txt"; // куда сохранить в кодировке Unicode

if (fopen (path_in, "w")!=0)
{
fwrite(text_KIB);
fclose(); sleep(200);
}

// сохранить батник, разовая операция, потом можно оставить только start
if(fopen("D:\ANSIinUnicode.bat", "w")!=0)
{
fwrite("chcp 1251 >nul"); fwrite(ENDL);
fwrite("cmd /u/c type "+path_in+" >"+path_out); fwrite(ENDL);
fclose();
sleep(1000);
start("D:\ANSIinUnicode.bat"); // запустить батник
}
 
 Top
marjachok
Отправлено: 20 Октября, 2018 - 23:17:04
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 15
Дата рег-ции: Окт. 2018  
Репутация: 0




Zireael ,
А сейчас скрипт выдаёт ошибку "Повторение имени переменной text_KIB"

CODE:
string text_KIB
int color_text_KIB_5[1];
color_text_KIB_5[0]=0;
loadsymbolbase("C:\Users\Windows_7\Downloads\basetext.sib");
win w_KIB;
int ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;

start_();

readtext(RU | MARK, #text_KIB, 8, 1, -1, 50, -1, #color_text_KIB_5[0], -1, 0, 50, 1059, 208, 1316, 223, w_KIB);




function start_()
{
pause(1000);
int x, y;
getmouse(x, y);
w_KIB=getwindow(0, x, y);
ex_KIB=w_KIB.widthclient; ey_KIB=w_KIB.heightclient;
}


if (fopen ("D:\програмирование-2\1zenoposter\RubSerf\Capcha_Rubserf\тест.txt", "w")!=0)
{
fwrite(text_KIB);
fclose();//закрываем файл
}


string text_KIB="english text, русский текст"; // текст

string path_in="D:\програмирование-2\1zenoposter\RubSerf\Capcha_Rubserf\тест.txt"; // путь к файлу в кодировке ANSI
string path_out="D:\програмирование-2\1zenoposter\RubSerf\Capcha_Rubserf\test_2.txt"; // куда сохранить в кодировке Unicode

if (fopen (path_in, "w")!=0)
{
fwrite(text_KIB);
fclose(); sleep(200);
}

// сохранить батник, разовая операция, потом можно оставить только start
if(fopen("D:\ANSIinUnicode.bat", "w")!=0)
{
fwrite("chcp 1251 >nul"); fwrite(ENDL);
fwrite("cmd /u/c type "+path_in+" >"+path_out); fwrite(ENDL);
fclose();
sleep(1000);
start("D:\ANSIinUnicode.bat"); // запустить батник
}


 
 Top
Zireael
Отправлено: 20 Октября, 2018 - 23:32:48
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4421
Дата рег-ции: Нояб. 2017  
Репутация: 584




 Цитата:
string text_KIB="english text, русский текст"; // текст

Эту строку удалить. Она только для примера.
Не использовать кириллицу в пути.
 
 Top
marjachok
Отправлено: 22 Октября, 2018 - 01:04:08
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 15
Дата рег-ции: Окт. 2018  
Репутация: 0




Zireael ,
Привет. Я так понял, что без замены символов на латинские мне не обойтись. Подскажи как это можно сделать
 
 Top
Zireael
Отправлено: 22 Октября, 2018 - 01:44:01
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4421
Дата рег-ции: Нояб. 2017  
Репутация: 584




CODE:
external(INT, "CopyFile", "CopyFileA", "kernel32.dll");

string text_KIB="english text, русский текст"; // текст

string path_in="D:\ansi.txt"; // путь к файлу в кодировке ANSI
string path_out="D:\unicode.txt";
string path_out2="D:\програмирование-2\1zenoposter\RubSerf\Capcha_Rubserf\test_2.txt"; // куда сохранить в кодировке Unicode


if (fopen (path_in, "w")!=0)
{
fwrite(text_KIB);
fclose(); sleep(200);
}

// сохранить батник, разовая операция, потом можно оставить только start
if(fopen("D:\ANSIinUnicode.bat", "w")!=0)
{
fwrite("chcp 1251 >nul"); fwrite(ENDL);
fwrite("cmd /u/c type "+path_in+" >"+path_out); fwrite(ENDL);
fclose();
sleep(1000);
start("D:\ANSIinUnicode.bat"); // запустить батник
}

sleep(2000);
CopyFile(path_out, path_out2, 0); // скопировать файл
 
 Top
Kibor
Отправлено: 15 Августа, 2023 - 20:58:28
Post Id



Администратор
Эксперт


Покинул форум
Сообщений всего: 8111
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 355




Конвертирование формата ANSI в UTF-8
Конвертация UTF-8 в ANSI

CODE:
string A=ansitoutf8("Текст в ANSI");
messagebox (A);
string S=utf8toansi (A);
messagebox (S);
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 5 (гостей: 5, зарегистрированных: 0)
« Вопросы и решение проблем »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 




Powered by