24. februar 2002 - 20:10Der er
7 kommentarer og 2 løsninger
strtofloat
findes der en funktion der kan tjekke om en string kan konverteres til en single ved at returenere en false-værdi, hvis det ikke er muligt og en true-værdi, hvis det er?
(Det samme gælder for strtoint med string der skal konverteres tin en integer)
function IsStrANumber(const S: String): Boolean; var P:PChar; begin P:=PChar(S); result:=False; while P^ <> #0 do begin if not (P^ in ['0'..'9']) then exit; inc(P); end; result:=True; end;
procedure TForm1.Button1Click(Sender: TObject); begin if IsStrANumber(edit1.Text) = true then showmessage('Edit1 indeholder tal'); end;
du ændrer selvfølgelig bare if IsStrANumber(edit1.Text) = false for at checke for str
Denne function giver ingen fejl I Delphi's IDE
Stoney
Synes godt om
Slettet bruger
24. februar 2002 - 21:13#3
Den duer dog ikke til Hex Eller til Decimaltel.
Mvh. Simon
Synes godt om
Slettet bruger
24. februar 2002 - 21:39#4
Denne duer til Heltal (ogse i Hex) og desimaltal
Function IsNumber(S:String;Int:Boolean=True):Boolean; var I:Integer; B1,B2:Boolean; C:Char; S1:String; Begin S1:=S; If Int Then Begin B1:=False; If S1[1]='$' Then Begin B1:=True; Delete(S1,1,1); End Else If (S1[1]='-') Or (S1[1]='+') Then If S1[2]='$' Then Begin B1:=True; Delete(S1,1,2); End Else Delete(S1,1,1); For I:=1 To Length(S1) Do Begin C:=S1[I]; Case C Of '1','2','3','4','5','6','7','8','9','0':Begin End; 'a','A','b','B','c','C','d','D','e','E':Begin If Not B1 Then Exit; End Else Exit; End; End; Result:=True; End Else Begin If (S1[1]='+') Or (S1[1]='-') Then Delete(S1,1,1); B1:=False; B2:=False; I:=0; Repeat Inc(I); C:=S1[I]; Case C Of '1','2','3','4','5','6','7','8','9','0':Begin End; ','{Seperator}:If Not B2 Then //HUSK!!!!!!!!!!!!!! B2:=True Else Exit; 'e','E':B1:=True; Else Exit; End; Until (B1=True) Or (I=Length(S1)); If I=Length(S1) Then Begin Result:=True; Exit; End; Inc(I); If (S1[I]='-') Or (S1[I]='+') Then Inc(I); For I:=I To Length(S) Do Begin C:=S1[I]; Case C of '1','2','3','4','5','6','7','8','9','0':Begin End Else Exit; End; End; Result:=True; End; End;
Mvh. Simon
Synes godt om
Slettet bruger
24. februar 2002 - 22:15#5
Stoney så snart jeg har et eksempel bliver det aksepteret. (bare lave en form gem og send projektet)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.