![]() |
Re: Text Reverse
Daran habe ich auch schon gedacht aber keine ahnung wie ich das machen könnte :cry:
|
Re: Text Reverse
Keine Ahnung wie du was machen könntest?
|
Re: Text Reverse
Dass die Satzzeichen am Ende stehen.
Schreib mal einen Satz mit "Wortreihenfolge beibehalten" und mach am ende ein ? //edit:Sorry for Doppelpost :oops: |
Re: Text Reverse
Dass die Satzzeichen am Ende stehen.
Schreib mal einen Satz mit "Wortreihenfolge beibehalten" und mach am ende ein ? |
Re: Text Reverse
Ich kenne ja deinen Algorithmus nicht,
aber prüfe doch ob am Wortende ein Satzzeichen ist. Wenn ja lass die Umdrehprozedur vor dem Satzzeichen beenden. mfg Georg Härting |
Re: Text Reverse
Code:
procedure TForm1.txtEingabeChange(Sender: TObject);
var s, s2, s3, s4: String; sl: TStringList; i, x:Integer; begin s := txtEingabe.Text; try For i:=0 to Length(s) do s2 := s2 + s[Length(s) - i]; If chkKeep.Checked = False then txtAusgabe.Text := s2 else begin sl := TStringList.Create; sl.Delimiter := ' '; sl.DelimitedText := s2; For x:=1 to sl.Count do begin s3 := sl.Strings[sl.count - x]; s4 := s4 + s3 + ' '; end; txtAusGabe.Text := s4; s4 := ''; end; If chkCopy.Checked = True then Clipboard.AsText := txtAusgabe.Text; except txtAusgabe.Text := ''; end; end; |
Re: Text Reverse
Ich würde es etwa so machen (hab kein Delphi zur Hand, aus dem Kopf...)
Delphi-Quellcode:
Es gibt da noch ein ganz paar bessere und einfachere Methoden zur String-Manipulation,
procedure TForm1.txtEingabeChange(Sender: TObject);
var s, s2, s3, s4: String; sl: TStringList; i, x:Integer; // sTemp : String; // begin s := txtEingabe.Text; try For i:=0 to Length(s) do s2 := s2 + s[Length(s) - i]; If chkKeep.Checked = False then txtAusgabe.Text := s2 else begin sl := TStringList.Create; sl.Delimiter := ' '; sl.DelimitedText := s2; For x:=1 to sl.Count do begin s3 := sl.Strings[sl.count - x]; // hier wird die Wortreihenfolge wieder hergestellt??? // dann hier auf Satzzeichen prüfen ... z.B. if (s3[1] = '!') or (s3[1] = '?') or (s3[1] = '.') then begin sTemp := s3[1]; s3 := Copy(s3, 2, Length(s3) - 1) + sTemp; end; // s4 := s4 + s3 + ' '; end; txtAusGabe.Text := s4; s4 := ''; end; If chkCopy.Checked = True then Clipboard.AsText := txtAusgabe.Text; except txtAusgabe.Text := ''; end; end; aber da schau mal in die OH. mfg Georg Härting |
Re: Text Reverse
Jo klappt :thumb:
Aber versteh ich nicht wirklich :lol: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:18 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz