Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];

Вниз

HEX   Найти похожие ветки 

 
Adios ©   (2007-09-13 08:33) [0]

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 получается пустая и в мемо я её добавить не могу, а очень надо чтобы добавлялось.


 
Palladin ©   (2007-09-13 08:40) [1]

жестоко...


 
Palladin ©   (2007-09-13 08:41) [2]

а что эта функция делать то должна?


 
Adios ©   (2007-09-13 08:41) [3]

если в хексе то надо чтобы получилось так 000000(323635)000000
число в скобках может быть произвольное и потом всё это дело надо сохранить в .ТХТ


 
Adios ©   (2007-09-13 08:42) [4]

)) я знаю что жостко, всю ночь справки рою уже))


 
Adios ©   (2007-09-13 08:44) [5]

тоесть надо 00 00 00(32 36 35)00 00 00 привести к текстовому виду и добавить в мемо, проблема в том что 00 00 00 не добавляется в мемо


 
Palladin ©   (2007-09-13 08:45) [6]

а "00 00 00(32 36 35)00 00 00" это не текстовый вид?


 
Palladin ©   (2007-09-13 08:46) [7]

ты же на входе строку передаешь, и на выходе строка, я чей то не пойму просто каким образом она у тебя должна трансформироваться, точнее я вижу что она у тебя трансформируется, но действие сие для строк вообще то некорректно


 
Adios ©   (2007-09-13 08:51) [8]

ХЕКС значение выглядит так: 01 00 00 00 36 00 00 00 0D
а текст примерно так:    6  

тоесть после 6 три пробела и как я понял перезод на другую строку


 
Anatoly Podgoretsky ©   (2007-09-13 09:05) [9]


> жестоко...

Не то слово


 
Anatoly Podgoretsky ©   (2007-09-13 09:06) [10]


> тоесть надо 00 00 00(32 36 35)00 00 00 привести к текстовому
> виду и добавить в мемо, проблема в том что 00 00 00 не добавляется
> в мемо

А что ты ожидаешь там увидеть, это же не печатные символы.


 
Palladin ©   (2007-09-13 09:07) [11]

ты ерундой занимаешься, конечно же в 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 ?


 
Adios ©   (2007-09-13 09:07) [12]

может мемо использовать не стоит, тогда что надо?


 
Anatoly Podgoretsky ©   (2007-09-13 09:09) [13]


> может мемо использовать не стоит, тогда что надо?

Вернуть ноутбук санитарам.


 
Palladin ©   (2007-09-13 09:12) [14]


> может мемо использовать не стоит, тогда что надо?

надо литературу по паскалю использовать и иметь понимание как информация хранится и что это вообще такое, информация, данные, а так же что является строкой и тд и тп... короче учится тебе нужно...


 
Adios ©   (2007-09-13 09:14) [15]

потому и задаю вопросы в соответствующем форуме, тогда посоветуй книгу, если можно то со ссылкой.


 
Сергей М. ©   (2007-09-13 09:30) [16]

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;


 
Anatoly Podgoretsky ©   (2007-09-13 09:37) [17]

> Adios  (13.09.2007 09:14:15)  [15]

Форум то для начинающих, а тебе пока еще рано.
Сначало надо немного почитать литературу.


 
Adios ©   (2007-09-13 09:37) [18]

ПОЛУЧИЛОСЬ!!, надо было вместе с процедурой из первого поста использовать паскалевский метод доступа!!


 
Сергей М. ©   (2007-09-13 09:40) [19]


> надо было вместе с процедурой из первого поста использовать
> паскалевский метод доступа


Чегоооо ?!


 
Adios ©   (2007-09-13 09:43) [20]

ну онаже переменную объявляет, файл открыть для добавленя в конец и функцией WRITE дописывать значения в файл.


 
Palladin ©   (2007-09-13 09:49) [21]

северный пушной зверек просто :)


 
Anatoly Podgoretsky ©   (2007-09-13 09:51) [22]

Надо бы соответствую конференцию - для недоначинающих


 
Сергей М. ©   (2007-09-13 09:51) [23]

А причем тут файл и метод доступа к нему ?


> онаже переменную объявляет


Кто "она" ?
hex2string что ли ?
Нет там у тебя никаких упоминаний о файле, ни в самом названии функции ни в ее теле.


 
Adios ©   (2007-09-13 09:57) [24]

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);


 
Adios ©   (2007-09-13 10:02) [25]

Удалено модератором
Примечание: мат, три дня RO


 
Сергей М. ©   (2007-09-13 10:04) [26]


> test.txt


С какого перепугу файл текстовый ?

Текстовый файл подразумевает содержание кодов печатных символов и символов управления. А у тебя в hex-строке встречаются нулевые коды, которые не относятся ни к печатным ни к управляющим.


 
Adios ©   (2007-09-13 10:06) [27]

да, но если этот файл вскрыть потом хекс-редактором то получится именно то что мне было нужно


 
Сергей М. ©   (2007-09-13 10:10) [28]

Да на здоровье, открывай ты его чем угодно)
Но не обзывай файл текстовым, если он таковым на самом деле не является)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.05 c
15-1189279993
vasIZmax
2007-09-08 23:33
2007.10.14
Традиции программирования


1-1185959937
DevilDevil
2007-08-01 13:18
2007.10.14
Log call-stack


2-1190027016
DevilDevil
2007-09-17 15:03
2007.10.14
Открыто ли модальное окно?


2-1189658032
Adios
2007-09-13 08:33
2007.10.14
HEX


15-1189883937
Галинка
2007-09-15 23:18
2007.10.14
Игра Die Siedler





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский