import os
import pickle
from MMM1 import find_anomal, cor_anom

def read_sig(filename):
    numbers = []
    try:
        with open(filename, 'r', encoding='utf-8') as f:
            for line in f:
                parts = line.strip().split()
                for part in parts:
                    try:
                        numbers.append(float(part))
                    except ValueError:
                        continue
    except Exception as e:
        print(f"Ошибка чтения файла: {e}")
        return None
    return numbers

def main_pr():
    while True:
        filename = input("Введите имя текстового файла с сигналом: ")
        if os.path.isfile(filename):
            break
        print("Файл не найден. Попробуйте снова.")
    
    X = read_sig(filename)
    if X is None:
        print("Не удалось прочитать сигнал.")
        return
    
    M1 = float(input("Введите M1 (нижняя граница): "))
    M2 = float(input("Введите M2 (верхняя граница): "))
    
    anomalies = find_anomal(X, M1, M2)
    if anomalies:
        print(f"Индексы аномальных отсчетов: {anomalies}")
    else:
        print("Индексов аномальных отcчетов нет")
    
    if anomalies:
        X1 = cor_anom(X, anomalies)
        
        with open('Res44.bin', 'wb') as f:
            pickle.dump(X1, f)
        print("Результат сохранён в файл Res44.bin")
    else:
        print("Аномальных отсчетов не обнаружено.")
    
    return X, X1 if anomalies else None
