Как считать вещественные числа из Dbf

  • Автор темы Alex2004
  • Дата начала
A

Alex2004

Гость
#1
Вот примерный код...нужно считать все числа в данном столбце и сложить..вся проблема лишь в том что не знаю как считать вещественные числа из DBF :)
C++:
datamodule1.table1.first;
for i:=0 to datamodule1.table1.recordCount-1 do
begin
x:=strtoint(datamodule1.table1.Fields..Fields[7].AsString);
end;
 
A

Alex2004

Гость
#3
блин...я знаю что strtoInt эт тока целые считывает..вот написал вначале примерный код...короче..есть столбец..там числа (1212.15) в таком формате..так вот пробывал их считать и strtofloat тож не хотить...есть канешна подозрения что ему точка не нравиться...но как бы заменять точку на запятую долговато..вот и спрашиваю как это можно считать!!! :)
 
E

etc

Гость
#4
я знаю что strtoInt эт тока целые считывает
Зачем тогда вперли сюда его?
Это как?
В каком таком?
Сначала надо понять какого типа данные в этом поле, потом и конвертацией заниматься, если она ваще нужна будет.
 

V88

Well-Known Member
22.10.2008
51
0
#5
можно в прнципе так:
Код:
datamodule1.table1.first;
for i:=0 to datamodule1.table1.recordCount-1 do
begin
x:=datamodule1.table1.Fields..Fields[7].Value;
end;
 
O

oleksandr

Гость
#6
По всем правилам должно работать AsFloat или AsVariant или поле String с непонятными знаками (разделители точк, запятые...) вы хотите конвертировать в Real. Тогда нужно считывать как AsString заменять знаки чтобы мона было StrToFloat
 
A

Alex2004

Гость
#7
Зачем тогда вперли сюда его?
Это как?
В каком таком?
Сначала надо понять какого типа данные в этом поле, потом и конвертацией заниматься, если она ваще нужна будет.


:) вот не пойму че умничать то...нашел решение проблемы напишу мож кому пригодиться...
C++:
function StrToFloat2(const S : String) : Extended;
var FS : TFormatSettings;
begin
if pos('.', S) > 0 then
FS.DecimalSeparator := '.';
if pos(',', S) > 0 then
FS.DecimalSeparator := '.';
Result := StrToFloat(S, FS)  
end;
смысл такой сделал так чтоб прорамка понимала точку эту...и потом считывал обычным strtofloat и все заработала путем..всем спасибо за внимание ;)