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)
Kommunerne har digitaliseret indgangen for borgerne. Men bag skærmen håndteres mange arbejdsgange stadig manuelt mellem systemer, mails og organisatoriske siloer.
Slettet bruger
24. februar 2002 - 20:30#1
Du kan lave en selv
Function IsInt(S:String):Boolean; var I:Int64; Begin Result:=True; Try I:=StrToInt64(S); Exept on EConverterror Do Begin Result:=False; End; End;
Når du kører programmet via delphi vil delphi give en fejl(vis det ikke er en integer) men dit program vil ikke.
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.