AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Vokal ersetzen

Ein Thema von Axl · begonnen am 12. Apr 2012 · letzter Beitrag vom 12. Apr 2012
Antwort Antwort
Seite 1 von 3  1 23      
Axl

Registriert seit: 12. Apr 2012
9 Beiträge
 
#1

Vokal ersetzen

  Alt 12. Apr 2012, 13:10
Hallo,

ich habe ein Problem.
Ich bin zwar erst neu hier, doch ich hoffe ihr könnt mir helfen.

Ich soll alle Vokale eines Textes den ich zuvor geöffnet habe, durch einen anderen Vokal ersetzen, den ich in einem Editfeld eingebe.
Das Hochladen des Textes (in Listbox) habe ich schon.
Ich weis nur nicht wie ich die Vokal (muss nur die in der 1. Zeile ändern) ändere.

Kann mir jemand helfen?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#2

AW: Vokal ersetzen

  Alt 12. Apr 2012, 13:12
Hallo und Willkommen in der DP ,

langsame, dafür einfache Möglichkeit: jeden Vokal mit Delphi-Referenz durchsuchenStringReplace ersetzen. Ansonsten kann man sich da mit einer Schleife schnell selbst was basteln.
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 Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: Vokal ersetzen

  Alt 12. Apr 2012, 13:16
 Listbox1.Items[0] := StringReplace(Listbox1.Items[0], WasAuchImmer,Edit1.Text,[rfReplaceAll]); gegf. wegen Großkeinschreibung 2 mal mit doppeltem UpperCase
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Axl

Registriert seit: 12. Apr 2012
9 Beiträge
 
#4

AW: Vokal ersetzen

  Alt 12. Apr 2012, 13:37
Mit einer Schleife habe ich es auch schon versucht doch die funktioniert nicht richtig.
Ich wollte es mit IF A,E,I,O,U und in klein geschrieben halt machen.
Wie kann ich jetzt das Editfeld einbauen?

Mein Quelltext:
v soll der eingegebene Vokal sein.

FOR z:=1 TO LENGTH(txt[z]) DO
IF (txt[z]= 'a')or (txt[z]= 'e')or (txt[z]= 'i') or (txt[z]= 'o') or (txt[z]= 'u')
or (txt[z]= 'A') or (txt[z]= 'E') or (txt[z]= 'I') or (txt[z]= 'O') or (txt[z]= 'U')
THEN txt[z]:=v;

Geändert von Axl (12. Apr 2012 um 13:49 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#5

AW: Vokal ersetzen

  Alt 12. Apr 2012, 13:43
Gar nicht. Du willst ja nicht das Edit ändern, sondern den String, der da drin steht. Schreib Dir also eine Funktion, wo ein String reinkommt, bearbeitet wird und als Result zurückgegeben wird. Z.B.:
Delphi-Quellcode:
function ReplaceChar(const s: string; Old, New: Char): string;
begin
  Result := StringReplace(s, Old, New, [rfReplaceAll]);
end;
Das ist zwar weder schön noch schnell, sollte aber funktionieren.

[edit] Achja, aufrufen könntest Du das dann so:
Edit1.Text := ReplaceChar(Edit1.Text, 'a', 'u'); [/edit]
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 Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#6

AW: Vokal ersetzen

  Alt 12. Apr 2012, 13:48
Delphi-Quellcode:
var
 rep:String;
begin
 rep := 'ö';
 Listbox1.Items[0] :=
         StringReplace(
         StringReplace(Listbox1.Items[0], AnsiLowerCase(rep) ,AnsiLowerCase(Edit1.Text),[rfReplaceAll])
         , AnsiUpperCase(rep) ,AnsiUpperCase(Edit1.Text),[rfReplaceAll])
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Axl

Registriert seit: 12. Apr 2012
9 Beiträge
 
#7

AW: Vokal ersetzen

  Alt 12. Apr 2012, 13:53
Ich will ja nur in ein Editfeld zu Beispiel u eingeben. In der Listbox sollten dann alle Vokale durch das u ersetzt werden.
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#8

AW: Vokal ersetzen

  Alt 12. Apr 2012, 14:00
Sorry, ich hatte übersehen daß es um alle Vokale geht
Delphi-Quellcode:
Function ReplaceAllVocals(const s:String;New:Char):String;
var
 i:Integer;
begin
    Result := s;
    For i := 1 to Length(s) do
      case s[i] of
         'a','e','u','i','o','ü','ö','ä':Result[i] := AnsiLowerCase(New)[1];
         'A','E','U','I','O','Ü','Ö','Ä':Result[i] := AnsiUpperCase(New)[1];
      end;
end;

procedure TForm2.Button1Click(Sender: TObject);
begin
    Showmessage(ReplaceAllVocals('Was Auch immer hier stehen könnte','o'));
end;
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#9

AW: Vokal ersetzen

  Alt 12. Apr 2012, 14:01
Dann übergib die entprechenden Eigenschaften als Parameter an die Funktion.
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 p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Vokal ersetzen

  Alt 12. Apr 2012, 14:06
Delphi-Quellcode:
FOR z:=1 TO LENGTH(txt) DO
IF (txt[z]= 'a')or (txt[z]= 'e')or (txt[z]= 'i') or (txt[z]= 'o') or (txt[z]= 'u')
 or (txt[z]= 'A') or (txt[z]= 'E') or (txt[z]= 'I') or (txt[z]= 'O') or (txt[z]= 'U')
THEN txt[z]:=v;
so sollte es klappen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      

 

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 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz