AGB  ·  Datenschutz  ·  Impressum  







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

Worte im Text ersetzen

Ein Thema von Seki99 · begonnen am 25. Sep 2012 · letzter Beitrag vom 25. Sep 2012
Antwort Antwort
Seki99

Registriert seit: 28. Mär 2009
10 Beiträge
 
#1

Worte im Text ersetzen

  Alt 25. Sep 2012, 17:16
Hallo erstmal
Ich habe folgendes Problem: Ich habe einen Text im Edit Feld und eine Listbox mit weiteren Wörten. Meine Aufgabe ist nun, jedes der Wörter im Edit Feld mit den einträgen in der Listbox zu vergleichen, und wenn das Wort in der Listbox vorhanden ist, soll dieses Ersetzt werden. Eigentlich auch garnciht schwer.

Das ganze sieht folgendermaßen aus

Edit feld : 'Hallo ich bin Dieter' in der Listbox steht dann sowas wie 'Hallo,Guten Tag,Willkommen' an Position 0 und 'Dieter,Harald,Peter' an Position 2
Nun möchte ich die Wörter im Edit feld mit den ausdrücken aus der Listbox ersetzen. Bsp: 'Hallo,Guten Tag,Willkommen ich bin Dieter,Harald,Peter'

Das ersetzen an sich ist nicht das Problem, das habe ich bereits mit Pos() gelöst, jedoch will ich nicht nur 1 Wort ersetzen, sondern jedes im Text. Könnte mir jemand helfen wie ich
die worte nacheinander durchgehe? Wenn ich nur 'Dieter' eingebe, ersetzt er Problemlos den eintrag mit 'Dieter,Harald,Peter'. Ich hoffe ich konnte mein Problem ausreichend schildern und ihr versteht was ich damit meine

Danke für eure hilfe
  Mit Zitat antworten Zitat
nuclearping

Registriert seit: 7. Jun 2008
708 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

AW: Worte im Text ersetzen

  Alt 25. Sep 2012, 17:17
Stichworte:

- Pos (kennst du ja schon)
- Copy
- Delete
- StringReplace Funktion -> NeuerString := StringReplace(AlterString, Muster, Ersetzung, ...)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: Worte im Text ersetzen

  Alt 25. Sep 2012, 18:00
Also Seki, ich hab zwar nicht in allen Einzelheiten dein Problem verstanden, aber hier ein Beispiel wie man einen Text in Wörter zerlegen kann.

Delphi-Quellcode:
procedure StringZerlegen(Str: String; List: TStrings);
const
  abc = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789ßäÄöÖüÜ';
var
  OldDelimiter: Char;
  i, k: Integer;
  s: String;
begin
  //Zerlegt Satz in Wörter
  OldDelimiter := List.Delimiter;
  List.Delimiter := ' '; //Leerzeichen
  List.DelimitedText := Str;
  List.Delimiter := OldDelimiter;

  //Entfernt alles was nicht Buchstabe oder Zehl ist
  for i := 0 to List.Count - 1 do
  begin
    s := List[i];
    for k := Length(s) downto 1 do
      if Pos(s[k], abc) = 0 then
        Delete(s, k, 1);
    List[i] := s;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  Str: String;
begin
  Str := 'Hallo, ich bin Dieter.'; //Satz mit Satzzeichen
  StringZerlegen(Str, ListBox1.Items);
end;
Der Satz landet in einer TStringList (oder hier für das Beispiel eine ListBox).

Vielleicht hilft dir das bereits.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Worte im Text ersetzen

  Alt 25. Sep 2012, 18:08
Versteh ich das richtig, dass das zu ersetzende Wort in der Listbox-Zeile an erster Stelle, gefolgt von einem Komma, steht? Dann müsstest Du dieses zuerst temporär herauskopieren und dann StringReplace anwenden.
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
Antwort Antwort


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 07:37 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