AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Warum funktioniert mein Übersetzer nicht?

Ein Thema von Phillip0405 · begonnen am 25. Jan 2016 · letzter Beitrag vom 25. Jan 2016
Antwort Antwort
Seite 1 von 2  1 2   
Phillip0405

Registriert seit: 25. Jan 2016
Ort: NRW
24 Beiträge
 
Delphi XE3 Professional
 
#1

Warum funktioniert mein Übersetzer nicht?

  Alt 25. Jan 2016, 14:56
Ich wollte einen Übersetzer programmieren [Deutsch-Englisch](es sollen die deutschen Wörter unten nochmal vollständig angezeigt werden, nur ohne Umlaute), ich habe folgendes programmiert:


Delphi-Quellcode:
 procedure TForm4.Button1Click(Sender: TObject);


var
   englisch: TStringlist;
   W, satz : string;
   b,a,buchstabe: integer;

begin
  w := edit1.Text;
  satz:=edit1.Text;
  englisch := TStringlist.create;
    if Satz[buchstabe]='Üthen begin
       a:=Pos('Ü',W,a);
       Delete(w,b,a);
       insert('Ue',w, a);
       edit3.Text:= w;
       englisch.free;
       englisch.loadFromFile('D:\Übersetzer\Neu1.txt');
       edit2.Text := (englisch.Values[W]);
    end
    else if Satz[buchstabe]='Äthen begin
       a:=Pos('Ä',W,a);
       Delete(w, b, a);
       insert('Ae',w, a);
       edit3.Text:= w;
       englisch.free;
       englisch.loadFromFile('D:\Übersetzer\Neu1.txt');
       edit2.Text := (englisch.Values[W]);
     end
     else if Satz[buchstabe]='Öthen begin
       a:=Pos('Ö',W,a);
       Delete(w,b, a);
       insert('Oe',w, a);
       edit3.Text:= w;
       englisch.free;
       englisch.loadFromFile('D:\Übersetzer\Neu1.txt');
       edit2.Text := (englisch.Values[W]);
     end
     else if Satz[buchstabe]='ßthen begin
       a:= Pos('ß',W,a);
       Delete(w,b, a);
       insert('ss',w, a);
       edit3.Text:= w;
       englisch.free;
       englisch.loadFromFile('D:\Übersetzer\Neu1.txt');
       edit2.Text := (englisch.Values[W]);
     end
     else if Satz[buchstabe]='a''e''i''o''uthen begin
       edit3.Text:= w;
       englisch.free;
       englisch.loadFromFile('D:\Übersetzer\Neu1.txt');
       w:=edit1.Text;
     end

  
 end.
Aber wenn ich etwas eingebe, kommt nichts raus. Die Aufgabe war, dass alles ohne replace geschrieben werden soll.

Danke schonmal im voraus!
P.B.

Geändert von MrSpock (25. Jan 2016 um 15:24 Uhr) Grund: Code Tags durch Delphi Tags ersetzt.
  Mit Zitat antworten Zitat
gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#2

AW: Warum funktioniert mein Übersetzer nicht?

  Alt 25. Jan 2016, 15:02
Und was passiert, wenn Du buchstabe vernünftig initialisierst bzw in einer Schleife benutzt?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.286 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Warum funktioniert mein Übersetzer nicht?

  Alt 25. Jan 2016, 15:04
Hallo und Willkommen in der DP ,

1. Falsche Sparte, Du willst ja keine erarbeitete Lösung vorstellen, sondern hast ein Problem.
2. Benutze bitte in Zukunft keine Code- sondern Delphi-Tags (das ist der "Helm" im Editor)
3. Kompiliert der Code überhaupt? Zumindest die Zeile
Zitat:
else if Satz[buchstabe]='a''e''i''o''uthen begin
sieht schon irgendwie komisch aus.
4. Du gibst Deine Stringliste frei und willst dann erst eine Datei hineinladen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von frankyboy1974
frankyboy1974

Registriert seit: 7. Apr 2015
Ort: SH
169 Beiträge
 
Delphi XE7 Professional
 
#4

AW: Warum funktioniert mein Übersetzer nicht?

  Alt 25. Jan 2016, 15:07
hallo,

müsstest du nicht eine Zählschleife um dein Ersetzen programmieren, du prüfst mit

   if Satz[buchstabe]='Üthen begin nur den ersten Buchstaben auf ein 'Ü'. Muss da nicht ein

Delphi-Quellcode:
For i:=0 to length(Satz) do begin
  if Satz[i]='Üthen begin
...
end;
rein.

mfg
Java ist auch eine Insel.
Ist Delphi von Oracle?
In meiner Buchstabensuppen fehlt das C++!
  Mit Zitat antworten Zitat
Phillip0405

Registriert seit: 25. Jan 2016
Ort: NRW
24 Beiträge
 
Delphi XE3 Professional
 
#5

AW: Warum funktioniert mein Übersetzer nicht?

  Alt 25. Jan 2016, 15:14
Hallo und Willkommen in der DP ,

