Форум: "Начинающим";
Текущий архив: 2014.09.28;
Скачать: [xml.tar.bz2];
ВнизClientDataSet ftArray не могу создать поле Найти похожие ветки
← →
Вова (2013-10-20 23:47) [0]В ClientDataset есть тип данных поля ftArray, ну или FtStream на худой конец. Но когда я добавляю поле с таким типом данных и нажимаю Create то мне выдается ошибка Invalid Type - почему?
А следующий вопрос будет - как затолкать массив типа byte (вообщем то динамический) в поле ClientDataSet?
← →
Туповатый © (2013-10-21 00:24) [1]
> ftArray, ну или FtStream на худой конец.
значит, для тебя идеально подходит ftString
> следующий вопрос будет
ну вот когда - тогда и ответ.
← →
Вова (2013-10-21 01:22) [2]
> ну вот когда - тогда и ответ.
да нет, уже сейчас, и почему для меня идеально подходит стринг, у меня в массиве числа, а не буквы...который там к тому же фиксированной длины, я что то не понял
← →
sniknik © (2013-10-21 08:32) [3]строка это тот же массив, просто стандартная интерпретация у типа текст.
> выдается ошибка Invalid Type - почему?
значит не поддерживается клиентским датасетом... описания типов для всех (bde, ado, ... подключенными базами), у каждого конкретного набор ограничивается своими, в основном одинаковым.
кстати ftArray не знаю кем поддерживается... вот у informix тип есть, но через что не подключайся в дельфю его "пробросить" не получалось.
← →
Ega23 © (2013-10-21 09:52) [4]ftBlob, CreateBlobField, TBlobStream + F1
← →
Вова (2013-10-21 11:01) [5]Я не использую BD просто в локальной таблице все хранится.
К тому же я понял, что массив вовсе не из байтов должен быть
TPixel record
begin
x:cardinal;
y:cardinal;
end
Tmass array of TPixel;
а такой. Делфи рядом нет, синтаксис я не помню без делфи, так что не пинать )
> ftBlob, CreateBlobField, TBlobStream + F1
попробую
← →
Вова (2013-10-21 11:04) [6].....или из битов массив....вообщем как запихать любой массив )) т.к. размер занимаемый в памяти компа у массива должен быть минимальным, но одномерный массив содержит намного больше элементов, чем тот что я выше нарисовал, поэтому какой будет массив пока я не знаю, потому что не могу попробовать.
← →
Вова (2013-10-21 11:31) [7]
m array of cardinal;//m[i]:=x + y*x;
Во!
← →
sniknik © (2013-10-21 12:10) [8]> Я не использую BD просто в локальной таблице все хранится.
абсолютно неважно есть bd или нет, данные локально в тех же компонентах/типы описаны для всех.
> К тому же я понял, что массив вовсе не из байтов должен быть
вся информация из байтов(более дробно из битов)... различие в интерпретации.
> m array of cardinal;//m[i]:=x + y*x;
> Во!
Length(m) * SizeOf(cardinal) = количество байт.
← →
Туповатый © (2013-10-21 14:44) [9]
> (более дробно из битов)
помнится, еще миллибит бит был.
← →
Вова (2013-10-21 17:34) [10]
> > Я не использую BD просто в локальной таблице все хранится.
> абсолютно неважно есть bd или нет, данные локально в тех
> же компонентах/типы описаны для всех. > К тому же я понял,
> что массив вовсе не из байтов должен бытьвся информация
> из байтов(более дробно из битов)... различие в интерпретации.
> > m array of cardinal;//m[i]:=x + y*x;> Во!Length(m) * SizeOf(cardinal)
> = количество байт.
я в курсе, но все равно не знаю как массив затолкать в стринг.
← →
sniknik © (2013-10-21 20:17) [11]пример
procedure TForm1.Button1Click(Sender: TObject);
type
TPixel = record
x: cardinal;
y: cardinal;
end;
Tmass = array of TPixel;
var
mass: Tmass;
st: string;
Size: integer;
begin
SetLength(mass, 2);
mass[0].x:= 1;
mass[0].y:= 2;
mass[1].x:= 3;
mass[1].y:= 4;
Size:= Length(mass)*SizeOf(TPixel);
SetLength(st, Size);
Move(mass[0], st[1], Size);
mass[0].x:= 0;
mass[0].y:= 0;
mass[1].x:= 0;
mass[1].y:= 0;
Move(st[1], mass[0], Size);
ShowMessage(IntToStr(mass[1].x));
end;
← →
sniknik © (2013-10-21 20:19) [12]главное не путать переменные с указателями...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2014.09.28;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.002 c