Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

HEX [D7, XP]


Страницы:   1 2

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]


> жестоко...

Не то слово


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо