Entwickler-Ecke
Algorithmen, Optimierung und Assembler - Das was in PHP Base64 encode ist...?!
phogl - Fr 14.01.05 20:34
Titel: Das was in PHP Base64 encode ist...?!
Hallöchen erstmal!
In PHP gibt es ja die Befehle "base64_encode" und "base64_decode". das was die machen würd ich gern in delphi machen, weiss aber nicht wie... wär nett wenns mir jemand verraten würde ;)
danke schonmal
Coder - Fr 14.01.05 21:25
Ich glaube es würde das Raten erleichtern wenn du erklärst was diese Funktionen machen, da hier nicht jeder PHP kann :wink: (zum Beispiel ich. Aber ich hab mich schon für einen Kurs angemeldet :D )
BenBE - Fr 14.01.05 21:53
Das ist eine
MIME64-Encodierung, die von dieser Funktion vorgenommen wird.
Jeweils 6 Bits werden aus einem Datenstrom genommen und als ein ASCII-Zeichen aus "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+\" dargestellt (Reihenfolge weiß ich jetzt grad net genau ... Fehlende Bits werden durch 0en ersetzt, der letzte Viererblock wird durch =-Zeichen aufgefüllt ...
bms - Fr 14.01.05 22:42
Das ist Base64 Kodierung. Es gibt Indy-Komponenten die das können. Je nachdem welche Delphiversion du hast, hast du auch die Komponenten. Alternativ Indy Komponenten laden und installieren. Sonst gibt es auch Unis im Internet die das können.
phogl - Mo 17.01.05 18:15
Ich benutze D2k5 und D7, wär echt super wenn mir jemand erklären könnte wir ich das mache (von indy hab ich absolut kein plan und google hat nicht so wirklich was hergegeben) ich möchte nur das der, ich nenns mal base64 code von einer datei in ne memobox kommt und ich den code wenn ich den da reinkopiere auch wieder in ne datei verwandeln kann, das wär echt nett, danke schonmal
phogl - Mo 17.01.05 19:06
Schon ok, habs hinbekommen, trotzdem danke!
phogl - Mo 17.01.05 19:32
so, für alle die das mal suchen werden hab ich mal n ganz kleines proggi in nem nicht ganz perfekten aber wie ich finde sehr leicht verstänglichen stil geschrieben das ich hier jetzt poste:
project1.dpr
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| program Project1;
uses Forms, Unit1 in 'Unit1.pas' ;
{$R *.res}
begin Application.Initialize; Application.CreateForm(TForm1, Form1); Application.Run; end. |
Unit1.dfm
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100:
| object Form1: TForm1 Left = 192 Top = 113 AutoSize = True BorderIcons = [] BorderStyle = bsSingle Caption = 'Form1' ClientHeight = 401 ClientWidth = 857 Color = clBtnFace Font.Charset = DEFAULT_CHARSET Font.Color = clWindowText Font.Height = -11 Font.Name = 'MS Sans Serif' Font.Style = [] OldCreateOrder = False PixelsPerInch = 96 TextHeight = 13 object Button1: TButton Left = 0 Top = 376 Width = 75 Height = 25 Caption = 'Encode' TabOrder = 0 OnClick = Button1Click end object Button2: TButton Left = 80 Top = 376 Width = 75 Height = 25 Caption = 'Decode' TabOrder = 2 OnClick = Button2Click end object Button3: TButton Left = 168 Top = 376 Width = 75 Height = 25 Caption = 'Copy' TabOrder = 3 OnClick = Button3Click end object Button4: TButton Left = 248 Top = 376 Width = 75 Height = 25 Caption = 'Paste' TabOrder = 4 OnClick = Button4Click
end object Button5: TButton Left = 336 Top = 376 Width = 75 Height = 25 Caption = 'Load' TabOrder = 5 OnClick = Button5Click end object Button6: TButton Left = 416 Top = 376 Width = 75 Height = 25 Caption = 'Save' TabOrder = 6 OnClick = Button6Click end object Memo1: TMemo Left = 0 Top = 0 Width = 857 Height = 377 ScrollBars = ssVertical TabOrder = 1 end object IdDecoderMIME1: TIdDecoderMIME FillChar = '=' Left = 64 Top = 128 end object IdEncoderMIME1: TIdEncoderMIME FillChar = '=' Left = 32 Top = 128 end object OpenDialog1: TOpenDialog Left = 96 Top = 128 end object SaveDialog1: TSaveDialog Left = 128 Top = 128 end end |
Unit1.pas
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92:
| unit Unit1;
interface
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdCoder, IdCoder3to4, IdCoderMIME, IdBaseComponent, ClipBrd;
type TForm1 = class(TForm) IdDecoderMIME1: TIdDecoderMIME; IdEncoderMIME1: TIdEncoderMIME; Button1: TButton; Memo1: TMemo; OpenDialog1: TOpenDialog; Button2: TButton; SaveDialog1: TSaveDialog; Button3: TButton; Button4: TButton; Button5: TButton; Button6: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button6Click(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); var strm : TFileStream; begin if OpenDialog1.Execute then begin strm:=TFileStream.Create(OpenDialog1.FileName,fmOpenRead); strm.Seek(0,soFromBeginning); Memo1.Text:=Self.IdEncoderMIME1.Encode(strm); strm.Free; end; end;
procedure TForm1.Button2Click(Sender: TObject); var strm : TFileStream; begin if SaveDialog1.Execute then begin strm := TFileStream.Create(SaveDialog1.FileName,fmCreate); Self.IdDecoderMIME1.DecodeToStream(Memo1.Text,strm); strm.Free; end; end;
procedure TForm1.Button3Click(Sender: TObject); begin Memo1.SelectAll; Memo1.CopyToClipboard; end;
procedure TForm1.Button4Click(Sender: TObject); begin Memo1.Text:=''; Memo1.PasteFromClipboard; end;
procedure TForm1.Button5Click(Sender: TObject); begin if OpenDialog1.Execute then begin Memo1.Text:=''; Memo1.Lines.LoadFromFile(OpenDialog1.FileName); end; end;
procedure TForm1.Button6Click(Sender: TObject); begin if SaveDialog1.Execute then begin Memo1.Lines.SaveToFile(SaveDialog1.FileName); end; end;
end. |
Ich hoffe das hilft irgendjemande, kritik is immer willkommen! ;)
hf
phogl
Moderiert von
Christian S.: Code- durch Delphi-Tags ersetzt.
Danke für dir Blumen, ich hab die tags so gesetzt wie ich die haben wollte :-/ und das funzt doch so, warum muss man das unbedingt ändern?!
Tomate008 - Do 19.07.07 08:59
Titel: DANKE!
DANKEEEEEEEEEEEE auch ich war auf der suche nach genau diesem und habe mich total gefreut das du nochmal das komplette projekt gepostet hast!! DANKE DANKE
arj - Fr 20.07.07 11:28
Nur so kurze Frage:
Mime ist nicht dasselbe wie Base64 oder?
Laut Wikipedia zumindest nicht.
BenBE - Fr 20.07.07 12:04
MIME an sich ist nur ein Standard, der die Übertragung von Daten auf Datenkanälen mit weniger als 8 Bit, sowie die vVerknüpfung von mehreren Datenströmen erlaubt. Z.B. in E-Mails. Siehe
RFC 4648 [
ftp://ftp.rfc-editor.org/in-notes/rfc4648.txt].
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!