Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2013, 12:05   #1
Volkogriz
Форумчанин
 
Аватар для Volkogriz
 
Регистрация: 11.10.2007
Сообщений: 384
Вопрос TMemoryStream

Доброе время суток!
Помогите вывести MemoryStream в Memo1 не выходит ни как(
PHP код:
var
  
passwordstring;

function 
TForm1.chislointeger;
var
 
i:integer;
begin
 
for i:=0 to Length(password) do
  
result:=result+Ord(password[i])+17;
end;

procedure TForm1.FormCreate(SenderTObject);
var
 
d:byte;
 
w,i:integer;
 
ms,mskTMemoryStream;
 
MemoryStreamSecStream:TMemoryStream;
 
leninteger;
 
begin
MemoryStream
:=TMemoryStream.Create;
begin
 password
:=Trim('djcf78nf0a9sl34');
 
ms:=TMemoryStream.Create;
 
msk:=TMemoryStream.Create;
 
ms.SetSize(ms.Size);
 
msk.SetSize(msk.Size);
 
ms.LoadFromFile('coded_1.txt');
 for 
i:=0 to ms.Size-do
  
begin
   ms
.Position:=i;
   
msk.Position:=i;
   
ms.Read(d,1);
   
d:=d-((i*85)-i+chislo+28*i+(2*i+5-i-1));
   
msk.Write(d,1);
   
end;
Memo1.Lines.LoadFromStream(msk);
ms.Free;
msk.Free;
end;
end
С уважением,
Volkogriz!
Не количеством плюсов измеряется репутация человека...!
Volkogriz вне форума Ответить с цитированием
Старый 09.01.2013, 12:34   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

1. MemoryStream - для чего создается и и не уничтожается?
2. ms.SetSize(ms.Size); и msk.SetSize(msk.Size); зачем?
3. Перед циклом вставьте ms.Position:=0; и в цикле ms.Position:=i; и msk.Position:=i; не нужны
4. Уверены, что после преобразования будут отображаемые символы и значение d не вывалится за пределы Byte?
5. Перед Memo1.Lines.LoadFromStream(msk); вставьте msk.Position:=0;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 09.01.2013 в 12:36.
Аватар вне форума Ответить с цитированием
Старый 09.01.2013, 12:55   #3
Slym
Участник клуба
 
Регистрация: 07.12.2011
Сообщений: 1,025
По умолчанию

Код:
function chislo(const Str:string): integer;
var 
 i:integer; 
begin 
 for i:=1 to Length(Str) do
  result:=result+Ord(Str[i])+17;
end;

procedure TForm1.FormCreate(Sender: TObject); 
var 
  Input:TFileStream;
  Output:TMemoryStream;
  d:byte;
  i,ch:integer;
begin
  ch:=chislo(Trim('djcf78nf0a9sl34'));
  Output:=TMemoryStream.Create;
  try
    Input:=TFileStream.Create('coded_1.txt',fmOpenRead);
    try
      i:=0;
      while Input.Read(d,SizeOf(d))>0 do
      begin
        d:=d-((i*85)-i+ch+28*i+(2*i+5-i-1));
        Output.Write(d,1);
        inc(i);
      end;
    finally
      Input.Free;
    end;
    Output.Position:=0;
    Memo1.Lines.LoadFromStream(Output);
  finally
    Output.Free;
  end;
end;
Не стесняемся, плюсуем!
Slym вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TMemoryStream AET Общие вопросы Delphi 6 09.07.2011 07:05
string и TMemoryStream xrob Общие вопросы Delphi 10 22.05.2011 14:07
TMemoryStream и Zlib Sanprof Общие вопросы Delphi 13 28.05.2010 16:43
TMemoryStream Владимир1988 Помощь студентам 0 13.02.2010 13:04