Форум: "Основная";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
ВнизПодскажите как грамотно решить следующую задачу Найти похожие ветки
← →
Руслана (2004-12-22 12:56) [0]Имеется текстовый(test.txt) файл приблизительно такого содержания
@1100
31 40 00 0A B2 40 80 5A 20 01 3F 40 E8 FD B0 12
40 24 C2 43 33 00 F2 43 32 00 D2 C3 32 00 F2 43
31 00 F2 C0 20 00 31 00 C2 43 26 00 F2 43 22 00
F2 C0 56 00 22 00 F2 D2 22 00 F2 D0 20 00 22 00
F2 D0 80 00 22 00 F2 C0 A8 00 21 00 C2 43 24 00
E2 D2 25 00 E2 D3 24 00 E2 D3 25 00 F2 D0 40 00
24 00 F2 D0 40 00 25 00 C2 43 2E 00 F2 43 2A 00
B0 12 80 2C 1F 53 47 57 47 57 47 57 47 57 4C 57
CD 4C 00 00 1D 53 1E 83 EC 23 E9 3F
@FFE0
00 11 48 38 00 11 00 11 D6 37 00 11 86 38 4A 38
00 11 00 11 00 11 40 38 00 11 7E 38 00 11 00 11
@1000
00 00 40 00 00 00 00 00 01 00 00 00 00 00 00 00
0A 01 02 03 04 05 06 07
@FFC0
31 32 38
@FFD0
30 30 30 30 32 32
@1100, @FFE0, @1000 и т.д - это адреса
31 40 00 0A ... - это данные которые надо записать начиная с соответствующего адреса
Адреса идут неравномерно , т.е. сначало может идти @FFFE, а потом @1000
Максимальный адрес @FFFF, то есть в файле может быть 65536 значений данных (31h, 40h, 00h...)
Как грамотно и максимально быстро записать указанные данные по соответствующим адресам в массив байт
Buffer[0..65535]:Array of byte? Данные в текстовом файле разделены пробелом 31пробел00.
← →
Kair © (2004-12-22 14:07) [1]
var
f: TextFile;
s, ss: String;
buf: array [0..65535] of array of Byte;
n: Integer;
begin
n := 0;
AssignFile(f, "test.txt");
Reset(f);
while not EOF(f) do
begin
Readln(f, s);
if Pos("@", s) > 0 then
begin
Delete(s, 1, 1);
n := StrToInt("$" + s);
s := "";
end else
begin
if s[Length(s)] <> #32 then s := s + #32;
while Pos(#32, s) > 0 do
begin
ss := Trim(Copy(s, 1, Pos(#32, s) - 1));
Delete(s, 1, Pos(#32, s));
SetLength(buf[n], Length(buf[n]) + 1);
buf[n, Length(buf[n]) - 1] := StrToInt("$" + ss);
end;
end;
end;
CloseFile(f);
end;
← →
Johnmen © (2004-12-22 15:16) [2]http://delphimaster.net/view/1-1103710048/
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.09;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.037 c