![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Всем привет. Есть строка вида:
Цитата:
Цитата:
Пишу следующую процедуру и всё отображается не так как задумывал: Код:
procedure TEditor.StrToTBytes(const str: String);
var
I: Integer;
S: String;
begin
S := str;
CT := TStringList.Create;
CT.LoadFromFile('code.tbl');
S := StringReplace(S, #13, '', [rfReplaceAll]);
S := StringReplace(S, #10, '', [rfReplaceAll]);
for I := $00 to $FF do begin
S := StringReplace( S,
CT.Values[IntToHex(I, 2)],
'<$'+IntToHex(I, 2)+'>',
[rfReplaceAll]
);
ShowMessage(S);
// Тут должно быть продолжение парсинга, но уже что-то не так
CT.Free;
end;Последний раз редактировалось otRock, 30.03.2011 в 12:21. |
|
#2
|
|||
|
|||
|
чет меня вот это смущает:
Код:
for I := $00 to $FF do begin
S := StringReplace( S,
CT.Values[IntToHex(I, 2)],
'<$'+IntToHex(I, 2)+'>',
[rfReplaceAll]
); |
|
#3
|
|||
|
|||
|
и у вас CT.Free внутри цикла, т.е. после первого прохода... объекта CT уже нет!
|
|
#4
|
|||
|
|||
|
Да, так и есть, например строка:
Цитата:
Цитата:
|
|
#5
|
|||
|
|||
|
Цитата:
|
|
#6
|
|||
|
|||
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
I: Integer;
S: String;
CT : TStringList;
begin
S := edit1.text;
CT := TStringList.Create;
CT.LoadFromFile('c:\code.tbl.txt');
S := StringReplace(S, #13, '', [rfReplaceAll]);
S := StringReplace(S, #10, '', [rfReplaceAll]);
for I := 0 to CT.Count-1 do begin
S := StringReplace( S,
CT.Values[CT.Names[i]],
'<$'+CT.Names[i]+'>',
[rfReplaceAll]
);
// Òóò äîëæíî áûòü ïðîäîëæåíèå ïàðñèíãà, íî óæå ÷òî-òî íå òàê
end; ShowMessage(S);
CT.Free;
end; |
|
#7
|
|||
|
|||
|
После твоей процедуры получается:
Цитата:
|
|
#8
|
|||
|
|||
|
странно что у вас такой результат у меня с вашей строкой и файлом:
Код:
<$14><$2F><$0930><$0A41>[Butt<$7E>n Squa<$81><$74>]<$3E><$57><$74><$7B><$7B><$7E><$74><$3A><$74><$7E> <$81><$7B><$73><$3B><$3B><$3B><$00> Вы часом ее не в цикле вызываете? |
|
#9
|
|||
|
|||
|
Цитата:
Цитата:
Подозреваю что необходимо использовать регулярки, но с ними не дружу.. буду благодарен, если поможете ![]() |