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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2011, 15:36   #1
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
Вопрос Перенести результат декодирования Base64 в RichEdit

Добрый день! Нарыл где-то код, который декодирует зашифрованный алгоритмом Base64 текст. Код:
Код:
procedure TForm1.Button2Click(Sender: TObject);
Var
base64File:TextFile;
BufStr:String;
base64String:String;
Base64:TBase64;
hFile:Integer;
begin
OpenDialog1.Title:='Выбор файла для base64 декодирования';
SaveDialog1.Title:='Укажите имя декодированного файла';
If Not OpenDialog1.Execute Then Exit;
If Not SaveDialog1.Execute Then Exit;
Label1.Caption:='Декодирую файл. Ждите...';
Application.ProcessMessages;
AssignFile(base64File,OpenDialog1.FileName);
Reset(base64File);
hFile:=FileCreate(SaveDialog1.FileName);
While Not EOF(base64File) Do
Begin {While Not EOF}
Readln(base64File,BufStr);
While Length(BufStr) > 0 Do
Begin {While Length}
base64String:=Copy(BufStr,1,4);
Delete(BufStr,1,4);
Base64:=DecodeBase64(base64String);
FileWrite(hFile,Base64.ByteArr,Base64.ByteCount);
End;  {While Length}
End;  {While Not EOF}
Label1.Caption:='';
FileClose(hFile);
CloseFile(base64File);

ShowMessage('Файл декодирован!');
end;
Декодирует нормально. Но, вопрос вот в чем. Как перенести расшифрованный текст в RichEdit? Я пытался сделать, но у меня из расшифрованного файла грузится только первая строка и все.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 13.04.2011, 15:39   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а Lines.LoadFromFile не срабатывает?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.04.2011, 15:39   #3
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Забавно.

Проблема в занесении строки в RichEdit, но ты почему-то решил выложить код декодирования. Где логика?

Покажи данные, которые ты заносишь в RichEdit, и код, которым ты это делаешь. Может у тебя там #0 попадает. Может ещё что-то.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 13.04.2011, 16:00   #4
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

Цитата:
а Lines.LoadFromFile не срабатывает?
Нет, не срабатывает.
Цитата:
Покажи данные, которые ты заносишь в RichEdit
Сами данные показать не могу, секретная, персональная информация.
Цитата:
и код, которым ты это делаешь
В смысле? Данные не кодом заносятся, а берутся из файла.
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 13.04.2011, 16:13   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Цитата:
Сообщение от artemavd Посмотреть сообщение
В смысле? Данные не кодом заносятся, а берутся из файла.
А берутся-то как? Божьим духом, или всё же у тебя стоит LoadFromFile или что-то ещё?

Цитата:
Сообщение от artemavd Посмотреть сообщение
Сами данные показать не могу, секретная, персональная информация.
Ну ёлки-палки, открой файл в редакторе, замени всю sensitive инфу X-ми и игреками. Желательно делать в HEX-редакторе, чтоб не изменить важные куски.

Кстати, в обычном редакторе как открывается?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума Ответить с цитированием
Старый 13.04.2011, 16:22   #6
artemavd
Старожил
 
Аватар для artemavd
 
Регистрация: 05.06.2008
Сообщений: 4,210
По умолчанию

В обычном редакторе открывается.
Вот, сам исходник кодирования-декодирования.
Вложения
Тип файла: zip Example2.zip (212.0 Кб, 17 просмотров)
Тип файла: zip тест.zip (467 байт, 12 просмотров)
Не стоит смеяться над человеком делающим шаг назад, возможно он делает разбег.
artemavd вне форума Ответить с цитированием
Старый 13.04.2011, 21:08   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Попробовал, нормально грузится:
Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  RichEdit.Lines.LoadFromFile('E:\тест');
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 13.04.2011, 21:29   #8
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,434
По умолчанию

А зачем всё так усложнять?


Код:
interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs,EncdDecd, StdCtrls, ComCtrls;

type
  TForm2 = class(TForm)
    Button1: TButton;
    RichEdit1: TRichEdit;
    RichEdit2: TRichEdit;
    Button2: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form2: TForm2;

implementation

{$R *.dfm}

procedure TForm2.Button1Click(Sender: TObject);
begin
 RichEdit2.Text:=EncodeString(RichEdit1.Text);
 RichEdit1.Clear;
end;

procedure TForm2.Button2Click(Sender: TObject);
begin
 RichEdit1.Text:=DecodeString(RichEdit2.Text);
 RichEdit2.Clear;
end;
Добавить цикл по строчкам и стринглист.

На d2010 кодирует и русские букафки. На 7-ке только англицкие.

Последний раз редактировалось Человек_Борща; 13.04.2011 в 21:32.
Человек_Борща вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Base64 GoldmasteR Общие вопросы Delphi 10 06.01.2011 18:37
Нужна функция декодирования PDU AquaKlaster Общие вопросы Delphi 5 03.10.2010 15:45
base64 beemoto Общие вопросы Delphi 0 24.04.2010 21:58
base64 Dimarik Win Api 0 10.04.2010 18:59
Как перенести содержимое RichEdit на HTML-страницу??? Chuser Компоненты Delphi 1 14.03.2007 14:47