Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Software-Projekte der Mitglieder (https://www.delphipraxis.net/26-software-projekte-der-mitglieder/)
-   -   Text Reverse (https://www.delphipraxis.net/39313-text-reverse.html)

Rastaman 1. Feb 2005 19:38

Re: Text Reverse
 
Daran habe ich auch schon gedacht aber keine ahnung wie ich das machen könnte :cry:

Kernel32.DLL 1. Feb 2005 19:57

Re: Text Reverse
 
Keine Ahnung wie du was machen könntest?

Rastaman 2. Feb 2005 14:06

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:

Rastaman 2. Feb 2005 14:07

Re: Text Reverse
 
Dass die Satzzeichen am Ende stehen.
Schreib mal einen Satz mit "Wortreihenfolge beibehalten" und mach am ende ein ?

stefangeorg 2. Feb 2005 14:10

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

Rastaman 2. Feb 2005 14:12

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;

stefangeorg 2. Feb 2005 14:40

Re: Text Reverse
 
Ich würde es etwa so machen (hab kein Delphi zur Hand, aus dem Kopf...)

Delphi-Quellcode:
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;
Es gibt da noch ein ganz paar bessere und einfachere Methoden zur String-Manipulation,
aber da schau mal in die OH.

mfg

Georg Härting

Rastaman 2. Feb 2005 14:49

Re: Text Reverse
 
Jo klappt :thumb:
Aber versteh ich nicht wirklich :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:01 Uhr.
Seite 2 von 2     12   

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