![]() |
Ih Will aber eine ID! - Problem mit Funktion
Moin,
folgende Funktion:
Delphi-Quellcode:
Ich weiß, ihr werdet gleich drauf losbrüllen, dass das falsch ist. Tja, und genau das will ich auch hören. ;)
function TMainFrm.getID: integer;
var aTmp: string; i: integer; begin aTmp := getcurSyn.Name; for i:= length(aTmp) downto 0 do begin if (aTmp[i] in ['0'..'9']) then Break; end; i := (length(aTmp) + 1) - i; Result := StrToInt(copy(aTmp, length(aTmp), i)); end; Problem: ich bekomme immer nur die letzte Zahl, auch wenn die ID mehrstellig ist. Im Klartext: der Komponentenname setzt sich zusammen aus seInsertingXX. Das XX steht für eine ID, die ein einfacher Integer ist und bis zum Ende rattert. Nun, was will meine Funktion bezwecken? Ganz einfach: ich will diese ID. Nun frage ich euch: WAT SOLL ICH DA MACHEN? Wie gesagt: bekomme immer nur die letzte der mehreren Xen. Naja, mir ist gerade eine Idee gekommen, aber jetzt seid ihr dran... :roll: Chris |
Hallo Chris,
du willst doch nicht wirklich die Schleife verlassen, wenn das aktuelle Zeichen eine 0..9 ist, oder :mrgreen: ? Propiers mal mit:
Delphi-Quellcode:
Außerdem sollte die Schleife nicht bis 0, sondern nur bis 1 laufen.
if Not (aTmp[i] in ['0'..'9']) then
Break; |
Hm... danke, dass wird es wohl sein, aber ich habe gerade auf die schnelle (ich habe min. 1 Std. mal drangessessen :wall:) hingeschrieben:
Delphi-Quellcode:
:wall::wall::wall::wall::wall:
function TMainFrm.getID: integer;
var aTmp: string; begin aTmp := getcurSyn.Name; Result := StrToInt( copy(aTmp, Pos('g', aTmp) + 1, length(aTmp) - Pos('g', aTmp) ) ); end; Chris |
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:06 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