Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.02.24;
Скачать: [xml.tar.bz2];

Вниз

Глюк или руки?   Найти похожие ветки 

 
AVL1   (2003-02-13 02:17) [0]

Исходные данные:
Таблица Dbase III
ID Numeric 10 0
STR1 Character 60
APX Memo 10 0


Пишу:
procedure SaveArrayToStream(a: array of double; F:TBlobField);
var
Stream: TStream;
begin
Stream := TMemoryStream.Create;
try
Stream.Write(a[0],Length(a)*SizeOf(Double));
Stream.Seek(0,0);
F.LoadFromStream(Stream);
finally
Stream.Free;
end;
end;

function ReadArrayFromStream(F:TBlobField; L: integer): variant;
var
Stream: TStream;
a: array of double;
begin
try
Stream := TMemoryStream.Create;
SetLength(a, L);
F.SaveToStream(Stream);
Stream.Seek(0,0);
Stream.Read(a[0],Length(a)*SizeOf(Double));
result:=a;
finally
Stream.Free;
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
t: array of double;
begin
SetLength(t, 2);
t[0] := 59913.9481 ;
t[1] := 59913.9487 ;
table1.Edit;
Table1.FieldByName("ID").AsInteger:=1;
Table1.FieldByName("STR1").AsString:="Тест для 59913.9487";
SaveArrayToStream(t, table1.FieldByName("APX") as TMemoField);
.........
end;

Затем, читаю то что запихал в блоб-поле:

procedure TForm1.Button2Click(Sender: TObject);
var
t1: array of double;
begin
SetLength(t1, 2);
t1:= ReadArrayFromStream(table1.FieldByName("APX") as TMemoField, 2);
memo1.Lines.Add(floattostr(t1[0]));
memo1.Lines.Add(floattostr(t1[1]));
...
end;

Получаю результат:
59913,9481
2,71736105212686E-322

Изменяю 59913.9487 ну к примеру на 59913.94871 все Ok .

Меняю DBase III на DBase IV
с 59913.9487 все нормально, глюки выползают из других щелей...

Похоже что данные корежит именно при записи потока в поле BLOB т.е. во время отработки процедуры SaveArrayToStream.

Пожалуйста, подскажите где грабли? Спасибо.


 
AVL1   (2003-02-13 04:28) [1]

Не окунайте в тишину ... please.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.02.24;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.008 c
14-76158
А. Н.
2003-02-07 23:20
2003.02.24
Адгоритм сжатия


8-76037
Ciber SLasH
2002-11-12 03:40
2003.02.24
Памагите с функцией mciSendString


6-76070
greenrul
2003-01-05 17:31
2003.02.24
Как сделать плагин для IE?


3-75743
ddenisv
2003-02-07 13:53
2003.02.24
В TQuery не работает locate. Help!


1-75946
happyboy
2003-02-11 18:31
2003.02.24
PopupMenu и спец. фонты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский