Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi String Filtern (https://www.delphipraxis.net/57826-string-filtern.html)

philiph 27. Nov 2005 13:42


String Filtern
 
Wie kann ich aus den Daten eiens Strings(Zahlen und Buchstaben vorhanden) alle Zahlen herausfiltern und in einem anderen String speichern?

Ultimator 27. Nov 2005 13:47

Re: String Filtern
 
Wenn du nachher einfach nur alle Ziffern nacheinander in nem anderen String stehen haben willst, dann mach das so (ungetestet, müsste aber funzen):
Delphi-Quellcode:
for i := 1 to length(Originalstring) do
  if OriginalString[i] in ['0'..'9'] then
    begin
      ZahlenString := ZahlenString + OriginalString[i];
      delete(OriginalString, i, 1); //Markierte Zeile
    end;
Wenn die Zahlen im OriginalString drinbeleiben sollen, dann kommentier einfahc die markierte Zeile und somit den delete-Aufruf aus ;)

//edit i von 1 anfangen lassen zu zählen (vorher wars 0, gibt aber keinen Sinn, weil in String[0] die Längenangabe steht)

philiph 27. Nov 2005 19:19

Re: String Filtern
 
Der Filter an sich funktioniert zwar aber er macht aus 123456789 13579

Totti 27. Nov 2005 19:21

Re: String Filtern
 
nach der deleteaktion soltle net erhöht werden ... da erledigt das delete ja schon gewissermaßen.

Ultimator 27. Nov 2005 21:03

Re: String Filtern
 
Hm, stimmt, das hab ich nicht bedacht.
Eventuell müsste es mit einer for-downto-Schleife klappen.

Totti 28. Nov 2005 10:37

Re: String Filtern
 
oder einfach ne whileschleife, wo man die int-variable manuell erhöht bzw. eben nicht erhöht, wenn man delete nutzt ;)

mumu 28. Nov 2005 10:42

Re: String Filtern
 
warum nicht einfach das delete weglassen?!
Delphi-Quellcode:
ZahlenString := '';
for i := 1 to length(Originalstring) do
if OriginalString[i] in ['0'..'9'] then
begin
  ZahlenString := ZahlenString + OriginalString[i];
end;

Angel4585 28. Nov 2005 11:15

Re: String Filtern
 
Mein Vorschlag:
Delphi-Quellcode:
ZahlenString := '';
for i := length(Originalstring) downto 1 do
 if OriginalString[i] in ['0'..'9'] then
  Insert(OriginalString[i],Zahlenstring,0);

Totti 28. Nov 2005 11:16

Re: String Filtern
 
Zitat:

Zitat von Ultimator
Wenn die Zahlen im OriginalString drinbeleiben sollen, dann kommentier einfahc die markierte Zeile und somit den delete-Aufruf aus ;)

Das ist klar ... wenn das net rausgelöscht werden soll, so dass man eine Kette ohne Zahlen und eine nur mit Zahlen ,
dann brauchts das delete net und das ganze Problem ist hinfällig ;)

Daniel B 28. Nov 2005 11:25

Re: String Filtern
 
http://www.delphipraxis.net/internal...ghlight=daniel


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

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