Edytor tekstu - ucinanie pierwszych badz ostatnich liter

Edytor tekstu - ucinanie pierwszych badz ostatnich liter
P7
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 6
0

Witam

Szukam edytora tekstu który usuwa pierwszą bądź ostatnia literę (możliwość wyboru która i ile) w KAŻDYM wklejonym słowie. Na Internecie znalazłem podobny edytor tylko że płatny. Czy ktoś potrafił by zaprogramować taki edytor. Ilość wklejanego tekstu bardzo duża. Edytor który za jednym kliknięciem zmieniał by wszystkie słowa - usuwał jedną albo dwie litery z początku słowa bądź jedną bądź dwie ostatnie litery w każdym słowie.

Pozdrawiam i dziękuję za pomoc

Spine
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 7101
0
Phobos766666 napisał(a):

Na Internecie znalazłem podobny edytor tylko że płatny.

Phobos766666 napisał(a):

Czy ktoś potrafił by zaprogramować taki edytor.

Edytor, który ktoś by Ci zaprogramował też będzie płatny.

Chat GPT napisze Ci taki skrypt za darmo bez większych zgrzytów: https://chatgpt.com/share/678c77df-3134-800a-9005-8a0f1dd25b56

Nawet jak go poprosiłem o zrobienie GUI w PyQt, to zrobił:

Kopiuj
import sys
from PyQt5.QtWidgets import (QApplication, QVBoxLayout, QLabel, QLineEdit,
                             QPushButton, QRadioButton, QWidget, QTextEdit, QSpinBox, QHBoxLayout)


def modify_words(text, x, from_start=True):
    """
    Modyfikuje każde słowo w tekście, usuwając X pierwszych lub ostatnich znaków.

    :param text: Tekst wejściowy
    :param x: Liczba znaków do usunięcia
    :param from_start: Jeśli True, usuwa znaki od początku; jeśli False, od końca
    :return: Tekst po modyfikacji
    """
    words = text.split()
    modified_words = []

    for word in words:
        if len(word) > x:
            modified_word = word[x:] if from_start else word[:-x]
            modified_words.append(modified_word)

    return ' '.join(modified_words)


class TextModifierApp(QWidget):
    def __init__(self):
        super().__init__()
        self.init_ui()

    def init_ui(self):
        # Layout główny
        layout = QVBoxLayout()

        # Pole tekstowe dla wejściowego tekstu
        self.input_label = QLabel("Wprowadź tekst:")
        self.input_text = QTextEdit()
        layout.addWidget(self.input_label)
        layout.addWidget(self.input_text)

        # Spinner dla liczby znaków do usunięcia
        self.x_label = QLabel("Liczba znaków do usunięcia:")
        self.x_spinbox = QSpinBox()
        self.x_spinbox.setMinimum(0)
        self.x_spinbox.setMaximum(100)
        layout.addWidget(self.x_label)
        layout.addWidget(self.x_spinbox)

        # Opcje usuwania znaków od początku lub końca
        self.start_radio = QRadioButton("Usuń od początku")
        self.start_radio.setChecked(True)
        self.end_radio = QRadioButton("Usuń od końca")

        radio_layout = QHBoxLayout()
        radio_layout.addWidget(self.start_radio)
        radio_layout.addWidget(self.end_radio)

        layout.addLayout(radio_layout)

        # Przycisk do przetwarzania tekstu
        self.process_button = QPushButton("Przetwórz tekst")
        self.process_button.clicked.connect(self.process_text)
        layout.addWidget(self.process_button)

        # Pole tekstowe dla wynikowego tekstu
        self.output_label = QLabel("Zmodyfikowany tekst:")
        self.output_text = QTextEdit()
        self.output_text.setReadOnly(True)
        layout.addWidget(self.output_label)
        layout.addWidget(self.output_text)

        # Ustawienia okna
        self.setLayout(layout)
        self.setWindowTitle("Modyfikator Tekstu")
        self.resize(400, 300)

    def process_text(self):
        # Pobierz dane z pól
        input_text = self.input_text.toPlainText()
        x = self.x_spinbox.value()
        from_start = self.start_radio.isChecked()

        # Przetwarzanie tekstu
        modified_text = modify_words(input_text, x, from_start)

        # Wyświetl wynik
        self.output_text.setPlainText(modified_text)


if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = TextModifierApp()
    window.show()
    sys.exit(app.exec_())

screenshot-20250119051646.png

KB
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 134
0

Jeżeli chodzi o to by zawsze używał taką samą ilość liter a nie losową to każdy edytor z obsługą regex się nada. Samo wyrażenie regularne napisze ChatGTP.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.