AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Bestimmte Zahlen aus einem String auslesen
Thema durchsuchen
Ansicht
Themen-Optionen

Bestimmte Zahlen aus einem String auslesen

Ein Thema von Feyh · begonnen am 14. Nov 2008 · letzter Beitrag vom 14. Nov 2008
Antwort Antwort
Seite 1 von 2  1 2      
Feyh

Registriert seit: 5. Nov 2008
3 Beiträge
 
#1

Bestimmte Zahlen aus einem String auslesen

  Alt 14. Nov 2008, 13:48
Hallo an Alle,

Ich schmücke meinen ersten Post in diesem Forum direkt mal mit einer kleinen Frage aus.

Ich möchte eine Zahl aus einem String auslesen (das ist mir soweit auch gelungen).
Nun besteht aber das kleine Problem, dass nur die erste Zahl ausgelesen werden soll und alle anderen Zahlen ignoriert werden sollen.
Ein Beispiel wäre folgendes:

15, Hauptstraße / NRW14

Die 15 stellt die Hausnummer da, "Hauptstraße" eben den Straßennamen und "NRW14" zum Beispiel einen kleinen Bezirk.

Ich möchte mir lediglich die 15 als Hausnummer ausgeben lassen.

Ich habe das momentan mit "CharIsDigit" gelöst, nur da besteht eben das Problem, dass er mir alle Zahlen ausgibt und hintereinander stellt ( die Ausgabe von oben genannten Beispiel ist demnach: "Hausnummer: 1514")

Eine Logik habe ich bereits ( er soll mir nur die erste Zahl, die ausgelesen wird, als Hausnummer ausgeben und die andren ignorieren), jetzt hänge ich aber an der Realisierung dieser Logik.

Wie (bzw. mit welchem Befehl) führe ich das am bestmöglichsten aus?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Bestimmte Zahlen aus einem String auslesen

  Alt 14. Nov 2008, 13:50
Position der 1.Ziffer suchen und anschliessend die erste Nichtziffer suchen.
Oder mit Hilfe eines regulären Ausdrucks
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Bestimmte Zahlen aus einem String auslesen

  Alt 14. Nov 2008, 13:52
Nimm dir ne Schleife, geh den String durch, bis du bei der ersten Ziffer bist, merk dir die Position, geh weiter, bis du an einer Nicht-Ziffer (oder dem Ende des Strings) angekommen bist und schneid alles dazwischen mit Delphi-Referenz durchsuchencopy raus.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
Feyh

Registriert seit: 5. Nov 2008
3 Beiträge
 
#4

Re: Bestimmte Zahlen aus einem String auslesen

  Alt 14. Nov 2008, 14:03
Ok, diese Vorgehensweise ist klar. Bei mir hackt es momentan aber noch ein wenig an der Erfahrung mit welchen Befehlen ich das mache.
Wie gehe ich denn jetzt den String durch un merke mir die Stellen mit Zahlen?
Ein kleines Codebeispiel wäre vllt nicht verkehrt.
(Tut mir leid, ich bin momentan ein wenig schwer von Begriff^^)
  Mit Zitat antworten Zitat
Benutzerbild von Forlan
Forlan

Registriert seit: 17. Feb 2008
Ort: Herford
265 Beiträge
 
Delphi 2007 Architect
 
#5

Re: Bestimmte Zahlen aus einem String auslesen

  Alt 14. Nov 2008, 14:06
Zitat von Feyh:
Ok, diese Vorgehensweise ist klar. Bei mir hackt es momentan aber noch ein wenig an der Erfahrung mit welchen Befehlen ich das mache.
Wie gehe ich denn jetzt den String durch un merke mir die Stellen mit Zahlen?
Ein kleines Codebeispiel wäre vllt nicht verkehrt.
(Tut mir leid, ich bin momentan ein wenig schwer von Begriff^^)
machs doch einfach so...

Ausgabe := DeinString[1]+DeinString[2]; Also wenn du nur zweistellige Hausnummern hast sollte das ausreichen...
Marcel
マルセル
www.youtube.com/beethoven1990
  Mit Zitat antworten Zitat
Feyh

Registriert seit: 5. Nov 2008
3 Beiträge
 
#6

Re: Bestimmte Zahlen aus einem String auslesen

  Alt 14. Nov 2008, 14:11
Zitat von Forlan:
Zitat von Feyh:
Ok, diese Vorgehensweise ist klar. Bei mir hackt es momentan aber noch ein wenig an der Erfahrung mit welchen Befehlen ich das mache.
Wie gehe ich denn jetzt den String durch un merke mir die Stellen mit Zahlen?
Ein kleines Codebeispiel wäre vllt nicht verkehrt.
(Tut mir leid, ich bin momentan ein wenig schwer von Begriff^^)
machs doch einfach so...

Ausgabe := DeinString[1]+DeinString[2]; Also wenn du nur zweistellige Hausnummern hast sollte das ausreichen...
Wenn das doch nur so einfach wäre =Þ

Das Problem ist aber dabei, dass ich nicht nur eine Adresse habe, sondern weitaus mehr.
Und zusätzlich sind da hausnummern dabei, die 3stellig sind, mit "-" verbunden sind oder erst hinter der Adresse stehen.
Es gibt dazwischen halt Ausnahmen, welche ich rausfiltern möchte.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Bestimmte Zahlen aus einem String auslesen

  Alt 14. Nov 2008, 14:12
Mal auf die Schnelle dahergetippt:
Delphi-Quellcode:
function FirstNumber(const sText: string): string;
var i,j: integer;
begin
  SetLength(Result, Length(sText));
  j := 0;
  i := 1;
  while (i <= Length(sText)) and not(sText[i] in ['0'..'9']) do
    inc(i);
  while (i <= Length(sText)) and (sText[i] in ['0'..'9']) do
    begin
      inc(j);
      Result[j] := sText[i];
      inc(i);
    end;
  SetLength(Result,j);
end;
Wer mag, darf gerne korrigieren/optimieren

[edit] Hab selbst schon was gefunden und korrigiert. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.136 Beiträge
 
Delphi 12 Athens
 
#8

Re: Bestimmte Zahlen aus einem String auslesen

  Alt 14. Nov 2008, 14:18
na erstmal suchst du dir die 1. Zahl und von da ausgehend suchst du nahch dem nächsten Nicht-Zahl-Zeichen und in diesem Bereich befindet sich die Zahl.


Delphi-Quellcode:
z.B. jeweil über 'ne Schleife suchen

if (s[i] >=
'0') and (s[i] <= '9') then Zahl_gefunden...
// oder
if s[i] in [
'0'..'9'] then Zahl_gefunden...

if (s[i2] <
'0') or (s[i2] < '9') then keine_Zahl_mehr...
// oder
if (s[i2] in [
'0'..'9']) then keine_Zahl_mehr...

// und dann
Zahl := Copy(s, i, i2 - i);

Ist die Zahl eigentlich immer das Erste, oder kann davor noch etwas außerLeerzeichen vorkommen.
Was ist bei Hausnummern mit Zusatz? (z.B. 10a)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Bestimmte Zahlen aus einem String auslesen

  Alt 14. Nov 2008, 14:21
Hallo,

eine kleine Anmerkung, was wenn jemand in Hausnummer 15a wohnt.
Währe es da nicht ratsam auch den ersten Buchstaben mitzunehmen
wenn er direkt einer Zahl folgt?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Bestimmte Zahlen aus einem String auslesen

  Alt 14. Nov 2008, 14:29
Sicherlich, das kann man ja noch verfeinern/erweitern.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:48 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