AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Stringfunktionen

Ein Thema von Slashmob · begonnen am 10. Jan 2012 · letzter Beitrag vom 11. Jan 2012
Antwort Antwort
Slashmob

Registriert seit: 28. Okt 2011
45 Beiträge
 
#1

Stringfunktionen

  Alt 10. Jan 2012, 19:39
Hallo,

ich will aus einer Textdatei, mit dem Inhalt z.B. X123Y456 oder DELTAX51DELTAY175, die Zahlenwerte "herausfiltern."
Die Zahlenwerte sind gesuchte Koordinaten.

Ich vermute mal das dürfte irgendwie mit Copy,Pos und Delete gehen.
Kann mir jemand konkret am obigen Beispiel zeigen wie das codemäßig aussehen muss?
Meine eigenen Versuche führten nicht zum Ziel...

Gruß Slash
  Mit Zitat antworten Zitat
daywalker9

Registriert seit: 1. Jan 2010
Ort: Leer
594 Beiträge
 
Delphi XE3 Professional
 
#2

AW: Stringfunktionen

  Alt 10. Jan 2012, 19:46
Delphi-Quellcode:

for I := 1 to Length(Zeile) do
begin
  if (Zeile[I] in ['0'..'9']) do
     Result := Result + Zeile[i];
end;
Zeile Zeichen für Zeichen durchgehen und alles was numerisch ist sammeln
Lars
  Mit Zitat antworten Zitat
Slashmob

Registriert seit: 28. Okt 2011
45 Beiträge
 
#3

AW: Stringfunktionen

  Alt 10. Jan 2012, 19:56
Erstmal Danke. Kann ich denn damit auch die X- und Y-Koordinaten unterscheiden? Oder hab ich damit nur einen "Topf voller Zahlen"?

Mir geht es darum aus jeder Zeile einen X-Wert und einen Y-Wert zu bekommen.
Geht das denn alternativ auch irgendwie mit copy,pos und delete?? (Das wäre sogar zu bevorzugen, weil ich diese drei Funktionen anhand dieses Beispiels lernen muss)


Gruß Slash
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#4

AW: Stringfunktionen

  Alt 10. Jan 2012, 20:16
Überleg doch selbst! Ist ja gar nicht so schwer:

Code:
1. Solange löschen, bis eine Zahl oder das Ende erreicht wird; beim Letzterem: überspringe nächsten beiden Punkte
2. Solange die Zahl extrahieren (Zahl speichern, aus dem Originalstring löschen), bis entweder ein Buchstabe erreicht oder an das Ende gelangt wurde; bei Letzterem: überspringe nächsten Punkt
3. Springe zu Punkt 1
Code:
Umgesetzt (Originalstring "X123Y456")
1. Resultat: "123Y456"
2. Resultat: 123 (Originalstring "Y456")
3. -> 1.

1. Resultat: "456"
2. Resultat: 456 (Originalstring ""; Punkt 3 wird übersprungen)
Thats it;
Funktioniert genausogut mit DELTAX123... Zeugs
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG

Geändert von Aphton (10. Jan 2012 um 20:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Aphton
Aphton

Registriert seit: 31. Mai 2009
1.198 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Stringfunktionen

  Alt 10. Jan 2012, 20:23
(Doppelpost wegen der Trennung; Sry)

Code:
* String = 'ABCDEFG'

- Copy(String, Position, Stellen)
Copy(String, 3, 2) -> Kopiere ab der Position 3 (Buchstabe "C") 2 Stellen = "CD"

- Delete(String, Position, Stellen)
Delete(String, 3, 2) -> Lösche ab der Position 3 (Buchstabe "C") 2 Stellen = "ABEFG"

- Pos(String, GesuchterString)
Pos(String, 'CD') -> suche nach der Position CD im String 'ABCDEFG' und liefere den Index als Zahl zurück = 3
Wenn du scheiterst, wird dir gerne geholfen. Nur wirds dir keiner Vorkauen!
das Erkennen beginnt, wenn der Erkennende vom zu Erkennenden Abstand nimmt
MfG
  Mit Zitat antworten Zitat
Slashmob

Registriert seit: 28. Okt 2011
45 Beiträge
 
#6

AW: Stringfunktionen

  Alt 10. Jan 2012, 21:40
(Doppelpost wegen der Trennung; Sry)

Code:
* String = 'ABCDEFG'

- Copy(String, Position, Stellen)
Copy(String, 3, 2) -> Kopiere ab der Position 3 (Buchstabe "C") 2 Stellen = "CD"

- Delete(String, Position, Stellen)
Delete(String, 3, 2) -> Lösche ab der Position 3 (Buchstabe "C") 2 Stellen = "ABEFG"

- Pos(String, GesuchterString)
Pos(String, 'CD') -> suche nach der Position CD im String 'ABCDEFG' und liefere den Index als Zahl zurück = 3
Wenn du scheiterst, wird dir gerne geholfen. Nur wirds dir keiner Vorkauen!
Ich wills ja verstehen und lernen, mir fällts halt leichter wenn ich etwas "Neues" anhand eines konkreten Beispiels sehe...dann hab ichs vor Augen und kann es woanders auch andwenden.

Versuche mich mal dran. Wenn Fragen sind, dann meld ich mich!
Danke dir nochmal!
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.222 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Stringfunktionen

  Alt 10. Jan 2012, 20:25
  if (Zeile[I] in ['0'..'9']) do
Dein XE2 sollte dich hier aber darauf hinweisen doch die Funktion CharInSet zu verwenden...
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:24 Uhr.
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