1. Falsche Sparte, Du willst ja keine erarbeitete Lösung vorstellen, sondern hast ein Problem.
2. Benutze bitte in Zukunft keine Code- sondern Delphi-Tags (das ist der "Helm" im Editor)
Danke für den Hinweis!
4. Du gibst Deine Stringliste frei und willst dann erst eine Datei hineinladen.
Muss das andersherum?

Danke!
P.B.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.286 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Warum funktioniert mein Übersetzer nicht?

  Alt 25. Jan 2016, 15:17
Ja, mit Free gibst Du die Liste ja wieder frei, danach kannst Du sie nicht mehr benutzen, weil weg. Üblicherweise arbeitet man mit lokalen Instanzen so:
Delphi-Quellcode:
Dings := TDingsklasse.Create;
try
  Dings.MachIrgendwas;
finally
  Dings.Free;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
25. Jan 2016, 15:25
Dieses Thema wurde am "25. Jan 2016, 15:25 Uhr" von "MrSpock" aus dem Forum "Neuen Beitrag zur Code-Library hinzufügen" in das Forum "Algorithmen, Datenstrukturen und Klassendesign" verschoben.
Phillip0405

Registriert seit: 25. Jan 2016
Ort: NRW
24 Beiträge
 
Delphi XE3 Professional
 
#8

AW: Warum funktioniert mein Übersetzer nicht?

  Alt 25. Jan 2016, 15:29
Ich habe es jetzt mal so geändert, aber es kommt dann immer wieder die Fehlermeldung "Zugriffsverletzung bei Adresse 005A8301 in Modul "Übersetzer"".
Kennt ihr den Fehler?
P.B.
  Mit Zitat antworten Zitat
Benutzerbild von baumina
baumina

Registriert seit: 5. Mai 2008
Ort: Oberschwaben
1.275 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#9

AW: Warum funktioniert mein Übersetzer nicht?

  Alt 25. Jan 2016, 15:53
Was hast du wie geändert?
Hinter dir gehts abwärts und vor dir steil bergauf ! (Wolfgang Ambros)
  Mit Zitat antworten Zitat
Phillip0405

Registriert seit: 25. Jan 2016
Ort: NRW
24 Beiträge
 
Delphi XE3 Professional
 
#10

AW: Warum funktioniert mein Übersetzer nicht?

  Alt 25. Jan 2016, 16:12
Delphi-Quellcode:
unit UnÜbersetzer;
interface
uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, System.Actions,
  Vcl.ActnList, Vcl.ExtCtrls, Vcl.Menus;

type
  TForm4 = class(TForm)
    Edit1: TEdit;
    edit2: TEdit;
    Button1: TButton;
    edit3: TEdit;
    procedure Button1Click(Sender: TObject);


   private
    { Private-Deklarationen }
  public
   { Public-Deklarationen }
  end;

var
  Form4: TForm4;


implementation

{$R *.dfm}

 procedure TForm4.Button1Click(Sender: TObject);


var
   englisch: TStringlist;
   W, satz : string;
   i, b,a,buchstabe: integer;

 begin
   w := edit1.Text;
   satz:=edit1.Text;
   englisch := TStringlist.create;
    a:=Pos('Ü',W,a);
    a:=Pos('Ä',W,a);
    a:=Pos('Ö',W,a);
    a:=Pos('ß',W,a);
    a:=Pos('a''e''i''o''u',W,a);
   try
      if Satz[buchstabe]='Üthen begin
         a:=Pos('Ü',W,a);
         Delete(w,b,a);
         insert('Ue',w, a);
         edit3.Text:= w;
         englisch.loadFromFile('D:\Übersetzer\Neu1.txt');
         edit2.Text := (englisch.Values[W]);
      end
  finally
        try

            if Satz[buchstabe]='Äthen begin
            a:=Pos('Ä',W,a);
            Delete(w, b, a);
            insert('Ae',w, a);
            edit3.Text:= w;
            englisch.loadFromFile('D:\Übersetzer\Neu1.txt');
            edit2.Text := (englisch.Values[W]);
           englisch.Free;
         end
      finally
        try

          if Satz[buchstabe]='Öthen begin
          a:=Pos('Ö',W,a);
          Delete(w,b, a);
          insert('Oe',w, a);
          edit3.Text:= w;
          englisch.loadFromFile('D:\Übersetzer\Neu1.txt');
          edit2.Text := (englisch.Values[W]);
          englisch.Free;
          end
        finally
            try
                if Satz[buchstabe]='ßthen begin
                a:= Pos('ß',W,a);
                Delete(w,b, a);
                insert('ss',w, a);
                edit3.Text:= w;
                englisch.loadFromFile('D:\Übersetzer\Neu1.txt');
                edit2.Text := (englisch.Values[W]);
                englisch.Free;
                end

            finally
                if Satz[buchstabe]='a''e''i''o''uthen begin
                edit3.Text:= w;
                englisch.loadFromFile('D:\Übersetzer\Neu1.txt');
                w:=edit1.Text;
                englisch.free;
                end


            end;
         end;
       end;
      end;
 end;
 end.
P.B.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:48 Uhr.
Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf