![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
HEX [D7, XP]
Adios © (2007-09-13 08:33:00)
procedure hex2string(st:string);
var Source: string;
begin
source:=st;
with TStringList.Create do
try
Text := StringReplace(Source, #32, #13#10, [rfReplaceAll]);
S := '';
for t := 0 to Count - 1 do
S := S + Chr(StrToInt('$' + Strings[t]));
finally
Free;
end;
end;
и теперь вопрос:
почему когда я передаю параметр '00' то S получается пустая и в мемо я её добавить не могу, а очень надо чтобы добавлялось.
Сергей М. (2007-09-13 10:10:00) [1]Да на здоровье, открывай ты его чем угодно)
Но не обзывай файл текстовым, если он таковым на самом деле не является)
Adios (2007-09-13 10:06:00) [2]да, но если этот файл вскрыть потом хекс-редактором то получится именно то что мне было нужно
Сергей М. (2007-09-13 10:04:00) [3]
> test. txt
С какого перепугу файл текстовый?
Текстовый файл подразумевает содержание кодов печатных символов и символов управления. А у тебя в hex-строке встречаются нулевые коды, которые не относятся ни к печатным ни к управляющим.
Adios (2007-09-13 10:02:00) [4]Удалено модератором
Примечание: мат, три дня RO
Adios (2007-09-13 09:57:00) [5]
function hex2string(st:string):string;
var Source: string;
begin
source:=st;
with TStringList.Create do
try
Text := StringReplace(Source, #32, #13#10, [rfReplaceAll]);
S := '';
for t := 0 to Count - 1 do
S := S + Chr(StrToInt('$' + Strings[t]));
result:=s;
finally
Free;
end;
end;
AssignFile(imp, Label1.Caption+'test.txt');
Append(imp);
write(imp,hex2string(edit1.text));
CloseFile(imp);
Сергей М. (2007-09-13 09:51:00) [6]А причем тут файл и метод доступа к нему ?
> онаже переменную объявляет
Кто "она" ?
hex2string что ли ?
Нет там у тебя никаких упоминаний о файле, ни в самом названии функции ни в ее теле.
Anatoly Podgoretsky (2007-09-13 09:51:00) [7]Надо бы соответствую конференцию - для недоначинающих
Palladin (2007-09-13 09:49:00) [8]северный пушной зверек просто :)
Adios (2007-09-13 09:43:00) [9]ну онаже переменную объявляет, файл открыть для добавленя в конец и функцией WRITE дописывать значения в файл.
Сергей М. (2007-09-13 09:40:00) [10]
> надо было вместе с процедурой из первого поста использовать
> паскалевский метод доступа
Чегоооо ?!
Adios (2007-09-13 09:37:00) [11]ПОЛУЧИЛОСЬ!!, надо было вместе с процедурой из первого поста использовать паскалевский метод доступа!!
Anatoly Podgoretsky (2007-09-13 09:37:00) [12]> Adios (13.09.2007 09:14:15) [15]
Форум то для начинающих, а тебе пока еще рано.
Сначало надо немного почитать литературу.
Сергей М. (2007-09-13 09:30:00) [13]
procedure HexToBinFile(HexString, FileName: String);
begin
HexString := AnsiLowerCase(StringReplace(HexString, ' ', '', [rfReplaceAll]));
with TMemoryStream.Create do
try
Size := Length(HexString) div 2;
if HexToBin(HexString, Memory, Size) = 0 then
ms.SaveToFile(FileName);
finally
Free;
end;
end;
Adios (2007-09-13 09:14:00) [14]потому и задаю вопросы в соответствующем форуме, тогда посоветуй книгу, если можно то со ссылкой.
Palladin (2007-09-13 09:12:00) [15]
> может мемо использовать не стоит, тогда что надо?
надо литературу по паскалю использовать и иметь понимание как информация хранится и что это вообще такое, информация, данные, а так же что является строкой и тд и тп... короче учится тебе нужно...
Anatoly Podgoretsky (2007-09-13 09:09:00) [16]
> может мемо использовать не стоит, тогда что надо?
Вернуть ноутбук санитарам.
Adios (2007-09-13 09:07:00) [17]может мемо использовать не стоит, тогда что надо?
Palladin (2007-09-13 09:07:00) [18]ты ерундой занимаешься, конечно же в string можно хранить и нечитаемые символы, но на кой хрен их в txt файл то записывать? в блокноте что ли его открывать...
Function SaveHexToNatFile(Const s,p_strFileName:String);
Var
i,p:Integer;
f:File;
b:Array [0..32*1024-1] Of Byte;
Begin
p:=0;
AssignFile(f,p_strFileName); Rewrite(f,1);
For i:=1 to Length(s) Do
If s[i]=' ' Then
Begin
b[p]:=StrToInt('$'+s[i-2]+s[i-1]);
Inc(p);
If p=32*1024-1 Then
Begin
p:=0;
BlockWrite(f,b,SizeOf(b));
End;
End;
BlockWrite(f,b,p);
CloseFile(f);
End;
SaveHexToNatFile('01 00 00 00 36 00 00 00 0D ','c:\dump.txt');
а на кой memo вообще использовать понятия не имею... как ты в мемо выведешь символ окончания строки 0 ?
Anatoly Podgoretsky (2007-09-13 09:06:00) [19]
> тоесть надо 00 00 00(32 36 35)00 00 00 привести к текстовому
> виду и добавить в мемо, проблема в том что 00 00 00 не добавляется
> в мемо
А что ты ожидаешь там увидеть, это же не печатные символы.
Anatoly Podgoretsky (2007-09-13 09:05:00) [20]
> жестоко...
Не то слово