Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi lerzeichen entfernen (https://www.delphipraxis.net/117039-lerzeichen-entfernen.html)

5etH 10. Jul 2008 12:26


lerzeichen entfernen
 
hallo zusammen

ich hab verschiedene strings zb '+ 123 23' oder '-234 2 1' und würde dort gerne die leerzeichen entfernen aber trim entfernt nur die ersten zeichen .... gibt es eine methode mit der alle gelöscht werden ? des weiteren würde ich dann gerne von dem string das erste zeichen also das + oder - löschen so das an erster stelle eien zahl steht...

wäre echt nett wenn ihr mit helfen könntet

lg
manu

guidok 10. Jul 2008 12:28

Re: lerzeichen entfernen
 
z.B. in einer Schleife jedes Zeichen prüfen und falls es ein Leerzeichen, + oder - ist entfernen...

soulies 10. Jul 2008 12:29

Re: lerzeichen entfernen
 
'StringReplace' hilft dir bei allem

cya

Sharky 10. Jul 2008 12:29

Re: lerzeichen entfernen
 
Zitat:

Zitat von 5etH
... gibt es eine methode mit der alle gelöscht werden ...

Hai manu,

schaue Dir mal Delphi-Referenz durchsuchenStringRepleace an.

mkinzler 10. Jul 2008 12:29

Re: lerzeichen entfernen
 
Delphi-Quellcode:
str := StringReplace( str, ' ', '', [rfReplaceAll]);

RavenIV 10. Jul 2008 12:32

Re: lerzeichen entfernen
 
StringReplace mit entsprechenden Parametern.
Die Verwendung verrät Dir die Delphi-Hilfe.

/edit
Manno, zu langsam.

/edit-2
Der Kinzler verrät wieder die ganze Lösung. :-(
Wie sollen denn die Leute selbständig werden, wenn man ihnen alles vorgibt?

marabu 10. Jul 2008 12:36

Re: lerzeichen entfernen
 
Hi,

bevor ich StringReplace() dreimal aufrufe, dann lieber eine Funktion, wie Guido es vorgeschlagen hat: klick

Grüße vom marabu

mkinzler 10. Jul 2008 12:44

Re: lerzeichen entfernen
 
@Achim: warum 3 Mal?

DeddyH 10. Jul 2008 12:47

Re: lerzeichen entfernen
 
Wegen des Vorzeichens vermutlich.

RavenIV 10. Jul 2008 12:47

Re: lerzeichen entfernen
 
Zitat:

Zitat von mkinzler
@Achim: warum 3 Mal?

Ich hab auch zuerst gestutzt.

1) für Leerzeichen
2) für das +
3) für das -

Die Muhkuh 10. Jul 2008 12:51

Re: lerzeichen entfernen
 
Wenn man es unbedingt mit StringReplace machen will, ginge auch sowas:

Delphi-Quellcode:
function StripPlusMinusAndSpace(const Str: string): integer;
begin
  Result := StringReplace(Str, ' ', '', [rfReplaceAll]);
  if (Result[1] = '+') or (Result[1] = '-') then
    Delete(Result, 1, 1);
end;
Spart zumindest 2x StringReplace ein ;-)

RavenIV 10. Jul 2008 12:53

Re: lerzeichen entfernen
 
Zitat:

Zitat von marabu
Hi,

bevor ich StringReplace() dreimal aufrufe, dann lieber eine Funktion, wie Guido es vorgeschlagen hat: klick

StringReplace liegt ja als Source vor, da kann man das ja selber erweitern, dass er als OldString ein "set of String" akzeptiert. Alles, was in diesem Set drin ist, wird durch NewString ersetzt.
Ungefähr so:
Delphi-Quellcode:
Tiere := 'Hund, Elefant, Katze, Frosch, Giraffe, Maus';
Tiere := StringReplace(Tiere, ['Hund', 'Katze', 'Maus'], 'Haustier')

marabu 10. Jul 2008 12:59

Re: lerzeichen entfernen
 
Eigentlich möchte ich das Vorzeichen nicht wegwerfen.

Außerdem gibt es Benutzer, die manchmal Leerstellen, manchmal den Tausenderpunkt zur Verbesserung der Lesbarkeit eintragen.

Delphi-Quellcode:
function StrToIntEx(const s: string): Integer;
begin
  Result := StrToInt(Without(s, [' ', ThousandSeparator]));
end;

procedure TDemoForm.ButtonClick(Sender: TObject);
var
  s: string;
begin
  s := ''
  while InputQuery('Numeric Input Normalization', 'Integer String', s) do
    s := IntToStr(StrToIntEx(s));
end;

Namenloser 10. Jul 2008 13:00

Re: lerzeichen entfernen
 
Zitat:

Zitat von RavenIV
"set of String"

wtf ist ein "set of string"? Meinst du ein variantes Array? :gruebel:

RavenIV 10. Jul 2008 13:04

Re: lerzeichen entfernen
 
Zitat:

Zitat von NamenLozer
Zitat:

Zitat von RavenIV
"set of String"

wtf ist ein "set of string"? Meinst du ein variantes Array? :gruebel:

Weil mir die genaue Bezeichnung grad nicht eigefallen ist, habe ich es in Anführungszeichen gesetzt. ;-)

Lannes 10. Jul 2008 13:23

Re: lerzeichen entfernen
 
Hallo,

@Die Muhkuh: da fehlt noch ein StrToInt :wink:

Wenn der Rückgabetyp ein Integer sein soll:
Delphi-Quellcode:
function StripPlusMinusAndSpace(const Str: string): integer;
begin
  Result := Abs(StrToInt(StringReplace(Str, ' ', '', [rfReplaceAll])));
end;


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