С Новым годом! Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
0 / 0 / 0
Регистрация: 31.05.2018
Сообщений: 30
RAD XE3+

List.loadfromStream не работает

04.06.2018, 22:15. Показов 2087. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу понять почему, но не работает простейшая функция.
Я делаю шифрование в своем проекте, используя модуль от Матвеева
Вот как работает расшифровка
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.Button4Click(Sender: TObject);
// расшифровка
var
  Str1, Str2 : TFileStream;
  StringStream:TStringStream;
    List:TStringList;
begin
 Str1 := TFileStream.Create('General2.dat', fmOpenRead);// загружает из файла в поток
 StringStream:=TStringStream.Create();
 DecryptCopy(StringStream, Str1, Str1.Size, key); // расшифровывает поток Str1 в StringStream
 Str1.free;
 List:=TStringList.Create;
 
 List.LoadFromStream(StringStream); // ничего не загружает, лист остается пустым!
 
 Str2 := TFileStream.Create('General2.dat', fmCreate);
 Str2.CopyFrom(StringStream,0); // записываем расшифрованное обратно в файл
 StringStream.Free;
 Str2.Free;
end;
Может быть кто-то знает в чем причина?
Вложения
Тип файла: rar IDEA.rar (657.0 Кб, 2 просмотров)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.06.2018, 22:15
Ответы с готовыми решениями:

Как загрузить переменную типа string в XMLDocument1.LoadFromStream(); или XMLDocument1.LoadFromFile(); ?
Как загрузить переменную типа string в XMLDocument1.LoadFromStream(); или XMLDocument1.LoadFromFile(); ? var response:string; ...

Определить наличие у хранимого типа методов SaveToStream и LoadFromStream
Есть шаблонный динамический массив по назначению аналогичный std::vector Массив имеет методы сериализации/десериализации SaveToStream и...

SaveToStream/LoadFromStream - использовать потоки вместо сохранения в файл
Добрый день. Встал перед проблемой, которую решил решить через Stream. (интуитивно предполагаю что можно) Сама проблема банальна и...

9
Злостный нарушитель
 Аватар для Verevkin
10248 / 5675 / 1262
Регистрация: 12.03.2015
Сообщений: 26,298
04.06.2018, 22:28
Поставь брейкпойнт на 14 строку и посмотри, чему равен StringStream.Size.
0
5957 / 4533 / 1094
Регистрация: 29.08.2013
Сообщений: 28,133
Записей в блоге: 3
04.06.2018, 22:31
а посмотреть процедуру DecryptCopy?
а отладчиком пройтись?
0
0 / 0 / 0
Регистрация: 31.05.2018
Сообщений: 30
04.06.2018, 23:04  [ТС]
Поставь брейкпойнт на 14 строку и посмотри, чему равен StringStream.Size.
То есть stringstream не пустой. Ну это и понятно, если бы этот поток был бы пустой, то файл не шифровался\расшифровывался бы.
Вообще загадка какая-то.
Миниатюры
List.loadfromStream не работает  
0
Злостный нарушитель
 Аватар для Verevkin
10248 / 5675 / 1262
Регистрация: 12.03.2015
Сообщений: 26,298
04.06.2018, 23:11
Заинтриговал.
Возможно, TStringlist грузит до 1-го нуля.
0
Злостный нарушитель
 Аватар для Verevkin
10248 / 5675 / 1262
Регистрация: 12.03.2015
Сообщений: 26,298
04.06.2018, 23:34
Скажи, а зачем тебе тут вообще работа с текстом? Шифрование жэж! Отсюда и косяки с нулями в неожиданных местах.



0
0 / 0 / 0
Регистрация: 31.05.2018
Сообщений: 30
04.06.2018, 23:43  [ТС]
Цитата Сообщение от Verevkin Посмотреть сообщение
Заинтриговал.
Возможно, TStringlist грузит до 1-го нуля.
Знаешь твоя фраза и кое-что из хелпа
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.Button1Click(Sender: TObject);
var
  TempStream : TMemoryStream;
