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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.03.2016, 22:16   #1
АлександрDelphi
Форумчанин
 
Аватар для АлександрDelphi
 
Регистрация: 28.02.2016
Сообщений: 115
По умолчанию Encode64 Как сделать что бы выводило нормально ключ

Вот код у меня получается какой то корявый ключ я не пойму как настроить код что бы выдавало нормальный ключ..
Код:
Codes64 = 'Тут надо какие то символы что бы ключ нормальный был пробовал разное но  без результата ';
Код:
const
Codes64 = 'abcdefghijklmnopqrstuvwxyz./@#$%:";*=-_';
function Encode64(S: string): string;
var
i: Integer;
a: Integer;
x: Integer;
b: Integer;
begin
Result := '0';
a := 0;
b := 0;
for i := 1 to Length(s) do
begin
x := Ord(s[i]);
b := b * 280 + x;
a := a + 9;
while a >= 7 do
begin
a := a - 7;
x := b div (1 shl a);
b := b mod (1 shl a);
Result := Result + Codes64[x + 1];
end;
end;
if a > 0 then
begin
x := b shl (7 - a);
Result := Result + Codes64[x + 1];
end;
end;
function Decode64(S: string): string;
var
i: Integer;
a: Integer;
x: Integer;
b: Integer;

begin
Result := '';
a := 0;
b := 0;


for i := 10 to Length(s) do
begin
x := Pos(s[i], codes64) - 1;
if x >= 0 then
begin
b := b * 64 + x;
a := a + 7;
if a >= 8 then
begin
a := a - 8;
x := b shr a;
b := b mod (1 shl a);
x := x mod 125;
Result := Result + chr(x);
end;
end
else
Exit;
end;
end;
На изображение показано какой ключ выдает
Screenshot_1 (2).png
Мне надо что бы он примерно был такой как на 2 изображение
Screenshot_1.png
Помогите буду очень благодарен))

Последний раз редактировалось АлександрDelphi; 02.03.2016 в 22:20.
АлександрDelphi вне форума Ответить с цитированием
Старый 02.03.2016, 22:26   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

юнит EncdDecd Д7
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 02.03.2016, 22:47   #3
АлександрDelphi
Форумчанин
 
Аватар для АлександрDelphi
 
Регистрация: 28.02.2016
Сообщений: 115
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
юнит EncdDecd Д7
А вот по подробней можно куда и что ?
АлександрDelphi вне форума Ответить с цитированием
Старый 02.03.2016, 23:20   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

А чего подробней? Там код энкоде и декоде для базе64
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.03.2016, 00:33   #5
АлександрDelphi
Форумчанин
 
Аватар для АлександрDelphi
 
Регистрация: 28.02.2016
Сообщений: 115
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
А чего подробней? Там код энкоде и декоде для базе64
Смотри то есть это
Код:
Codes64
Заменить на
Код:
EncdDecd
Или что я я что то не допонял тебя...
Там идет либо Encode64 либо Codes64
Выдает ошибку
Screenshot_1.png
Screenshot_2.png

Последний раз редактировалось АлександрDelphi; 03.03.2016 в 00:36.
АлександрDelphi вне форума Ответить с цитированием
Старый 03.03.2016, 02:31   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

на предыдущей строке забыли точку с запятой.
вы хоть сообщения то читайте.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.03.2016, 04:05   #7
АлександрDelphi
Форумчанин
 
Аватар для АлександрDelphi
 
Регистрация: 28.02.2016
Сообщений: 115
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
на предыдущей строке забыли точку с запятой.
вы хоть сообщения то читайте.
Не че я там не забыл, все там нормально
Предыдущие строки
Код:
var
  hddid:string;
begin
 edt1.Text:=EnCodes64 (работает но слишком длинно  и не aktiv key ) (getSerial);
АлександрDelphi вне форума Ответить с цитированием
Старый 03.03.2016, 08:32   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

А ничо, что EncdDecd - это модуль?
Код:
{*******************************************************}
{                                                       }
{                Delphi Runtime Library                 }
{                                                       }
{ Copyright(c) 1995-2015 Embarcadero Technologies, Inc. }
{                                                       }
{*******************************************************}

unit Soap.EncdDecd;

interface

uses System.Classes, System.SysUtils;

procedure EncodeStream(Input, Output: TStream); inline; // deprecated 'Use TNetEncoding.Base64.Encode';
procedure DecodeStream(Input, Output: TStream); inline; // deprecated 'Use TNetEncoding.Base64.Decode';
function  EncodeString(const Input: string): string; inline; // deprecated 'Use TNetEncoding.Base64.Encode';
function  DecodeString(const Input: string): string; inline; // deprecated 'Use TNetEncoding.Base64.Decode';

{$IFDEF NEXTGEN}
function  DecodeBase64(const Input: string): TBytes; inline; // deprecated 'Use TNetEncoding.Base64.DecodeStringToBytes';
function  EncodeBase64(const Input: Pointer; Size: Integer): string; inline; // deprecated 'Use TNetEncoding.Base64.EncodeBytesToString';
{$ELSE !NEXTGEN}
function  DecodeBase64(const Input: AnsiString): TBytes; inline; // deprecated 'Use TNetEncoding.Base64.DecodeStringToBytes';
function  EncodeBase64(const Input: Pointer; Size: Integer): AnsiString; inline; // deprecated 'Use TNetEncoding.Base64.EncodeBytesToString';
{$ENDIF NEXTGEN}

implementation

