• Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

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

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

Alex2004

Вот примерный код...нужно считать все числа в данном столбце и сложить..вся проблема лишь в том что не знаю как считать вещественные числа из 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

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

etc

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

V88

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

oleksandr

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

Alex2004

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



:) вот не пойму че умничать то...нашел решение проблемы напишу мож кому пригодиться...
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 и все заработала путем..всем спасибо за внимание ;)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!