Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Umlaute ersetzen? (https://www.delphipraxis.net/109088-umlaute-ersetzen.html)

spox 24. Feb 2008 12:01


Umlaute ersetzen?
 
Hallo!
Ich schreibe gerade an einer Prozedur, die ae, ue, oe in ä,ü,ö umwandelt. Doch leider stoße ich da grad an ein Problem. Das Problem ist, dass der zwar ae durch ein ä ersetzt, aber blöderweiße dann noch das e von ae im String bleibt und noch mit hin geschrieben wird. Letztendlich steht dann dort äe. Das habe ich versucht durch diese Prozedur zu lösen:

Delphi-Quellcode:
   'e':
    begin
      if eingabe[z-1]<>'u' then txt:= txt+'e';
      if eingabe[z-1]<>'o' then txt:= txt+'e';
      if eingabe[z-1]<>'A' then txt:= txt+'e';
      if eingabe[z-1]<>'U' then txt:= txt+'e';
      if eingabe[z-1]<>'O' then txt:= txt+'e';    
     end;
Wie zu erkennen, habe ich versucht das ganze mit einer Case - Auswahl zu lösen. Das klappt bei auch sonst ganz gut, nur bei dem e happerts. Man müsste doch die Zählvariable ( in meinen Fall z ) erhöhen können. Geht das?

Die restliche Prozedur ist nach dem Schema aufgebaut:

Delphi-Quellcode:
 eingabe:= Edit2.Text;
 txt:= '';
 for z:=1 to length(eingabe) do
 begin
  case eingabe[z] of
   'a':
    begin
     if eingabe[z+1]='e' then txt:= txt+'ä';
    end;
Freue mich schon auf eure Hilfe, weil ich da echt schon jetzt lange dran knabber :gruebel:

DeddyH 24. Feb 2008 12:04

Re: Umlaute ersetzen?
 
Wieso nutzt Du nicht einfach StringReplace?

spox 24. Feb 2008 12:19

Re: Umlaute ersetzen?
 
wie funktioniert StringReplace denn?

DeddyH 24. Feb 2008 12:21

Re: Umlaute ersetzen?
 
Delphi-Quellcode:
Text := StringReplace(Text,'ae','ä',[rfRepaceAll]);
Macht aus allen kleinen 'ae's kleine 'ä's.

spox 24. Feb 2008 12:28

Re: Umlaute ersetzen?
 
supi danke :)

Ich muss dann noch vorher txt:= Edit2.Text setzen, oder?

DeddyH 24. Feb 2008 12:36

Re: Umlaute ersetzen?
 
Mach in meinem Beispiel einfach aus Text Edit2.Text, das passt schon.

spox 24. Feb 2008 12:44

Re: Umlaute ersetzen?
 
Funzt leider nicht...

Delphi-Quellcode:
eingabe:= Edit2.Text;
eingabe := StringReplace(Text,'ae','ä',[rfReplaceAll]);
eingabe := StringReplace(Text,'ue','ü',[rfReplaceAll]);
eingabe := StringReplace(Text,'oe','ö',[rfReplaceAll]);
eingabe := StringReplace(Text,'Ae','Ä',[rfReplaceAll]);
eingabe := StringReplace(Text,'Ue','Ü',[rfReplaceAll]);
eingabe := StringReplace(Text,'Oe','Ö',[rfReplaceAll]);
Edit1.Text:= eingabe;

Er schreibt meinen Programmnamen in das EditFeld : :shock:

Die Muhkuh 24. Feb 2008 12:46

Re: Umlaute ersetzen?
 
Delphi-Quellcode:
eingabe:= Edit2.Text;
eingabe := StringReplace(eingabe ,'ae','ä',[rfReplaceAll]);
eingabe := StringReplace(eingabe ,'ue','ü',[rfReplaceAll]);
eingabe := StringReplace(eingabe ,'oe','ö',[rfReplaceAll]);
eingabe := StringReplace(eingabe ,'Ae','Ä',[rfReplaceAll]);
eingabe := StringReplace(eingabe ,'Ue','Ü',[rfReplaceAll]);
eingabe := StringReplace(eingabe ,'Oe','Ö',[rfReplaceAll]);
Edit1.Text:= eingabe;

spox 24. Feb 2008 12:55

Re: Umlaute ersetzen?
 
Ich Dummkopf :wall:
vielen Dank! :spin2:

Reinhard Kern 24. Feb 2008 13:15

Re: Umlaute ersetzen?
 
Zitat:

Zitat von spox
Ich Dummkopf :wall:
vielen Dank! :spin2:

Hallo,

wenn du schon so weit bist, dann könntest du jetzt auch reif sein für die Erkenntnis, dass die ganze Funktion weitgehend sinnlos ist, weil man zwar ä durch ae ersetzen kann, nicht aber umgekehrt:

Bauernkriege -> Baürnkriege???

Gruss Reinhard

PS: Bis zum Lottöinzahlungsschluss daürt es noch etwas, trinken Sie solange eine Tasse Mokkärsatz?


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:45 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz