Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Zahlen in einem String finden (https://www.delphipraxis.net/171731-zahlen-einem-string-finden.html)

ATS3788 22. Nov 2012 09:13

Zahlen in einem String finden
 
Hallo
Gibt es eine elegante "procedure"
um Zahlen in einen String zu finden

Delphi-Quellcode:
str := 'abc1def6q3uz3sdd8as2';
Mir ist schon klar eine Schleife und dann mit ORD
sehen ob es eine ASCII Zahl ist.

Die Frage war aber ELEGANTE

Danke meine Delphifreunde

MrSpock 22. Nov 2012 09:23

AW: Zahlen in einem String finden
 
Man könnte mit der Delphi-Referenz durchsuchenPos Funktion explizit nach den Ziffern '0' .. '9' suchen, aber das ist nicht wirklich eleganter.

Bummi 22. Nov 2012 09:24

AW: Zahlen in einem String finden
 
was meinst Du mit finden?
-Die erste Position (gegf. ab Position) die eine Ziffer ist
-extrahieren der Ziffern in einen String
-extrahieren in eine Liste mit Position/Ziffer
-etc.

Sir Rufo 22. Nov 2012 09:34

AW: Zahlen in einem String finden
 
Zitat:

Zitat von ATS3788 (Beitrag 1192323)
Hallo
Gibt es eine elegante "procedure"
um Zahlen in einen String zu finden

Nein, gibt es nicht. In einem String befinden sich nur Ziffern aber keine Zahlen.
Wären es Zahlen, wäre es kein String ;)

Man kann versuchen aus dem String eine Zahl zu interpretieren.
Dabei ist es aber wichtig in welchem Kontext.
Code:
100
Kann als Zahlenwert bedeuten: 4, 64, 100, 256, ... und ich habe jetzt nur mal so Standard-Zahlensysteme zugrunde gelegt.

himitsu 22. Nov 2012 10:16

AW: Zahlen in einem String finden
 
Oder sind doch Ziffern gemeint?
Also einfach nur eine Matrix, welche Ziffern (0-9) drin vorkommen.

Wenn es doch um Zahlen geht, dann gibt es dazu auch schon ein paar Threads, mit vielen Lösungen.
"abc123def45xy9" > 123, 45 und 9

nuclearping 22. Nov 2012 10:20

AW: Zahlen in einem String finden
 
Zitat:

Zitat von ATS3788 (Beitrag 1192323)
Hallo
Gibt es eine elegante "procedure"
um Zahlen in einen String zu finden

Du kannst dir eine RegEx-Lib für Delphi besorgen und dann mit "/[0-9]{1,}(?:[\,\. ]?[0-9])*/" (oder so ähnlich) alle Zahlen extrahieren.

himitsu 22. Nov 2012 10:52

AW: Zahlen in einem String finden
 
Zitat:

Zitat von nuclearping (Beitrag 1192333)
Du kannst dir eine RegEx-Lib für Delphi besorgen

Die ist (ich glaub seit XE) schon im Delphi mit dabei.

ATS3788 22. Nov 2012 16:23

AW: Zahlen in einem String finden
 
Danke, Danke

Gut zu wissen das es leider nicht elegant geht.

Manchmal sieht mir hier so geniale Lösungen
wo man sich sagt, Oh das war aber klug.

Sir Rufo 22. Nov 2012 16:38

AW: Zahlen in einem String finden
 
Zitat:

Zitat von ATS3788 (Beitrag 1192428)
Danke, Danke

Gut zu wissen das es leider nicht elegant geht.

Manchmal sieht mir hier so geniale Lösungen
wo man sich sagt, Oh das war aber klug.

Wenn du mal ein konkretes Beispiel geben würdest (was geht rein, was soll rauskommen) dann könnten wir dir auch etwas konkretes zeigen. So ist das aber zu schwammig.

ATS3788 22. Nov 2012 16:44

AW: Zahlen in einem String finden
 
Delphi-Quellcode:
function CountNumber(const Str: string): tNumArray;
var
i,a      : integer;
begin
   FillChar(Result , SizeOf(tNumArray) , 0);
   a := 0;
   for i := 1 to length(Str) do
   if (ord(Str[i]) >= 48) and (ord(Str[i]) <= 57) then begin
     Result[a] := StrToInt(Str[i]);
     inc(a);
   end;
end;
Also habe das so gemacht, geht echt gut
ist aber nicht "ELEGANT"

Wie komme ich darauf. In C++ geht vieles,
laßt mich sagen anders. Manches dort ist
"ELEGANT" anderes einfach schwer zu lesen,
dedewegen liebe ich Delphi


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:03 Uhr.
Seite 1 von 3  1 23      

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