Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.12.23;
Скачать: CL | DM;

Вниз

Как прочитать Blob и разобрать побайтно   Найти похожие ветки 

 
Lnstr ©   (2002-12-04 17:31) [0]

Дело было в INTERBASE.
Надо взять Блоб и побайтно его раздерибанитью
По совету друзей, Применяю метод GetData(P) , где P - динамический массив, и - полный отлуп. Валит нули и 17 через равные интервалы.
Ниже приведена моя непутевщина.
Помогите, пожалуйста, только про коды ДНК не напоминайте.

with PL.BlobFieldName do begin
blsize:=BlobSize;
SetLength(P, blsize);
try
if not GetData(P) then begin
MessageDlg(DisplayName + " is NULL", mtInformation, [mbOK], 0);
end else begin
Memo1.Lines.Add("BlobSiseList "+IntToStr(blsize));
for i:=0 to 15 do begin
Memo1.Lines.Add("L"+IntToStr(i)+" "+IntToStr(P[i]));
end;
end;
finally
SetLength(P, 0);
end;
end;


 
OlegE ©   (2002-12-04 17:40) [1]

procedure TfrmMain.Button1Click(Sender: TObject);
var
a: array[1..64] of byte;
b: TStream;
i: Integer;
s: String;
begin
b := pFIBDataSet1.Createblobstream(pFIBDataSet1FD, bmRead);
b.Read( a, b.Size);
s:="";
for i := 1 to b.Size do s := s + IntToStr(a[i]);
ShowMessage(s);
b.Free;
pFIBDataSet1.Transaction.CommitRetaining;
end;


 
Lnstr ©   (2002-12-05 11:18) [2]

//Спасибо, OlegE.
// У меня получилось вот примерно так

// Если написать такую функцию
function ReadString(var Strm:TIBBlobStream):string;
var s:string;
b:byte;
begin Strm.Read(b,sizeOf(b));
SetLength(s,b);
Strm.Read(s[1],b);
result:=s;
end;

// то можно применить ее и похожие вот так

var Stream: TIBBlobStream;
//.......
TStream(Stream):=DM_PL.IBT_PL.CreateBlobStream(DM_PL.IBT_PLLIST, bmRead);
//....
with Stream do begin
Memo1.Lines.Add(ReadString(Stream));
Memo1.Lines.Add(ReadString(Stream));
//........
Free;
end;
//......



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

Текущий архив: 2002.12.23;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.015 c
14-74959
AK-74
2002-12-01 22:54
2002.12.23
Опрос:


1-74760
msdn1
2002-12-10 22:58
2002.12.23
Da tema


14-74906
IronHawk
2002-11-13 00:56
2002.12.23
UBPFD - бесплатная база готовых решений для Delphi!


14-74937
Marat
2002-12-02 16:08
2002.12.23
Все тот же вопрос про серийный номер процессора.


1-74839
Tundra
2002-12-12 09:30
2002.12.23
если использовать setlength призакрытии вылетает ошибка.