Delphi-PRAXiS

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)

htxmlx 12. Sep 2008 19:04


String Buchstaben wegstreichen
 
Hallo,

ich möchte von einem String in meinem fall z.B. '#99Karl' die ersten 3 Buchstaben wegstreichen, sodass dann in einer Memo oder Listbox nur Karl angezeigt wird. Mit welchem Befehl ist dies realisierbar?

Gruß, htxmlx

mkinzler 12. Sep 2008 19:09

Re: String Buchstaben wegstreichen
 
Delete()

Fussball-Robby 12. Sep 2008 19:11

Re: String Buchstaben wegstreichen
 
Ich denke, hier wäre es einfacher, anstatt mittels Delete() die ersten 3 Buchstaben wegzustreichen einfach mit Copy() alles ab dem 4. Zeichen ins Memo zu kopieren.

htxmlx 12. Sep 2008 19:13

Re: String Buchstaben wegstreichen
 
Hi, danke erstmal für deine antwort, aber kannste mir den Code mal am Beispiel zeigen also:

var Text: STring;

Text := '#99Karl'

und jetzt bitte von dem String Text die ersten 3 buchstaben wegdeleten, wie geht das ?

PS: zu fußball-robby: woher weiss ich denn wie lange der string ist also mit Copy muss ich angeben von wann also 4 bis wohin...

Gruß, htxmlx

toms 12. Sep 2008 19:15

Re: String Buchstaben wegstreichen
 
Delphi-Quellcode:
var
  Text: STring;
begin

  Text := '#99Karl' ;

  Delete(Text, 1, 3);
 
  Label1.Caption := Text;

end;

htxmlx 12. Sep 2008 19:17

Re: String Buchstaben wegstreichen
 
ah genau sowas hab ich gesucht dankeschön an alle die mir hier in so schneller zeit gezeigt haben wies geht..

Gruß, htxmlx

mkinzler 12. Sep 2008 19:18

Re: String Buchstaben wegstreichen
 
Delphi-Quellcode:
Text := Delete( Text, 1, 3);

toms 12. Sep 2008 19:21

Re: String Buchstaben wegstreichen
 
Zitat:

Zitat von mkinzler
Delphi-Quellcode:
Text := Delete( Text, 1, 3);

Delete() ist im Gegensatz zu Copy() eine Prozedur, keine Funktion.

Mackhack 12. Sep 2008 19:23

Re: String Buchstaben wegstreichen
 
Zitat:

Zitat von toms
Zitat:

Zitat von mkinzler
Delphi-Quellcode:
Text := Delete( Text, 1, 3);

Delete() ist im Gegensatz zu Copy() eine Prozedur, keine Funktion.

//Lernmodus ein:

Was ist der Vor/Nachteil?

//Lernmodus aus:

Fussball-Robby 12. Sep 2008 19:25

Re: String Buchstaben wegstreichen
 
Zitat:

Zitat von toms
Zitat:

Zitat von mkinzler
Delphi-Quellcode:
Text := Delete( Text, 1, 3);

Delete() ist im Gegensatz zu Copy() eine Prozedur, keine Funktion.

Und genau deswegen würde ich Copy nehmen, da man Delete z.B. nicht auf Memo.Lines[i] anwenden kann, da dies keine Variable ist.

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:

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 08:51 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