begin
  TempStream := TMemoryStream.Create;
  ListBox1.Items.SaveToStream(TempStream);  // Write list box contents to the
                                            // stream.
  TempStream.Position := 0;      // Reset to the beginning of the stream.
  RichEdit1.Lines.LoadFromStream( TempStream); // Load stream contents into rich 
                                               // edit control.
  TempStream.Free;
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  ListBox1.Items.Add('Apples');
  ListBox1.Items.Add('Oranges');
  ListBox1.Items.Add('Pears');
end;
навели меня на мысль.
Я добавил новую строчку
Delphi
1
StringStream.Position := 0;
и вроде как все работает.

Добавлено через 2 минуты
Скажи, а зачем тебе тут вообще работа с текстом? Шифрование жэж! Отсюда и косяки с нулями в неожиданных местах.
а я его шифрую, работаю с ним, а потом обратно зашифровываю. Сначала хотел вообще все по строчкам шифровать с разными ключами для разных блоков текста, но там еще более загадочная ошибка вылезла, и я решил забить.

Добавлено через 1 минуту
Забавно что ты тоже догадался о
StringStream.Position := 0;
, ох!
Круто. У тебя очень быстрый ум, а я целый день сидел, и не догадался, потому что в хелпе сволочи ничего не сказали про то что от позишина читается, вообще ничего. Твари.
0
Злостный нарушитель
 Аватар для Verevkin
10248 / 5675 / 1262
Регистрация: 12.03.2015
Сообщений: 26,298
04.06.2018, 23:56
Цитата Сообщение от BestHelp Посмотреть сообщение
Забавно что ты тоже догадался о
Ну так посмотри на скриншоты. Не работает жэж, всё равно.
Не работай с зашифрованными данными как с текстом и всё будет OK.
Цитата Сообщение от BestHelp Посмотреть сообщение
Круто. У тебя очень быстрый ум, а я целый день сидел, и не догадался
Может быть потому, что я ведущий IT-инженер и 17 лет работаю программистом на военном заводе?
А может и нет.

1
0 / 0 / 0
Регистрация: 31.05.2018
Сообщений: 30
05.06.2018, 00:37  [ТС]
Ну так посмотри на скриншоты. Не работает жэж, всё равно.
у меня заработало.

Не работай с зашифрованными данными как с текстом и всё будет OK.
Так я его сначала расшифровываю, а потом уже работаю с ним как с текстом Как иначе-то?
Миниатюры
List.loadfromStream не работает  
0
0 / 0 / 0
Регистрация: 31.05.2018
Сообщений: 30
05.06.2018, 01:15  [ТС]
ха-ха теперь SavetoStream не работает ))
Ой вей.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
05.06.2018, 01:15
Помогаю со студенческими работами здесь

Не переключаться вид отображения товара. Переключаться с grid на list, а вот с price на list и grid не работает
Не переключаться вид отображения товара. Переключаться с grid на list и наоборот, а вот с price на list и grid не работает. Как поправить?...

Memo1.loadfromfile/loadfromstream ошибка, если имя файла киррилица
В общем ошибка: Хоть loadfromfile, хоть loadfromstream. Переименовываем файл латиницей - все хорошо. Есть инфо, как бороцца?

Конвертировать один элемент из List<List<Class>> в list и string
Как можно перевести один выбранный элемент из List&lt;List&lt;Data&gt;&gt; myList в list и string? Например, myList. Сейчас я могу с помощью...

Linq преобразование List<List<double>> в List<Array>
Доброго времени суток, данный код нужно преобразовать linq выражениями и дописать выборку из List&lt;List&lt;double&gt;&gt;. Таким...

Определить предикат Р(List,Х) который истинен если Х состоит из пар элементов списка List,сумма которых больше половины элементов List
Помогите пожалуйста написать программу,буду очень благодарен,заранее спасибо! Определить предикат Р(List,Х) который истинен если Х...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru