Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Is not a valid floating point value [D6, D7, Paradox]


Страницы:   1 2

spogi ©   (2006-08-02 10:45:00) 

Что означает это сообщения:
 Красный такой круг и внутри белый крестик с надписью -   "Is not a valid floating point value"...

Значит, такая вот программа-база, возможно вводить цифры с 000001 до 999999 в формате /000000/. Можно ввести один номер, напр. 001249, или диапазон номеров напр. 001250-002580. Значить каждый раз когда введем новую цифру, или новый диапазон, проверяется не использовалось ли раньше этот номер или один из номеров диапазона. Проверяю я вот таким образом:

Сама База:
--Поял1--Поля2--...--МинНомер--МаксНомер--Кол-во--ПоляН
-- ххх   -- ххх   --...-- 001250   -- 002580     -- 1331  -- ххх
и т.д.

Беру я каждую запись, проверяю не входит ли туда вводимый мною новый диапазон или какой нибудь один из этих номеров, если да то Прекращаю искать и останавливаюсь, а если нет, беру следующий запись, и т.д. пока не проверю всех записей. После этого добавляю. И работал отлично пока однажды не вышло вот такое сообщение... ПОМОГИТЕ, Спасибо.

И есть ли возможность проделать все это легче?


spogi   (2006-08-06 21:49:00) [1]


> Просто интересно, где учат писать такой код?


Ну что делать-то? Когда без учителся учишься, получается вот так, странноватый код! :))


Mike Kouzmine   (2006-08-03 16:53:00) [2]

Johnmen ©   (03.08.06 11:54) [24] Как сейчас помню 1984 год. Правда делфи не было.


Johnmen   (2006-08-03 11:54:00) [3]


> Mike Kouzmine ©   (03.08.06 10:37) [23]
>
> Johnmen ©   (03.08.06 09:12) [22] Да ладно. Мой первый был
> такой же.


Не верю! (с)   :)))


Mike Kouzmine   (2006-08-03 10:37:00) [4]

Johnmen ©   (03.08.06 09:12) [22] Да ладно. Мой первый был такой же.


Johnmen   (2006-08-03 09:12:00) [5]

Просто интересно, где учат писать такой код?


Mike Kouzmine   (2006-08-02 23:37:00) [6]

TbMin:=StrToFloat(DMod.tbNumbersN_MIN.Value);
  TbMax:=StrToFloat(DMod.tbNumbersN_MAX.Value);


sniknik   (2006-08-02 23:28:00) [7]

> А вот и код ... Вообще -то работает, а начало выдавать ошибку...
а вот уже и не надо ...

затянутая шутка становится не смешной...


spogi   (2006-08-02 22:55:00) [8]

А вот и код ... Вообще -то работает, а начало выдавать ошибку...

procedure TNumberInputForm.BitBtn1Click(Sender: TObject);
var
 n:Longint;
 min,max,TbMin,TbMax:Real;
 StrMin,StrMax:String;
 P:Boolean;
 label 10;
begin
 If LabeledEdit3.Text = '0' then Exit;
 P:=False;
 min:=StrToFloat(LabeledEdit3.Text);
 StrMin:=FormatFloat('000000',min);
 max:=StrToFloat(LabeledEdit4.Text);
 StrMax:=FormatFloat('000000',max);
   If max < min then begin
     ShowMessage('Max ne mojet bit menshe Min!');
     Exit;
   end;
 DMod.tbNumbers.MasterSource:=nil;
 DMod.tbNumbers.First;
 If DMod.tbNumbers.RecordCount = 0 then begin
   P:=True;
   goto 10;
 end;
 For n:=1 to DMod.tbNumbers.RecordCount do begin
   TbMin:=StrToFloat(DMod.tbNumbersN_MIN.Value);
   TbMax:=StrToFloat(DMod.tbNumbersN_MAX.Value);

   If (min = TbMin) or  (max = TbMax) then begin P:=False; end;
   If (min < TbMin) and (max > TbMax) then begin P:=False; end;
   If (min > TbMin) and (max < TbMax) then begin P:=False; end;
   If (min < TbMin) and (max < TbMin) then begin P:=True; end;
   If (min > TbMax) and (max > TbMax) then begin P:=True; end;

   If P = False then begin
     ShowMessage('Vvedennie vami nomera ranshe ispolzovaloas'
                  + #13#10 + 'Min i Maks cislo proveryayte, tam oshibka!');
     DMod.tbNumbers.MasterSource:=DMod.DSFirms;
     Exit;
   end;
   DMod.tbNumbers.Next;
 end;//end for FOR
 DMod.tbNumbers.MasterSource:=DMod.DSFirms;
 
 10:
 try
   If P = True then begin
     With DMod do begin
       tbNumbers.Edit;
       tbNumbers.Append;
       tbNumbersID_Number.Value:=tbFirmsID_Firm.Value;
       tbNumbersN_Tarix.Value:=StrToDate(MaskEdit1.Text);
       tbNumbersN_Rayon.Value:=DBLookupComboBox1.Text;
       tbNumbersN_FirmaAdi.Value:=tbFirmsF_Adi.Value;
       tbNumbersN_VOEN.Value:=tbFirmsF_VOEN.Value;
       tbNumbersN_Seriya.Value:=LabeledEdit2.Text;
       tbNumbersN_MIN.Value:=StrMin;
       tbNumbersN_MAX.Value:=StrMax;
       tbNumbersN_Count.Value:=StrToInt(LabeledEdit4.Text) - StrToInt(LabeledEdit3.Text) + 1;
       tbNumbersN_Mebleg.Value:=tbNumbersN_Count.Value * tbFirmsF_Qiymet.Value;
       tbNumbersN_VekaletSerNo.Value:=LabeledEdit1.Text;
       tbNumbersN_OdQebzi_MedOrderNo.Value:=LabeledEdit5.Text;
       tbNumbers.Post;
       tbNumbers.Refresh;

       tbFirms.Edit;
       tbFirmsF_Count.Value:=tbFirmsF_Count.Value +
                             StrToInt(LabeledEdit4.Text) -
                             StrToInt(LabeledEdit3.Text) + 1;
       tbFirmsF_Mebleg.Value:=tbFirmsF_Count.Value * tbFirmsF_Qiymet.Value;
       tbFirms.Post;
       tbFirms.Refresh;
     end; //with do begin
   end;   //if p=true
 except
   ShowMessage('V polyax imeetsya oshibki, proveryayte!');
   DMod.tbNumbers.MasterSource:=DMod.DSFirms;
 end;//try-except-end
 DMod.tbNumbers.MasterSource:=DMod.DSFirms;
end;


Anatoly Podgoretsky   (2006-08-02 19:46:00) [9]

17 сообщений и ноль кода и нет типов полей, образца записей в них
Партизан


Плохиш   (2006-08-02 19:27:00) [10]

Мой телепатор сказал, что у него поле типа char, а строки содержащие пробелы не являются вещественными/целыми числами.
Варианты решения:
1. Изменить тип поля на varchar
2. Использовать функцию trim, StrToFloat(trim(sValue));


Lexiy   (2006-08-02 17:53:00) [11]

проверь что стоит запятая или точка ... скорее всего сдесь ошибка нужно смотреть региональные настройки и смотреть что гонишь во флоат


spogi   (2006-08-02 15:00:00) [12]

Ну что ее это такое? Я даже унашел и удалил последнюю запись и когда захотел заного добавить ее не получилось, опять ошибки...


spogi   (2006-08-02 13:19:00) [13]


> эта ошибка появляется при работе программы самой по себе
> или при отладке?


Нет, не при отладке, а сама рабочая программа дает ошибку...


spogi   (2006-08-02 13:17:00) [14]

Дело в том что, я добавлял все новые номера и по ходу суть не изменился, я опять хочу добавлять новые номера или диапазон номеров, только в этот раз не добавляет, и выдает ошибку. Я подумал, вдруг проблема в записе, тогда это проблема та запись, которую я добавил в самом конце, потому что именно после этого и не смог добавить следующую. Нашел этот запись, проверил, нет проблем! :((


umbra   (2006-08-02 11:56:00) [15]

эта ошибка появляется при работе программы самой по себе или при отладке?


Desdechado   (2006-08-02 11:55:00) [16]

> Если ошибка дает в процессе StrToFloat, значить когда-то должно было быть ошибка типа FloatToStr
Совсем нет. FloatToStr ошибки перевода не даст, поскольку в строку можно черта лысого запхать, а вот назад....


Johnmen   (2006-08-02 11:43:00) [17]

Главная ошибка - хранить в символьных полях числовые данные.


sniknik   (2006-08-02 11:24:00) [18]

> В коде не должно быть проблема, программа 2 недели работает ...
нашол тоже показатель... мелкософтский IE вон с 90-какогото года работает и? месяца не проходит без нового патча исправляющего старые глюки...

нет, все проблемы именно в коде, неправильно обрабатываеш тип/неотслеживаеш ввод неподходящих для обработки данных/не учитываеш локализацию/... и т.д. все проблемы кода.


spogi   (2006-08-02 11:22:00) [19]

Значить, все таки опять придется искать проблему среди записей, просто интересно знаете что, Если ошибка дает в процессе StrToFloat, значить когда-то должно было быть ошибка типа FloatToStr... Беру запись, перевожу в числовой, обрабатываю, перевожу в стринг и сохраняю в базе. А может ли вот как-то ошибочно добавляться запись в ошибочном виде и уже со следующего раза чтоб это стало проблемой???


Desdechado   (2006-08-02 11:13:00) [20]

"Is not a valid floating point value" не сочетается с "в формате /000000/".
Попытка сохранить в поле не целого, а дробного типа.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо