Zahl an bestimmter Stelle aus String auslesen

Anfängerfragen zum Programmieren mit PureBasic.
Clum
Beiträge: 2
Registriert: 24.11.2011 14:58

Zahl an bestimmter Stelle aus String auslesen

Beitrag von Clum »

Moin,
(Konnte über die SuFu nichts finden)Ich suche nach einer Möglichkeit, eine Zahl aus einer längeren String-Variable auszulesen. Die Zahl selbst wechselt ihre Position innerhalb des Strings und auch ihren Wert bei jedem auslesen, sie folgt aber immer auf den gleichen String (Ohne Trennzeichen). Dafür habe ich mir Folgendes überlegt:

Code: Alles auswählen

Paste$ = GetClipboardText() ;Zwischenspeicher in String-Variable kopieren
PosString = FindString(Paste$,"String",1) ;Zahl kommt nach String, also Position des Strings auslesen...
PosString + 6 ; ...und Länge des Strings aufaddieren 
Jetzt weiß ich also wo die Zahl steht, aber:
Ich weiß nicht wie lang die Zahl ist und kann sie deshalb nicht via StringField() und einer For To - Schleife auslesen und sie kann ja genauso 1-Stellig wie 8-Stellig sein. Was tun?

Gruß
Clum
Benutzeravatar
rolaf
Beiträge: 3843
Registriert: 10.03.2005 14:01

Re: Zahl an bestimmter Stelle aus String auslesen

Beitrag von rolaf »

Wozu braucht du die Länge, nim einfach Val() und schmeis ihm den String ab der gewünschten Zahl zu Frass vor. Val() wandelt nur die Zahlen um, der Reststring wird ignoriert.

Code: Alles auswählen

Debug Val(Mid("dudeldei1024102unnützebuchstaben995weiterermüll",9))
Hoffe hab dein Problem richtig verstanden?
Zuletzt geändert von rolaf am 24.11.2011 16:02, insgesamt 1-mal geändert.
:::: WIN 10 :: PB 5.73 :: (x64) ::::
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Re: Zahl an bestimmter Stelle aus String auslesen

Beitrag von Bisonte »

Nach dieser Zahl kommt doch mit Sicherheit irgendein Zeichen (und wenn es nur ein Leerzeichen ist) um sie vom
weiteren Text zu trennen.

Dann kannste dieses Zeichen suchen (Findstring Startposition anpassen) und dann alles zwischen Start und
Ende per MID() auslesen.

Oder falls es wider Erwarten so "Hallo1234Duda" aussieht, kannst du ab der gefundenen Startposition die kommenden
Zeichen überprüfen ob es eine Zahl ist (Stichwort ASCII Code für "0" wäre 48)...

Edit : @rolaf:Es könnt ja sein dass mehr als nur eine Zahl rausgesucht werden soll...
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Clum
Beiträge: 2
Registriert: 24.11.2011 14:58

Re: Zahl an bestimmter Stelle aus String auslesen

Beitrag von Clum »

@Bisonte Manchmal sehe ich den Wald vor lauter Bäumen nicht, danke, das ist genau was ich gesucht habe.
Danke auch an rolaf für die (in diesem Fall leider nicht funktionierende) Alternative ;)

Tante Edith: Auch die Methode von rolaf klappt, macht mir sogar weniger Arbeit, man sollte es nur rchtig machen :allright:
Antworten