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 Bestimmte Zahlen aus einem String auslesen (https://www.delphipraxis.net/124107-bestimmte-zahlen-aus-einem-string-auslesen.html)

Fridolin Walther 14. Nov 2008 14:30

Re: Bestimmte Zahlen aus einem String auslesen
 
Delphi-Quellcode:
function GetFirstNumber(s : string) : string;
var
  i : Integer;
begin
  for i := 1 to Length(s) do
    if s[i] in ['0' .. '9']
      then Result := Result + s[i]
      else
        if Result <> '' then Break;
end;
Das wäre meine Lösung ;). Ist etwas anders als die von Deddy. Ist relativ einfach und etwas kürzer als Deddys Methode :).

DeddyH 14. Nov 2008 14:31

Re: Bestimmte Zahlen aus einem String auslesen
 
Dafür habe ich break und Stringkonkatenation vermieden ;)

Fridolin Walther 14. Nov 2008 14:32

Re: Bestimmte Zahlen aus einem String auslesen
 
Aber die Bedingung bei Deinen IF Statements liest sich grauenhaft :P.

[EDIT]Uuups ... das war ja gar nicht Deddy. Das war Himitsu mit dem "<= '9'" ;).[/EDIT]

himitsu 14. Nov 2008 14:39

Re: Bestimmte Zahlen aus einem String auslesen
 
Wenn die Hausnummer immer als Erstes steht und sich sonst nix Schlimmes davor befindet,
dann vielleicht so (incl. anhängender Buchstaben)
Delphi-Quellcode:
function GetFirstNumber(s : String) : String;
var
  i : Integer;
begin
  s := Trim(s);
  i := 0;
  while (i < Length(s)) and (s[i + 1] in ['0'..'9', 'a'..'z', 'A'..'Z']) do
    inc(i);
  Result := Copy(s, 1, i);
end;
Falls keine Leerzeichen und Co. davor vorkommen können, dann kann die Zeile mit dem Trim entfallen.

Sir Rufo 14. Nov 2008 15:52

Re: Bestimmte Zahlen aus einem String auslesen
 
Wenn das immer in dem Format 15, Hauptstraße / NRW14 kommt, dann würde ich das hier nehmen
Delphi-Quellcode:
function GetHausnummer( Anschrift : string ): string;
var
  PosKomma : integer;
begin
  PosKomma := Pos( ',', Anschrift );
  if PosKomma > 1
  then
    Result := copy( Anschrift, PosKomma - 1 )
  else
    Result := '';
end;
cu

Oliver

DeddyH 14. Nov 2008 15:54

Re: Bestimmte Zahlen aus einem String auslesen
 
Das mit dem Format ist ja die große Frage ;) Ich würde den String-Parameter übrigens als const übergeben.

Apollonius 14. Nov 2008 15:59

Re: Bestimmte Zahlen aus einem String auslesen
 
Was haltet ihr eigentlich von der alten Pascal-Funktion val?

himitsu 14. Nov 2008 16:09

Re: Bestimmte Zahlen aus einem String auslesen
 
Zitat:

Zitat von Apollonius
Was haltet ihr eigentlich von der alten Pascal-Funktion val?

OK stimmt, wenn man nur die 15 haben möchte, dann würde es so auch gehn :angel: (aber bei "15a" würde wieder was fehlen)

Fridolin Walther 14. Nov 2008 16:14

Re: Bestimmte Zahlen aus einem String auslesen
 
Zitat:

Zitat von Sir Rufo
Wenn das immer in dem Format 15, Hauptstraße / NRW14 kommt, dann würde ich das hier nehmen
Delphi-Quellcode:
function GetHausnummer( Anschrift : string ): string;
var
  PosKomma : integer;
begin
  PosKomma := Pos( ',', Anschrift );
  if PosKomma > 1
  then
    Result := copy( Anschrift, PosKomma - 1 )
  else
    Result := '';
end;

Das könnte man auf folgendes komprimieren:
Delphi-Quellcode:
function GetHausnummer(Anschrift : string) : string;
begin
  Result := Copy(Anschrift, 1, Pos(',', Anschrift)-1);
end;

Fridolin Walther 14. Nov 2008 16:19

Re: Bestimmte Zahlen aus einem String auslesen
 
Zitat:

Zitat von Apollonius
Was haltet ihr eigentlich von der alten Pascal-Funktion val?

Funktioniert nur wenn die Ziffer am Anfang steht. Es wurde ja bereits eingeräumt, daß das nicht immer der Fall ist.


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:39 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz