October 28, 2020, 11:08:17 PM

Author Topic: [bb] DataType Function by Ken Lynch [ 1+ years ago ]  (Read 1334 times)

Offline BlitzBot

  • Jr. Member
  • **
  • Posts: 1
[bb] DataType Function by Ken Lynch [ 1+ years ago ]
« on: June 29, 2017, 12:28:43 AM »
Title : DataType Function
Author : Ken Lynch
Posted : 1+ years ago

Description : This function tests the type of data contained in a string to see if it is a float, an integer or text.

Code :
Code: BlitzBasic
  1. ;=================================================
  2. ;
  3. ; DataType Function
  4. ;
  5. ; (c)2003 Ken Lynch
  6. ;
  7. ;=================================================
  8.  
  9. ;
  10. ; DataType(value$)
  11. ;
  12. ; Returns 0 if empty string, 1 if string, 2 if integer, 3 if float
  13. ;
  14. Function DataType(value$)
  15.         Local i, p$, c$, n$, dp, ex
  16.  
  17.         value$ = Trim(value$)
  18.         If value$ = "" Then Return 0
  19.        
  20.         For i = 1 To Len(value$)
  21.                 If i > 1 Then p$ = Mid(value$, i-1, 1)
  22.                 c$ = Mid(value$, i, 1)
  23.                 n$ = Mid(value$, i+1, 1)
  24.                
  25.                 If c$ = "." Then
  26.                         If dp = 1 Or Instr("0123456789", p$) = 0 Or Instr("0123456789", n$) = 0 Or p$ = "" Or n$ = "" Then Return 1
  27.                         dp = 1
  28.                         i = i + 1
  29.                 ElseIf c$ = "e" Then
  30.                         If ex = 1 Or Instr("0123456789", p$) = 0 Or Instr("0123456789+-", n$) = 0 Or p$ = "" Or n$ = "" Then Return 1
  31.                         ex = 1
  32.                         i = i + 1
  33.                 ElseIf Instr("+-", c$) > 0 Then
  34.                         If i > 1 Or Instr("0123456789", n$) = 0 Or n$ = "" Then Return 1
  35.                         i = i + 1
  36.                 ElseIf Instr("0123456789", c$) = 0 Then
  37.                         Return 1
  38.                 End If
  39.         Next
  40.         If dp = 1 or ex = 1 Then Return 3
  41.         Return 2
  42. End Function


Comments : none...

 

SimplePortal 2.3.6 © 2008-2014, SimplePortal