![]() |
Delphi-Version: 11 Alexandria
String('8.0.0').toInteger
Hallo,
unter Andorid nutze ich nachfolgenden Code, um bei bestimmten Android Versionen eine andere Schleife aufzurufen.
Delphi-Quellcode:
Ab Android 9 funktioniert es, davor leider nicht, da RELEASE auch Werte wie "8.0.0" oder "7.1.1" haben kann.
If (JStringToString(TJBuild_VERSION.JavaClass.RELEASE).ToInteger() <= 9) then
begin end; Bevor ich mir selbst eine Funktion schreibe, wollte ich fragen, ob es in Delphi auch die Java-Methode String().hasNextInt und String().NextInt gibt? Danke. |
AW: String('8.0.0').toInteger
Okay, habe mir dann doch die Routine geschrieben:
Delphi-Quellcode:
Meine Frage: wäre hier etwas zu verbessern/optimieren?
function MyStrToInt(StrVar: String): Integer;
var strArray: TArray<string>; i: Integer; strI : String; begin try Result := strVar.ToInteger; except strI := ''; strArray:=TArray<string>.Create('1','2','3','4','5','6','7','8','9','0'); for i := Low(StrVar) to High(StrVar) do begin if MatchStr(strVar[i], strArray) then strI := strI + strVar[i] else break; end; if strI = '' then strI := '0'; Result := strI.ToInteger; end; end; |
AW: String('8.0.0').toInteger
Ich hätte das eher mit CharInSet oder mit StrVar.Splitt(['.']) gelöst und am Ende dann StrtoInDef verwendet.
|
AW: String('8.0.0').toInteger
wenn nur major interessant ist, warum nicht nur auf string array erstes feld prüfen?
|
AW: String('8.0.0').toInteger
Warum nicht den vorgesehenen Weg gehen:
Delphi-Quellcode:
uses
System.Sysutils; TOSVersion.Check(8); |
AW: String('8.0.0').toInteger
Zitat:
Zitat:
Zitat:
|
AW: String('8.0.0').toInteger
Zitat:
Delphi-Quellcode:
hier besser geeignet.
if not TOSVersion.Check(9) then
![]() Zitat:
|
AW: String('8.0.0').toInteger
Zitat:
In meinem ollen Delphi 7 (oder auch TurboPascal aus den Anfängen ;-)) ginge das z. B. so:
Delphi-Quellcode:
function GetFirstInteger(s : String) : Integer;
var i : Integer; Code : Integer; begin Val(s, i, Code); if Code <> 0 then begin s := Copy(s,1,Code - 1); Val(s,i,Code); end; Result := i; end; ... begin if GetFirstInteger('8.1.1') < 9 then begin ShowMessage('Kleiner'); end else ShowMessage('GrößerGleich'); end; |
AW: String('8.0.0').toInteger
Zitat:
|
AW: String('8.0.0').toInteger
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:59 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 by Thomas Breitkreuz