uses System.NetEncoding;

procedure EncodeStream(Input, Output: TStream);
begin
  TNetEncoding.Base64.Encode(Input, Output);
end;

procedure DecodeStream(Input, Output: TStream);
begin
  TNetEncoding.Base64.Decode(Input, Output);
end;

function EncodeString(const Input: string): string;
begin
  Result := TNetEncoding.Base64.Encode(Input);
end;

function DecodeString(const Input: string): string;
begin
  Result := TNetEncoding.Base64.Decode(Input);
end;

{$IFDEF NEXTGEN}
function DecodeBase64(const Input: string): TBytes;
begin
  Result := TNetEncoding.Base64.DecodeStringToBytes(Input);
end;

function EncodeBase64(const Input: Pointer; Size: Integer): string;
begin
 Result := TNetEncoding.Base64.EncodeBytesToString(Input, Size);
end;
{$ELSE !NEXTGEN}
function DecodeBase64(const Input: AnsiString): TBytes;
begin
  Result := TNetEncoding.Base64.DecodeStringToBytes(string(Input));
end;

function EncodeBase64(const Input: Pointer; Size: Integer): AnsiString;
begin
  Result := AnsiString(TNetEncoding.Base64.EncodeBytesToString(Input, Size));
end;
{$ENDIF NEXTGEN}

end.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 03.03.2016, 13:59   #9
АлександрDelphi
Форумчанин
 
Аватар для АлександрDelphi
 
Регистрация: 28.02.2016
Сообщений: 115
По умолчанию

Цитата:
Сообщение от min@y™ Посмотреть сообщение
А ничо, что EncdDecd - это модуль?
Код:
{*******************************************************}
{                                                       }
{                Delphi Runtime Library                 }
{                                                       }
{ Copyright(c) 1995-2015 Embarcadero Technologies, Inc. }
{                                                       }
{*******************************************************}

unit Soap.EncdDecd;

interface

uses System.Classes, System.SysUtils;

procedure EncodeStream(Input, Output: TStream); inline; // deprecated 'Use TNetEncoding.Base64.Encode';
procedure DecodeStream(Input, Output: TStream); inline; // deprecated 'Use TNetEncoding.Base64.Decode';
function  EncodeString(const Input: string): string; inline; // deprecated 'Use TNetEncoding.Base64.Encode';
function  DecodeString(const Input: string): string; inline; // deprecated 'Use TNetEncoding.Base64.Decode';

{$IFDEF NEXTGEN}
function  DecodeBase64(const Input: string): TBytes; inline; // deprecated 'Use TNetEncoding.Base64.DecodeStringToBytes';
function  EncodeBase64(const Input: Pointer; Size: Integer): string; inline; // deprecated 'Use TNetEncoding.Base64.EncodeBytesToString';
{$ELSE !NEXTGEN}
function  DecodeBase64(const Input: AnsiString): TBytes; inline; // deprecated 'Use TNetEncoding.Base64.DecodeStringToBytes';
function  EncodeBase64(const Input: Pointer; Size: Integer): AnsiString; inline; // deprecated 'Use TNetEncoding.Base64.EncodeBytesToString';
{$ENDIF NEXTGEN}

implementation

uses System.NetEncoding;

procedure EncodeStream(Input, Output: TStream);
begin
  TNetEncoding.Base64.Encode(Input, Output);
end;

procedure DecodeStream(Input, Output: TStream);
begin
  TNetEncoding.Base64.Decode(Input, Output);
end;

function EncodeString(const Input: string): string;
begin
  Result := TNetEncoding.Base64.Encode(Input);
end;

function DecodeString(const Input: string): string;
begin
  Result := TNetEncoding.Base64.Decode(Input);
end;

{$IFDEF NEXTGEN}
function DecodeBase64(const Input: string): TBytes;
begin
  Result := TNetEncoding.Base64.DecodeStringToBytes(Input);
end;

function EncodeBase64(const Input: Pointer; Size: Integer): string;
begin
 Result := TNetEncoding.Base64.EncodeBytesToString(Input, Size);
end;
{$ELSE !NEXTGEN}
function DecodeBase64(const Input: AnsiString): TBytes;
begin
  Result := TNetEncoding.Base64.DecodeStringToBytes(string(Input));
end;

function EncodeBase64(const Input: Pointer; Size: Integer): AnsiString;
begin
  Result := AnsiString(TNetEncoding.Base64.EncodeBytesToString(Input, Size));
end;
{$ENDIF NEXTGEN}

end.
И как это вставить в мою программу а что я что то не понимаю ?
АлександрDelphi вне форума Ответить с цитированием
Старый 03.03.2016, 14:03   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
а что я что то не понимаю ?
Да.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Банальный вопрос про HTML. сделать когда нажимаешь на кнопку не переходило на другую страницу, а оставалось на первой и выводило cheyz1 HTML и CSS 6 21.04.2015 19:19
XNA, как нормально сделать Release? murzilka6002 Gamedev - cоздание игр: Unity, OpenGL, DirectX 3 09.02.2012 12:57
как сделать нормально???(язык программирования делфи) luffi Помощь студентам 5 19.01.2012 16:35
Как сделать чтоб выводило таблицу по кодам товаров с суммой проданного… katlis Microsoft Office Excel 4 24.03.2011 18:21
пграмма совершает аварийное прерывание.как сделать так чтобы она работала нормально? Екатерина3439 Общие вопросы C/C++ 8 24.06.2010 00:27