Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String Buchstaben wegstreichen (https://www.delphipraxis.net/120562-string-buchstaben-wegstreichen.html)

toms 12. Sep 2008 19:38

Re: String Buchstaben wegstreichen
 
Delete ist jedoch in diesem Fall schneller, da Length() nicht ins Spiel kommt.
Zudem wollte er von einen String abschneiden und nicht von Memo.Lines[i]

marabu 13. Sep 2008 12:06

Re: String Buchstaben wegstreichen
 
Hallo,

viel interessanter als die Frage nach dem Löschen der ersten drei Stellen erscheint mir die Frage, wie der String '#99Karl' überhaupt entstanden ist. Eventuell ist dieser String ja nur ein sinnentstellendes Beispiel.

Grüße vom marabu

Christian Seehase 13. Sep 2008 13:15

Re: String Buchstaben wegstreichen
 
Moin Zusammen,

Zitat:

Zitat von Fussball-Robby
Beispiel mit Copy:
Delphi-Quellcode:
s := '#99Karl';
Memo1.Lines.Add(Copy(s, 4, Length(s) - 3);
In diesem Beispiel spart man sich mit Copy anstatt Delete sogar eine ganze Zeile Code :wink:

Zitat:

Zitat von toms
Delete ist jedoch in diesem Fall schneller, da Length() nicht ins Spiel kommt.

wobei man getrost auf die Verwendung von Length verzichten kann.
Copy hört nämlich von alleine auf, wenn der Quellstring zu Ende ist:

Delphi-Quellcode:
Memo1.Lines.Add(Copy(s, 4,MaxInt);

juergen 13. Sep 2008 14:48

Re: String Buchstaben wegstreichen
 
Hallo zusammen,

ich wollte auch noch StringReplace() in die Runde werfen :mrgreen:
Delphi-Quellcode:
var i: integer;
s : string;
begin
  if Length(Edit.Text) > 2 then
    begin
      for i := 1 to 3 do
      begin
      s := Edit.Text;
      Edit.Text := StringReplace(s, (s[1]), '', []);
      end;
    end;
end;

Helmi 13. Sep 2008 14:59

Re: String Buchstaben wegstreichen
 
Zitat:

Zitat von juergen
Hallo zusammen,

ich wollte auch noch StringReplace() in die Runde werfen :mrgreen:
Delphi-Quellcode:
var i: integer;
s : string;
begin
  if Length(Edit.Text) > 2 then
    begin
      for i := 1 to 3 do
      begin
      s := Edit.Text;
      Edit.Text := StringReplace(s, (s[1]), '', []);
      end;
    end;
end;



Aber dieser Code ist langsamer als delete - denn du hast zwei Schleifen.
Einmal die for-Schleife und dann verwendet StringReplace auch eine Schleife...

juergen 13. Sep 2008 15:07

Re: String Buchstaben wegstreichen
 
@ Helmi,
natürlich ist das langsamer.
Da im Thread #1 nichts von Tempo stand, wollte ich einfach den Vorteil von StringReplace() gegenüber Delete() aufführen.
(SubString vs. Anzahl Zeichen)


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59 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