import os
import re
# Создаем папку для результатов
os.makedirs("extracted_texts", exist_ok=True)
# Ищем английский текст (от 4 символов)
string_pattern = re.compile(b'[\x20-\x7E]{4,}')
total_files = 0
print("Начался массовый сбор текста...")
for file_name in os.listdir("."):
if file_name.endswith((".stcm2l", ".DAT")):
total_files += 1
with open(file_name, "rb") as f:
content = f.read()
matches = list(string_pattern.finditer(content))
output_txt = os.path.join("extracted_texts", file_name + ".txt")
with open(output_txt, "w", encoding="utf-8") as out:
for match in matches:
text = match.group(0)
# Оставляем только строки, содержащие английские буквы
if any(c in text for c in b'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'):
try:
decoded_text = text.decode('utf-8', errors='ignore').strip()
# Сохраняем с HEX адресом в начале
out.write(f"[{hex(match.start())}] {decoded_text}\n")
except:
pass
print(f"Успешно! Обработано файлов: {total_files}. Все тексты лежат в папке 'extracted_texts'")