Basteln...

Dieses Thema im Forum "Programmieren" wurde erstellt von Info4ever, 7. April 2004.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Info4ever

    Info4ever Byte

    Registriert seit:
    24. März 2004
    Beiträge:
    79
    Hey,
    ich würd mir gern so einen Translator basteln der mir ganze Sätze übersetzen würde...(mit den Buchstabencodes die ich ihm beibringe, also A klönnte z.b FCX sein).

    Meine Fragen nun: Ist das möglich, und wer weis wies geht?

    mfg, info4ever
     
  2. Info4ever

    Info4ever Byte

    Registriert seit:
    24. März 2004
    Beiträge:
    79
    Wow, DANKE!! Jetz bin ich schon nen gehörigen Schritt weiter!
    Danke!! :bet:
     
  3. Sumo

    Sumo Kbyte

    Registriert seit:
    30. August 2000
    Beiträge:
    178
    Klar, hier der Code für andere Buchstaben

    Code:
    CLS
    DIM InputText AS STRING
    DIM i AS INTEGER
    InputText = "Kleines Testprogramm"
    PRINT InputText
    FOR i = 1 TO LEN(InputText)
        IF MID$(InputText, i, 1) = "e" THEN MID$(InputText, i) = "a"
        IF MID$(InputText, i, 1) = "f" THEN MID$(InputText, i) = "b"
         'immer so weiter
    NEXT i
    PRINT InputText
    Das mit den ganzen If's funktioniert zwar, wird aber durch eine andere Struktur ersetzt.
    Code:
    CLS
    DIM InputText AS STRING
    DIM i AS INTEGER
    InputText = "Kleines Testprogramm"
    PRINT InputText
    FOR i = 1 TO LEN(InputText)
        SELECT CASE MID$(InputText, i, 1)
            CASE "e"
                MID$(InputText, i) = "a"
            CASE "f"
                MID$(InputText, i) = "b"
        END SELECT
    NEXT i
    PRINT InputText
    
    
    Wir rufen hier nur einmal Mid$(InputText, i, 1) auf und entscheiden dann anhand der Rückgabe was wir machen müssen.

    Nun noch eine Lösung die etwas näher an dem von dir beschriebenen Problem liegt. Du sagst du willst a durch FCX ersetzen. Wenn wir bei den 3 vorliegenden Quellcodes einen Buchstaben durch eine Folge von Buchstaben ersetzen wollen, dann werden alle nachfolgenden Buchstaben aus dem Eingabetext überschrieben. "a" z.B. zu "at" und aus "Tarnung" wird "Tatnung". Das "r" geht uns hier verloren.
    Deshalb machen wir folgendes:
    Code:
    CLS
    DIM InputText AS STRING
    DIM OutputText AS STRING
    DIM i AS INTEGER
    InputText = "Kleines Testprogramm"
    OutputText = ""
    PRINT InputText
    FOR i = 1 TO LEN(InputText)
        SELECT CASE MID$(InputText, i, 1)
            CASE "e"
                OutputText = OutputText + "scha"
            CASE "f"
                OutputText = OutputText + "lalalala"
            CASE ELSE
                OutputText = OutputText + MID$(InputText, i, 1)
        END SELECT
    NEXT i
    PRINT OutputText
    
    
    Wir haben eine weitere Variable im Programm die unseren späteren Ausgabetext erhält. Mit dem + Zeichen hängen wir 2 Strings aneinander.
    Wenn Text = "Ich bin nur die Nummer " dann wird aus:
    Text = Text + "2"
    der Text "Ich bin nur die Nummer 2"
    Sollten wir einen Buchstaben garnicht verarbeiten können, so müssen wir den Buchstaben selber an den String anhängen, damit er uns nicht verloren geht. Das passiert in der Zeile unter "Case Else".

    So, das war mein Crashkurs in QBasic :)
     
  4. Info4ever

    Info4ever Byte

    Registriert seit:
    24. März 2004
    Beiträge:
    79
    Dank schonmal für die Antwort !!

    Gut, er ersetzt mir jetzt den buchstaben "E" durch ein "A", kannst du mir sagen welche Zeilen ich jetzt wiederholen muss, damit ich jetzt auch noch andere Buchstaben ersetzen könnte?
    :rolleyes: :rolleyes: :rolleyes:

    Aber super!!
     
  5. Sumo

    Sumo Kbyte

    Registriert seit:
    30. August 2000
    Beiträge:
    178
    :totlach:
    Das erste hätten wir ;)

    Ich muss zugeben ich hab mit Qbasic seit Jahren nicht mehr gearbeitet. Hab mir aber mal einen Interpreter runtergeladen und ein wenig rumgebastelt.
    Code:
    CLS                                  'Den Bildschirm löschen
    DIM InputText AS STRING              'Eine Variable vom Typ String deklarieren
    DIM i AS INTEGER                     'Unsere Zählvariable
    InputText = "Kleines Testprogramm"   'Wir initialisieren unsere Stringvariable mit einem Text
    PRINT InputText                      'Den geben wir zur Kontrolle nochmal aus
    FOR i = 1 TO LEN(InputText)          'Dann gehen wir jeden Buchstaben durch...
        IF MID$(InputText, i, 1) = "e" THEN MID$(InputText, i) = "a"      '...und vergleichen ihn mit "e". Falls nötig "e" durch "a" ersetzen.
    NEXT i                               'Wieder einen Durchlauf geschafft. Auf zum nächsten
    PRINT InputText                      'Den bearbeiteten Text ausgeben
    
    Hab mal alles ein wenig kommentiert. Ob du damit was anfangen kannst weiss ich aber nicht.
     
  6. Info4ever

    Info4ever Byte

    Registriert seit:
    24. März 2004
    Beiträge:
    79
    Was ich programmieren kann...höhö...
    lach mich bitte aus... Qbasic...So brutale Erfahrung hab ich ja ned, deswegen fragte ich ja, wie kann ich am besten...
     
  7. Sumo

    Sumo Kbyte

    Registriert seit:
    30. August 2000
    Beiträge:
    178
    Das hab ich mir fast gedacht. Deswegen hab ich den Lösungsweg mal für mich behalten ;). Um eine Programmiersprache wirst du nicht drum herum kommen. Welche du nimmst ist deine Entscheidung.
    Sag mal was du kannst. Dann kann man dir vielleicht gezielt helfen.
     
  8. Info4ever

    Info4ever Byte

    Registriert seit:
    24. März 2004
    Beiträge:
    79
    Gibts sowas auch für "Unerfahrene" wie mich?

    Ich mein, ich hab da null Ahnung von dem Progammierzeugs..*schäm*... :(
     
  9. gerald_b

    gerald_b Kbyte

    Registriert seit:
    15. Januar 2003
    Beiträge:
    259
    Hi,


    ich würde den Translator wiefolgt gestalten (Quelltext in Textdatei vorliegend):

    - Quelltext zeichenweise/wortweise auslesen
    - anhand der gefundenen Zeichen den Ersatztext in eine Ausgabedatei schreiben


    Die Programmierung kann z.B. in C++, JAVA, ... erfolgen; sogar VB-Skript sollte möglich sein.


    Viel Erfolg

    Gerald
     
  10. Info4ever

    Info4ever Byte

    Registriert seit:
    24. März 2004
    Beiträge:
    79
    Danke für deine umfassende Antwort... :bse:

    Aber weis auch wer wies geht?
     
  11. Sumo

    Sumo Kbyte

    Registriert seit:
    30. August 2000
    Beiträge:
    178
    Klar ist das möglich.
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen