Загрузка данных


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'")