1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Basteln...

Discussion in 'Programmieren' started by Info4ever, Apr 7, 2004.

Thread Status:
Not open for further replies.
  1. Info4ever

    Info4ever Byte

    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

    Wow, DANKE!! Jetz bin ich schon nen gehörigen Schritt weiter!
    Danke!! :bet:
     
  3. Sumo

    Sumo Kbyte

    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

    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

    :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

    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

    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

    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

    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

    Danke für deine umfassende Antwort... :bse:

    Aber weis auch wer wies geht?
     
  11. Sumo

    Sumo Kbyte

    Klar ist das möglich.
     
Thread Status:
Not open for further replies.

Share This Page