Тема: Исходница
Показать сообщение отдельно
Старый 20.10.2010, 13:50   #14
impersonalis
Зануда с интернетом
 
Аватар для impersonalis
 
Регистрация: 04.09.2005
Сообщений: 14,014
Написано 6,798 полезных сообщений
(для 20,935 пользователей)
Ответ: Исходница

UPD функции, согласно посту №28 из темы
http://forum.boolean.name/showthread.php?t=9230 ( www.boolean.name > Программирование игр для компьютеров > C++ : Проверка: является ли строка числом?)
Проверка: является ли текст в строке числом.
http://forum.boolean.name/showpost.p...2&postcount=28
Function CheckIsNum%(S$)
	Local sDIGIT%=1
	Local sEXP%=2
	Local sSEP%=3
	Local sSIGN%=4
	Local sETC%=5
	Local Key%
	Local i%
	Local b%
	Local Epos%=-1
	Local Spos%=-1
	Local ExitFlag%=True
	Local IsClose%=False
	Local cLEN%=Len(S)
	For i=1 To cLEN
		If Not ExitFlag
			Exit
		EndIf
		b=Asc(Mid(S,i,1))
		If b>=Asc("0") And b<=Asc("9")
			Key=sDIGIT
		ElseIf b=Asc("E") Or b=Asc("e")
			Key=sEXP
		ElseIf b=Asc(".") Or b=Asc(",")
			Key=sSEP
		ElseIf b=Asc("+") Or b=Asc("-")
			Key=sSIGN
		Else
			Key=sETC
		EndIf
		IsClose=False
		Select Key
			Case sDIGIT
				IsClose=True
			Case sEXP
				If Epos<>-1
					ExitFlag=False
				Else
					Epos=i
				EndIf
			Case sSEP
				If Spos<>-1
					ExitFlag=False
				Else
					Spos=i
				EndIf
			Case sSIGN
				If i<>1 And Epos<>i-1
					ExitFlag=False
				EndIf
			Case sETC
				ExitFlag=False
		End Select
	Next
	If Not IsClose
		ExitFlag=False
	EndIf
	Return ExitFlag
End Function

Q$="ололо"
DebugLog Q+" "+CheckIsNum(Q)
Q$="15445.1"
DebugLog Q+" "+CheckIsNum(Q)
Q$="12БЛДЖАД!"
DebugLog Q+" "+CheckIsNum(Q)
Q$="123.345E-12"
DebugLog Q+" "+CheckIsNum(Q)
Q$="23.2gh465E-1"
DebugLog Q+" "+CheckIsNum(Q)
Q$="23.2465E-1"
DebugLog Q+" "+CheckIsNum(Q)
Q$="sdgf23.2465E-1"
DebugLog Q+" "+CheckIsNum(Q)
Q$="1+1"
DebugLog Q+" "+CheckIsNum(Q)
Q$="+.12E-008"
DebugLog Q+" "+CheckIsNum(Q)
Q$="+.12E-008.1"
DebugLog Q+" "+CheckIsNum(Q)
Q$="E"
DebugLog Q+" "+CheckIsNum(Q)
Q$=""
DebugLog Q+" "+CheckIsNum(Q)
Q$="+"
DebugLog Q+" "+CheckIsNum(Q)
Q$="-"
DebugLog Q+" "+CheckIsNum(Q)
Q$="."
DebugLog Q+" "+CheckIsNum(Q)

ВОТ БЛИН РЕАЛЬНО - куда девается кнопка "правка" под постом. Убирается от времени?
Ответ самому себе (тему создавать опасно: опять процитируют 12 стульев, обматерят в асе и надуютцо как фифы) - http://forum.boolean.name/showpost.p...5&postcount=15
__________________
http://nabatchikov.com
Мир нужно делать лучше и чище. Иначе, зачем мы живем? tormoz
А я растила сына на преданьях
о принцах, троллях, потайных свиданьях,
погонях, похищениях невест.
Да кто же знал, что сказка душу съест?
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо impersonalis за это полезное сообщение:
Colossus (20.10.2010), Kudesnic (20.10.2010), Randomize (21.10.2010)