Форум: "Начинающим";
Текущий архив: 2013.12.22;
Скачать: [xml.tar.bz2];
Внизстроку в набор байт Найти похожие ветки
← →
Skandinav (2013-03-05 15:56) [0]Есть строка, нужно перевести ее в набор байт и присвоить cardinal-переменной. Как присвоить не пойму. Подскажите, пожалуйста.
← →
brother © (2013-03-05 16:07) [1]пример строки?
← →
Skandinav (2013-03-05 16:08) [2]строку в массив байт перевожу, а как присвоить массив переменной cardinal непойму никак
procedure TForm1.FormCreate(Sender: TObject);
var
S: string;
A: array [1..4] of Byte;
I: Integer;
C: Cardinal;
begin
S := "ABCD";
for I := 1 to Length(S) do
A[I] := Ord(S[I]);
//C := ???
end;
← →
MBo © (2013-03-05 16:09) [3]Строка и есть адрес набора байтов. Что именно сделать нужно - неясно.
Вот варианты для начала обсуждения:var
s: AnsiString;
u: Cardinal;
s :="abcdef";
u := PCardinal(@s[1])^;
Move(s[1], u, SizeOf(u);
← →
icWasya © (2013-03-05 16:37) [4]Как вариант
1)
var V:packed record
case boolean of
true:(A: array [1..4] of Byte;);
false:(C: Cardinal;);
end;
for I := 1 to Length(S) do
V.A[I] := Ord(S[I]);
Result:= V.C;
2)
var
A: array [1..4] of Byte;
C: Cardinal; absolute A;
end;
for I := 1 to Length(S) do
A[I] := Ord(S[I]);
Result:= C;
← →
Skandinav (2013-03-05 17:12) [5]задача такая:
в текстовом файле храняться строковое значение длиной 4 символа.
ABCD
в программе есть константа, которая представляет некоторее строковое значение, которое может быть в файле ввиде байт.
const
ABCD = $65666768;
нужно считать строковое значение из файла и проверить совпадает ли оно с константой. Как сделать сравнение.
//S := GetStrFromFile;
//if ABCD = ???
← →
MBo © (2013-03-05 17:18) [6]Обрати внимание:
строка "ABCD" хранится в памяти как #$65 #$66 #$67 #$68
Cardinal число $65666768 хранится в обратном порядке! $68 #$67 #$66 #$65
← →
Ega23 © (2013-03-05 18:05) [7]
> в текстовом файле храняться строковое значение длиной 4
> символа.
Также обрати внимание: текстовый файл может быть в разных кодировках: OEM, ANSI, UTF-8, UTF-16 и ты.ды (насчёт ты.ды - не уверен).
← →
Inovet © (2013-03-05 18:17) [8]> [7] Ega23 © (05.03.13 18:05)
> UTF-16 и ты.ды (насчёт ты.ды - не уверен).
UTF-16 little endian
UTF-16 big endian
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2013.12.22;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.002 c