Форум: "Начинающим";
Текущий архив: 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