Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: wireshark on January 16, 2017, 11:07:45 AM
-
Помогите пожалуйста,
Есть текстовый файл откуда беру строки с помощью TOCLIP (TFREAD ("input.txt", $a)), при этом пустые строки интерпретируются как "", те входной файл к примеру
строка1
строка2
на выходе получаем:
строка1
""
строка2
По этой причине хочу их вырезать TOCLIP (STRFILTER (TFREAD ("input.txt", $a),""", 0)) но как понимаете ничего хорошего из """ не получилось.
Подскажите , какую последовательность нужно использовать чтобы вырезать " ?
-
А зачем ты пытаешься отправить в буфер пустоту? Нужно просто пропускать такие строки измеряя их длину
FOR($a=1,$a<TFCOUNT("input.txt")+1)
$str = TFREAD ("input.txt", $a)
IF(STRLEN($str) > 0)
TOCLIP($str)
END_IF
END_CYC
-
Приходится, иначе в выходном файле нарушится форматирование, те мне в выходной файл придется писать пустые строки. Хотел более простую конструкцию.
-
Похоже что ты используешь 4.13
В 4.12 такой проблемы нет. Пустая строка не создает ""
-
Ага) 4.13, 4.12 не делает "", но у него кошмар с кодировкой начался, возможно ее надо принудительно задать для 4.12? Пробовал через SETKBLAYOUT(WNDFIND("name", 0), 1049) ничего не вышло, текст сохранял и в UTF-8 и ANSI и Юникоде
-
Интересно как ты в Юникоде сохранил :) но при этом не UTF-8.
До 4.13 кодировка должна быть cp1251 она же Win-1251. ANSI - кодировка системы. Для русского это обычно та же cp1251.
-
Еще раз через notepad++ сделал конвертацию в ansi и сохранил. Пофиг вот, что получаю Ðåàëèòè-øîó.
-
Ну так это не cp1251
-
А чем пользовались, что за сервис? Видимо из-за перекодировки из UTF-8 криво конвертировался.
-
ANSI будет cp1251 если винда русская и раскладка русская.
В твоей системе стоит ISO-8859-1 - где коды от 160 до 255 содержат символы, используемые в западно-европейских странах.
У тебя с вероятностью 95% стоит для украинского языка.
-
А чем пользовались, что за сервис? Видимо из-за перекодировки из UTF-8 криво конвертировался.
http://www.online-decoder.com/ru
Ещё бывает пробую в этих
https://2cyr.com/decode/
https://www.artlebedev.ru/tools/decoder/
-
Спасибо! Сейчас проверил, исходный распознается как UTF-8, хотя в notepad++ указывается как ANSI. Судя по всему проблема в исходном файле.
-
У меня были файлы, где Notepad++ неправильно определял и ставил кодировку.
Отключил
Опции -->> Настройки -->> Разное -->>
снять Авто-определение кодировки символов.
-
В общем помучившись с кодировками вернулся на 4.13, поскольку выгрызть "" не получилось, воспользовался советом Oraven и дописал код, но тут ждала засада, 4.13 воспринимает "" пустой строки как 2 символа, пришлось пожертвовать строками с 2 и менее символами, благо таких почти нет.
FOR($a=1,$a<TFCOUNT("input.txt")+1)
$str = TFREAD ("input.txt", $a)
IF(STRLEN($str) > 2)
TOCLIP($str)
ELSE
STRWRITELN ("output.txt", " ")
END_IF
END_CYC
-
Просто проверь на неравенство двум кавычкам
FOR($a=1, $a < TFCOUNT("input.txt")+1)
$str = TFREAD ("input.txt", $a)
IF((STRLEN($str) > 0) & (STRMD5($str) ! "9D4568C009D203AB10E33EA9953A0264"))
TOCLIP($str)
ELSE
STRWRITELN ("output.txt", " ")
END_IF
END_CYC
-
Хитро, я до этого не додумался, заменить "" на их MD5. Спасибо!
-
Прокачаны навыки в костылестроении ;D ;D