Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi String formatieren (nur Zahlen) (https://www.delphipraxis.net/93744-string-formatieren-nur-zahlen.html)

bennle 10. Jun 2007 19:04


String formatieren (nur Zahlen)
 
Hallo,
Ich habe einen String, um genauer zu sein einen Timestamp
Nun möchte ich einfach alles löschen, was keine Zahl ist. Also Buchstaben/Sonderzeichen sollen entfernt werden.

Ich denke ich kann Stringreplace verwenden, aber wie sage ich a-z + Sonderzeichen?

MfG
Benny

DeddyH 10. Jun 2007 19:07

Re: String formatieren (nur Zahlen)
 
Ich weiß nicht, ob es da schon etwas vorgefertigtes gibt, also versuch es mal so.
Delphi-Quellcode:
function NurZahlen(const s: string): string;
var i: integer;
begin
  Result := '';
  for i := 1 to Length(s) do
    if s[i] in ['0'..'9'] then
      Result := Result + s[i];
end;

_frank_ 10. Jun 2007 19:08

Re: String formatieren (nur Zahlen)
 
mal fix aus dem Kopf...

Delphi-Quellcode:
var s:string;
    p:integer;

s:='2007-06-10 20:05';
p:=length(s);
while p>0 do
begin
  if s[p] in ['a'..'z',' '] then
    delete(s,p,1);
  else
    dec(p);
end;
//roter kasten - egal, lösung ist anders ;)

HTH Frank

DeddyH 10. Jun 2007 19:11

Re: String formatieren (nur Zahlen)
 
Zitat:

Zitat von _frank_
egal, lösung ist anders :wink:

Jepp, ich finde es immer gut, wenn mehrere Lösungswege aufgezeigt werden. :cheers:

bennle 10. Jun 2007 19:15

Re: String formatieren (nur Zahlen)
 
Supi, vielen Dank.
Das ging ja warnsinnig schnell :)

Hätte gedacht das es wie in PHP einen Definitionsrahmen gibt ;)

Gruß
Benny

DeddyH 10. Jun 2007 19:16

Re: String formatieren (nur Zahlen)
 
Was meinst Du mit "Definitionsrahmen"?

marabu 10. Jun 2007 19:19

Re: String formatieren (nur Zahlen)
 
Hier habt ihr noch was zum drüber meditieren:

Delphi-Quellcode:
function ExtractDigits(const s: string): string;
var
  i, iLength: Integer;
begin
  SetLength(Result, Length(s));
  iLength := 0;
  for i := 1 to Length(s) do
    if s[i] in ['0'..'9'] then
    begin
      Inc(iLength);
      Result[iLength] := s[i];
    end;
  SetLength(Result, iLength);
end;
Freundliche Grüße

bennle 10. Jun 2007 19:20

Re: String formatieren (nur Zahlen)
 
Zitat:

Zitat von DeddyH
Was meinst Du mit "Definitionsrahmen"?

Dazu hab ich leider momentan nur eine Prüfrutine gefunden
Code:
preg_match("=^[0-9]+$=i",$var)
aber nun gut so lange es funktioniert :)

DeddyH 10. Jun 2007 19:24

Re: String formatieren (nur Zahlen)
 
Zu Regular Expressions gibt es AFAIK irgendwo 'ne Library als OpenSource. Aber ob sich das für eine Funktion lohnt...

bennle 10. Jun 2007 20:27

Re: String formatieren (nur Zahlen)
 
Hallo,
Naja nicht notwendig!

Nur noch eine kurze Frage. Besteht die Möglichkeit eine Funktion zu globalisieren? Also das ich eine Unit mit nur Funktionen erstelle und diese einbinde?

Ich hab das schon versucht, habe aber kein Erfolg :(


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

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