Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Memofeld in Ord Werte übertragen (https://www.delphipraxis.net/172363-memofeld-ord-werte-uebertragen.html)

EMS 28. Dez 2012 19:28

Delphi-Version: 5

Memofeld in Ord Werte übertragen
 
Hallo
Ich habe ein Memofeld und möchte hier nun gerne einen Text rein schreiben können der dann
in die Zahlen werte mit dem ord Befehl erzeugt wird.
Wie mache ich das am besten?
Mit einem Einzelnen Wert aus einem Editfeld bekomme ich es hin aber nicht aus einem Memo feld?

Bummi 28. Dez 2012 19:40

AW: Memofeld in Ord Werte übertragen
 
da ich nicht weiß was Du vorhast, vielleicht ist hierin das enthalten was Du suchst ...

Delphi-Quellcode:
type
 //TByteArray=Array of Byte; // nur für AnsiStrings
 TByteArray=Array of Word;
Var
 i:Integer;
 ba:TByteArray;
begin
  SetLength(ba,Length(Memo1.Text));
  for I := 1 to Length(memo1.Text) do
      begin
        ba[i-1] := Ord(memo1.Text[i]);
        ListBox1.Items.Add(IntToStr(ba[i-1]));
      end;

end;

EMS 28. Dez 2012 19:48

AW: Memofeld in Ord Werte übertragen
 
mhh ich möchte so ein Programm bauen zum Text in Bilder verstecken...
So wie sich unsere Lehrer das vorstellt mit den Befehlen die wir kennen.
Dieses ListBox1.Items.Add kenne ich nicht bzw hatten wir nicht

Dazu hole ich mir nun bmp bilder und lass die durchlaufen und speicher jedes Pixel als Integer in einer Datei ab.
Diese Datei kann ich nun auch wieder öffnen und damit das Bild wiederherstellen.
Nun möchte ich gerne diesen Text der zu verstecken ist in einem Memofeld eingeben.
Hier soll dann jedes Zeichen in die ASCII Zahl gewandelt werden. Diese möchte ich dann einfach zu dem Pixel 1,2,3,4,5 in der Ersten Zeile dazu Addieren.
Dann hab ich das schon einmal versteckt.
Zum auslesen sag ich dann das die Ursprungsdatei mit der manipolierten vergleicht werden soll und dann der differenz betrag errechnet werden soll und diese Zahl soll dann als ASCII Zeichen wiedergeben werden und dann wieder in meinem Memofeld stehen.

:-D

Bummi 28. Dez 2012 20:45

AW: Memofeld in Ord Werte übertragen
 
Nachdem bei "echter Steganographie" eine sichtbare Änderung der Datei möglichst unterbleiben soll und Du auf Bitebene arbeiten müsstest, vermutet ich dass Du eher das was Du in http://www.delphipraxis.net/172362-p...ml#post1196991 angefangen hast mit einem Memo fortführen möchtest. Der einzige Unterschied ist eigentlich dass Du nicht jedes mal ein Byte aus einer Datei liest, sondern Dir einen "Ord-Wert" nach dem anderen aus dem Text des Memos holst, also irgendetwas in der Art:

Delphi-Quellcode:
Function GetFarbeFromString(const s:String;Position:Integer):TColor;
begin
  if length(s)<=Position then
    Result := Ord(s[Position])
  else
    Result := clBlack;
end;

procedure TForm1.Button1Click(Sender: TObject);
Var
  index1,index2,x:Integer;
  Farbe:TColor;
  s:AnsiString;
begin
  x := 1;
  s := Memo1.Lines.Text;
  For index1:=1 to 300 do
  begin
    for index2:=1 to 300 do
    begin
      farbe := GetFarbeFromString(s,x);
      inc(x);
      image2.canvas.pixels[index1,index2]:=farbe;
    end;
  end;
end;

EMS 28. Dez 2012 20:56

AW: Memofeld in Ord Werte übertragen
 
mhh ich verstehe nicht ganz was dein text da macht?
auch das mit dem ord bekomme ich nicht mehr hin was es mit den Klammern auf sich hat?

Bummi 28. Dez 2012 21:24

AW: Memofeld in Ord Werte übertragen
 
Anhand von Beispielen?

Delphi-Quellcode:
procedure TForm1.Button2Click(Sender: TObject);
Var
 i:Integer;
begin
  // Memo ist das Control in dem der Text dargestellt wird
  // Lines "sind die einzelnen Zeilen"
  for I := 0 to Memo1.Lines.Count - 1 do
      ShowMessage(Memo1.Lines[i]);
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
   // Memo1.Lines.Text ist der genze Inhalt des Memos
   ShowMessage(Memo1.Lines.Text)
end;

procedure TForm1.Button4Click(Sender: TObject);
Const
 s:String='Nase';
var
 i:Integer;
begin
  for I := 1 to Length(s) do
     Showmessage(s[i]);
end;

EMS 28. Dez 2012 21:31

AW: Memofeld in Ord Werte übertragen
 
Das hab ich verstanden aber was macht das ord?und wie wird das benutzt?kannst du deinen ersten Post kommentieren?

Bummi 28. Dez 2012 21:53

AW: Memofeld in Ord Werte übertragen
 
Ord('A') >> 65, liefert die die Position des Zeichens in der Zeichtabelle zurück, die Umkehrfunktion ist Char(65) >> 'A'

lies mal hier nach: http://www.delphi-treff.de/object-pascal/datentypen/

EMS 28. Dez 2012 21:56

AW: Memofeld in Ord Werte übertragen
 
Ja das weiß ich ja so aber mit mehreren geht das ja nicht hin bzw noch nicht mal ein Wert aus dem Memo in den Zahlen Wert dann

delnu 28. Dez 2012 22:37

AW: Memofeld in Ord Werte übertragen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Die Beispiele sind doch eigentlich gut verständlich. Die Liste des Memo wird einfach Eintrag für Eintrag durchgearbeitet. Dabei entspricht jede Zeile quasi dem, was Du sonst im TEdit hast.

Aber mal zur Zielsetzung : Im Entwickler-Magazin 4 von 2002 gab es mal ein Beispiel zur Steganographie. Ich hatte das irgendwann mal von deren Internetseite runtergeladen. Als ich gerade geguckt habe, wie das heutzutage mit Quelltexten aussieht, habe ich allerdings nichts mehr gefunden.

Ich habe es mal als ZIP-Datei hochgeladen. Das müßten die Originale sein. Auf der Basis läßt sich sicher was machen. Mich hatte das zwar auch eine Weile beschäftigt, aber man müßte an der Programmstruktur einiges machen, um das alles etwas mehr zu automatisieren und Fehler besser abzufangen. Das war mir aber die Mühe nicht wert, denn wozu sollte ich Daten verbergen ?

Ach je ! Nachdem ich mir die Problemstellung gerade nochmal durchsah, habe ich erst bemerkt, daß es um eine Aufgabe mit Vorgaben handelt. Da dürfte Dir das Zeug nicht viel helfen. Ich habe mal kurz in die Quellen gesehen. Das verstehe ich selbst nicht, obwohl ich schon ziemlich lange mit Delphi programmiere - vorher Turbo Pascal ab Version 3 und Assembler.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:30 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz