Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi leerstellen in einer textbox entfernen... (https://www.delphipraxis.net/10917-leerstellen-einer-textbox-entfernen.html)

agm65 27. Okt 2003 23:35


leerstellen in einer textbox entfernen...
 
hi leute, leerstellen in einer textbox entfernen...macht man mit vb: trim(textbox).
gibt es in delphi eine funktion die dieser gleich kommt ?
1000 dank cu agm65

Skyruner2 27. Okt 2003 23:57

Re: leerstellen in einer textbox entfernen...
 
i think you can do

onkeypressed
Delphi-Quellcode:
  if Key=#32 then
    Key := #0;
#32 is Leerzeichen in ASCII i think

Niels 28. Okt 2003 00:54

Re: leerstellen in einer textbox entfernen...
 
Moin
ich hab mal n kleines Beispiel für nen RichEdit geschrieben.
So wie ich das verstanden hab willst du ja per befehl oder ButtonClick die Leerzeichen entfernen lassen und net schon bei der Eingabe.

Delphi-Quellcode:
procedure del(var a:string; b: longint);
var c: longint;
begin
  for c := b to (length(a)-1) do
    a[c] := a[c+1];
  a[length(a)] := #0;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  a: string;
  b: longint;
begin
  a := RichEdit1.Text;
  for b := length(a) downto 1 do
   if a[b] = #32 then del(a,b);
  RichEdit1.Text := a;
end;
Ich hoffe das funzt :)

Christian Seehase 28. Okt 2003 01:24

Re: leerstellen in einer textbox entfernen...
 
Moin agm,

in Delphi hast Du trim, trimleft, trimright.
Vergleich deren Funktion doch mit der von VB.
Ich denke die stimmt überein.

Aike 17. Okt 2004 17:06

Re: leerstellen in einer textbox entfernen...
 
Wenn man die mehrfache Eingabe von Leerzeichen entfernen möchte, hilft diese Prozedur weiter:

Delphi-Quellcode:
procedure LeerzeichenEntfernen;
var i,j: integer;
    s,t:string;
    uebrig:boolean;
begin
  s:=Edit1.Text;

  repeat
    uebrig := false;
    SetLength(t, length(s));
    for i := 1 to length(s)-1 do
    if (s[i] = ' ') and (s[i+1] = ' ') then
    begin
      SetLength(t, length(t)-1);
      for J := 1 to length(s)-1 do
        if J<i then
          t[J] := s[J]
        else
          t[J] := s[J+1];
      s := t;
    end;

    //prüfen ob fertig
    for i := 1 to length(s)-1 do
      if (s[i] = ' ') and (s[i+1] = ' ') then
        uebrig := true;
  until not uebrig;

  s:=trimleft(s); //Entfernt Leerzeichen am Anfang des Strings
  s:=trimright(s); //Entfernt Leerzeichen am Ende des Strings

  Edit1.Text:=s;
end;
thx to Hagen

himitsu 17. Okt 2004 18:31

Re: leerstellen in einer textbox entfernen...
 
@Aike:
es geht auch einfacher/kürzer ... vorallem das mit dem Trim ...

Delphi-Quellcode:
  s:=trimleft(s); //Entfernt Leerzeichen am Anfang des Strings
  s:=trimright(s); //Entfernt Leerzeichen am Ende des Strings
Delphi-Quellcode:
  s:=trim(s); //Entfernt Leerzeichen am Anfang und am Ende des Strings
Delphi-Quellcode:
procedure LeerzeichenEntfernen;
var s:string;
begin
  s:=Edit1.Text;

  while Pos(' ', s) > 0 do
    delete(s, Pos(' ', s), 1);

  Edit1.Text:=trim(s);
end;

Aike 17. Okt 2004 19:05

Re: leerstellen in einer textbox entfernen...
 
hihi, kewl, thx!


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