Zitat von
himitsu:
Delphi-Quellcode:
B := True;
For i := 1 to Length(S) do
If not ((S[i] in ['0'..'9'])
or ((i = 1) and (S[i] in ['+', '-']))) Then B := False;
If B Then {istZahl}
Das ist nicht so gut, da hier unter Umständen unnötig die
or ((i = 1) and (S[i] in ['+', '-'])) Überprüfung gemacht wird. Die Braucht man nur einmal, aber unter Umständen wird jedes Mal überprüft ob i = 1 ist usw. Also entweder es vor der Schleife machen oder die Compilerdirektive (ich glaube) {$B-} davorstellen, so daß nicht alles verglichen wird.
Außerdem kann der Nullterminierte String nicht maximal 2^32 (bzw. erst bei 64 Bit 2^64) sein?
@Kenshin4455
Auch wenn es ein IN gäbe, glaubst du Delphi würde das per Gedankenlesen rausfinden? Es wäre dann intern ohne eigene Routine, aber eine Überprüfung würde es trotzdem geben. Und bei 4 GB wären das paar Minuten.