Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.08.2014, 09:31   #1
Winexcel
Форумчанин
 
Регистрация: 26.08.2013
Сообщений: 187
По умолчанию Инициализация Integer или real, пустое значение.

Здравствуйте! Возникла такая трабла, есть источник(сайт) на котором есть информация о баллах разных серверов, содержится эта информация в таком виде(все три вида как пример):
Код:
123 units
-123 units
units
Красным обвёл то где трабла, бывает что значения просто нет , вывожу цифры я так
Код:
function StrToNums(Str:String):Integer;
var
	i:integer;
	Dest:String;
	Negative:Boolean;
begin
	if Str = EmptyStr then
		exit;
	for i := 1 to length(str) do begin
		if (StrToIntDef(Str[i], -1) in[0..9]) then
			Dest := Dest + str[i]
		else if (Str[i] = '-')  then
			Negative := TRUE
		else if (Str[i] = '+') then
			continue
		else
			break;
	end;
	Result :=0;
	if Negative then
		Result := Result - StrToInt(Dest)
	else
		Result := StrToInt(Dest);
end;
Функция работает ровно до того пока не встретит траблу с пустым числом, не знаю даже как выйти из ситуации, заполняю объект через регулярку этими числами. Ошибку получаю Is not valid integer, что и понятно.

Последний раз редактировалось Winexcel; 08.08.2014 в 09:34.
Winexcel вне форума Ответить с цитированием
Старый 08.08.2014, 09:37   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
function ParseInt(s:string):Integer;
var i,e:integer
begin
 val(s,i,e);
 if e=0 then begin result:=i; exit;end;
 val(copy(s,1,e-1),i,e);
 if e=0 then begin result:=i; end else Result:=0;
end.
Это в качестве идеи. Не проверял.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не могу разобраться с ошибкой "Индекс или ключ не может содержать пустое значение (NULL), когда хочу новую запись в бд добавить mimino46 БД в Delphi 2 10.11.2013 23:50
Real, Integer jawa250t Общие вопросы Delphi 4 28.01.2011 14:19
как опредилить real или integer записан в строку?? V.OX Общие вопросы Delphi 4 24.12.2009 22:11
как перевести из integer в real(и обратно), и из real в string(и обратно) Ga-sergey Общие вопросы Delphi 2 08.06.2007 21:13
Конвертация real > integer Viteef Общие вопросы Delphi 2 03.05.2007 18:45