Форум: "Начинающим";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
ВнизПредставление строки как последовательности байтов.. Найти похожие ветки
← →
pathfinder (2006-10-23 18:44) [0]Добрый вечер.
Подскажите пожалуйста, как представить строку в виде последовательности байтов?
Т.е. например текстовый файл можно с помощью Stream.ReadBuffer, а если исходный текст надо взять не из файла, а из string?
← →
Dmitrij_K (2006-10-23 18:48) [1]
Pointer(String)^
@String[1]
PChar(String)
← →
Джо © (2006-10-23 18:54) [2]Stream.Read(S[1],Length(S));
← →
GanibalLector © (2006-10-23 18:55) [3]
var Line:String;
I:Integer;
begin
Line:="1234567890";
for I:=1 to Length(Line) do
Memo1.Lines.Add(IntToHex(Byte(Line[I]),2));
end;
ТипО :Byte(переменная_String[..])
← →
Ketmar © (2006-10-23 18:56) [4]>[2] Джо(c) 23-Oct-2006, 18:54
>Stream.Read(S[1],Length(S));
неа.if s <> "" then Stream.Read(S[1],Length(S));
. %-)
← →
Джо © (2006-10-23 19:00) [5]> [4] Ketmar © (23.10.06 18:56)
> >[2] Джо(c) 23-Oct-2006, 18:54
> >Stream.Read(S[1],Length(S));
> неа.
Вот же ж. Буду и я "буквалистом". Сказано ж, "представить строку в виде последовательности байтов". А ежели нет байтов, то и "представлять" нечего. Не считая того обстоятельства, что строка и так есть "последовательность байтов" и представлять ничего не надо... :о)
← →
Ketmar © (2006-10-23 19:03) [6]>[5] Джо(c) 23-Oct-2006, 19:00
ну тогда давай вспомним, что в AnsiString есть ещё reference counter, который тоже может входить в "последовательность байтов". и тогда наш код вообще напрочь неверен. %-)
← →
Джо © (2006-10-23 19:10) [7]> [6] Ketmar © (23.10.06 19:03)
Reference counter фигня, там еще поле длины есть. Да, нужно код переписывать с отрицательным смещением и писать в стрим сразу весь гамуз :)
← →
pathfinder (2006-10-23 19:10) [8]Тут суть вот в чем. Мне было надо, чтобы зашифровать содержимое этой строки xor-ом. Было замечено, что если работать со строкой как с последовательностью символов, то в случае, если на выходе получается код какого-нибудь символа типа конец строки, то происходит облом. А если обрабатывать текст побайтово, то вроде все ок.. С файлами я использую TFileStream, а со строками значит TStringStream надо?
← →
Ketmar © (2006-10-23 19:11) [9]>[7] Джо(c) 23-Oct-2006, 19:10
>Reference counter фигня, там еще поле длины есть.
ну я ж не мог обо всём сразу сказать! надо было и тебе что-то оставить. %-)
← →
Джо © (2006-10-23 19:13) [10]> [8] pathfinder (23.10.06 19:10)
Привел-бы ты код или хотя бы людское его описание. Ничего не понятно, честно слово.
← →
Ketmar © (2006-10-23 19:14) [11]>[8] pathfinder 23-Oct-2006, 19:10
>работать со строкой как с последовательностью символов, то
>в случае, если на выходе получается код какого-нибудь
>символа типа конец строки, то происходит облом.
ни разу не происходит. %-) отлично всё работает. "облом" происходит при попытке загрузить такой файл стандартными средствами типа "TStrings.LoadFromFile()" (каковые используются в TMemo сотоварищи).
по-уму -- не лучше ли сделать наследника от TStream, который обеспечивает "прозрачное" шифрование, и подсовывать его в метод "LoadFromStream()"?
← →
pathfinder (2006-10-23 19:19) [12]
> ни разу не происходит. %-) отлично всё работает. "облом"
> происходит при попытке загрузить такой файл стандартными
> средствами типа "TStrings.LoadFromFile()" (каковые используются
> в TMemo сотоварищи).
> по-уму -- не лучше ли сделать наследника от TStream, который
> обеспечивает "прозрачное" шифрование, и подсовывать его
> в метод "LoadFromStream()"?
а мне полюбому этот текст потом надо грузить стандартными средствами:(
я хочу шифровать пароли, которые будут прописаны в ини-файле..
как же тогда лучше сделать?
← →
Ketmar © (2006-10-23 19:24) [13]>[12] pathfinder 23-Oct-2006, 19:19
>как же тогда лучше сделать?
сочинить алгоритм, который не позволит появляться символам с кодом меньше пробела.
← →
Anatoly Podgoretsky © (2006-10-23 19:28) [14]Если текст складывать с XOR то он перестает быть текстом и использовать текстовые функции к нему неправильно.
← →
pathfinder (2006-10-23 19:42) [15]
> Anatoly Podgoretsky © (23.10.06 19:28) [14]
> Если текст складывать с XOR то он перестает быть текстом
> и использовать текстовые функции к нему неправильно.
Как же тогда быть? Шифровать смещением? Или использовать готовый алгоритм? Есть ли какой-нибудь алгоритм, чтобы не надо было долго разбираться и была более менее приличная стойкость шифра?
← →
Ketmar © (2006-10-23 19:48) [16]>[15] pathfinder 23-Oct-2006, 19:42
"более менее приличная стойкость шифра" никак не сочетается с твоей задачей.
← →
pathfinder (2006-10-23 19:51) [17]
> >[15] pathfinder 23-Oct-2006, 19:42
> "более менее приличная стойкость шифра" никак не сочетается
> с твоей задачей.
ну тогда пусть менее чем приличная)
← →
Ketmar © (2006-10-23 20:07) [18]>[17] pathfinder 23-Oct-2006, 19:51
>ну тогда пусть менее чем приличная)
[13] %-)
например, прибавляй 1 ко всем символам кроме #255.
← →
Anatoly Podgoretsky © (2006-10-23 20:25) [19]
> Как же тогда быть? Шифровать смещением? Или использовать
> готовый алгоритм? Есть ли какой-нибудь алгоритм, чтобы не
> надо было долго разбираться и была более менее приличная
> стойкость шифра?
Дело не в этом, все равно любой алгоритм приведет к тому же вопросу.
Если ты хочешь работать с результатом как с текстом, то надо использовать одну из транспортных упаковок, наприме Base64, Hex, UrlEncode и так далее.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.11.05;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.043 c