AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

TRichEdit TextAttributes übernehmen

Ein Thema von user64629 · begonnen am 1. Mai 2011 · letzter Beitrag vom 1. Mai 2011
Antwort Antwort
user64629
(Gast)

n/a Beiträge
 
#1

TRichEdit TextAttributes übernehmen

  Alt 1. Mai 2011, 15:40
Hallo liebes Forum,
ich habe bei meinem Aktuellen Programm einen Button der den gesamten Text eines RichEdits verschlüsseln kann. Nach der Verschlüsselung wird dann deer gesamte Text im RichEdit gelöscht, und der verschlüsselte Text wird eingespeichert.
Kann ich jetzt die komplette Formation jedes Buchstaben, genau so wie so vorher war, auf den neuen verschlüsselten Text übernehmen?
Ich weiß, dass das wahrscheinlich nur über Umwege laufen kann, aber welche?
Ich freue mich über gute Tipps
  Mit Zitat antworten Zitat
user64629
(Gast)

n/a Beiträge
 
#2

AW: TRichEdit TextAttributes übernehmen

  Alt 1. Mai 2011, 17:51
Ich meine:
Wie müsste zum Beispiel eine Variable deklariert sein, in der man das einspeichern will?
Und wie müsste man diese Variable füllen?
Man könnte das ja mit einem Array machen, der so Lang gesetzt wird, wie es Zeichen gibt, aber ein Array of was wäre das dann?
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: TRichEdit TextAttributes übernehmen

  Alt 1. Mai 2011, 18:52
Schau Dir mal RTF mittels eines *dummen* Editors an, der Nichts interpretiert. z.B. WinVI. Da sieht man, dass RTF im Prinzip nur Text ist. d.h. wenn Du den RTF-*Quelltext* verschlüsselst, dann beinhaltet das ohne Probleme auch die Formatierungs-Angaben.

Geändert von ConnorMcLeod ( 1. Mai 2011 um 18:54 Uhr) Grund: WinVi - Link
  Mit Zitat antworten Zitat
user64629
(Gast)

n/a Beiträge
 
#4

AW: TRichEdit TextAttributes übernehmen

  Alt 1. Mai 2011, 19:04
Man kann ein RTF Dokument auch mit dem Texteditor öffnen, dann sieht man auch alles.
Ich weiß das eigentlich nur der Text verschlüsselt wird, aber da ich den Text Buchstabe für Buchstabe in ein Array lade, jeden Buchstabe verschlüssel und dann alles wieder ausgebe verschwindet die Formatierung... Deswegen dachte ich, es gäbe eventueel eine Möglichkeit die Formatierung beizubehalten..

Hier mal die Prozedur, die den Text wieder ausgibt:

Delphi-Quellcode:
var Text_Array: Array of Array of Char;
    Zeilen_Array: Array of String;

procedure TVerschluesseln_Formular.Text_ausgeben;
var i, j: Integer;
begin
 SetLength(Zeilen_Array, Eingabetext_Formular.Eingabetext.Lines.Count);
 for i := 0 to Eingabetext_Formular.Eingabetext.Lines.Count - 1
     do for j := 0 to Length(Eingabetext_Formular.Eingabetext.Lines[i]) - 1
            do Zeilen_Array[i] := Zeilen_Array[i] + Text_Array [i, j];
 Eingabetext_Formular.Eingabetext.Lines.Clear;
 for i := 0 to Length(Zeilen_Array) - 1
     do Eingabetext_Formular.Eingabetext.Lines.Add(Zeilen_Array[i]);
end;
Ich lade vorher jeden Buchstaben einzeln, der Zeile entsprechend in ein Array of Char. Dannach lade ich dann jede Zeile wie sie vorher war, verschlüsselt in ein Array of String, damit ich wieder ganze Zeilen hab, und dann gebe ich diese Zeilen wieder einzeln aus...

Edit:
Übrigens mit:

Delphi-Quellcode:
var Text_Array: Array of Array of Char;

procedure TVerschluesseln_Formular.Text_ausgeben;
var i, j: Integer;
begin
 SetLength(Zeilen_Array, Eingabetext_Formular.Eingabetext.Lines.Count);
 for i := 0 to Eingabetext_Formular.Eingabetext.Lines.Count - 1
     do for j := 0 to Length(Eingabetext_Formular.Eingabetext.Lines[i]) - 1
            do Eingabetext_Formular.Eingabetext.Lines[i][j + 1] := Text_Array [i, j];
end;
geht das ganze nicht: "E2064 Der linken Seite kann nichts zugewiesen werden"
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: TRichEdit TextAttributes übernehmen

  Alt 1. Mai 2011, 19:42
Das mit dem Texteditor stimmt seit ein paar Windows-Versionen nicht mehr so ganz. Leider wird der Editor immer intelligenter und versucht, alles Mögliche für uns dumme Menschlein zu interpretieren und wegzufiltern... deshalb nehme ich sicherheitshalber bei Encoding-sensitiven Dingen einen Editor, bei dem ich weiss, dass er wirklich zeigt, was Sache ist. Ausserdem hat der WinVi eine praktische Hex-Anzeige dabei.

Wenn ich jetzt richtig verstehe, dann ist z.B. in einer Zeile ein roter, kursiver Text, der verschlüsselt werden soll und danach soll das Ergebnis der Verschlüsselung stattdessen dort stehen, und zwar in rot und kursiv, oder?

Wenn ja, dann versuch eine Selektion zu setzen (SelStart/SelLength), diese zu verschlüsseln und zu ersetzen. Müsste IMHO funken.
  Mit Zitat antworten Zitat
user64629
(Gast)

n/a Beiträge
 
#6

AW: TRichEdit TextAttributes übernehmen

  Alt 1. Mai 2011, 19:51
Genau so wollte ich es haben
Das mit der Selektion müsste ich dann aber in der Ausgabe machen.. muss ich dann jeden einzelnen Buchstaben markieren und ersetzen?
Ich probier es mal vielleicht klappt es ja sogar^^ Ich poste dann gleich mal den Text

Edit:

Delphi-Quellcode:

procedure TVerschluesseln_Formular.Text_ausgeben;
var i, j, Markierung: Integer;
begin
 with Eingabetext_Formular.Eingabetext
  do begin
      for i := 0 to Lines.Count - 1
          do for j := 0 to Length(Lines[i]) - 1
                 do begin
                     Markierung := Markierung + 1;
                     SetFocus;
                     SelStart := Markierung;
                     SelLength := 1;
                     SelText := Text_Array [i, j];
                    end;
               end;
end;
Es scheint nicht zu klappen, beide Texte sind noch vorhanden und es gibt ein unregelmäßiges Buchstabengewursel... Was schein ich falsch zu machen?
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: TRichEdit TextAttributes übernehmen

  Alt 1. Mai 2011, 20:21
Mein Minitest sieht so aus und funkt:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
//begin
// RichEdit1.SelStart := 5;
// RichEdit1.SelLength := 10;
// RichEdit1.SetSelText('Verschlüsselt');
//
// RichEdit1.SelStart := 5;
// RichEdit1.SelLength := 10;
// RichEdit1.SelText := 'blah';
var
  i, j, Markierung: Integer;
begin
  Markierung := 0;
  with RichEdit1 do
  begin
    for i := 0 to 199 do
    begin
      Markierung := Markierung + 1;
      SelStart := Markierung;
      SelLength := 1;
      SelText := chr(32+Markierung);
    end;
  end;
end;
Wenn Du das RichEdit leerst, werden nur die neuen Zeichen hineingeschrieben. Damit kannst Du mal testen, ob das Richtige geschrieben würde.
  Mit Zitat antworten Zitat
user64629
(Gast)

n/a Beiträge
 
#8

AW: TRichEdit TextAttributes übernehmen

  Alt 1. Mai 2011, 20:24
Ich hab es jetzt nicht probiert, aber wie würde es bei mehreren Zeilen bei dir aussehen? Die würden doch in eine Zeile wandern oder?

Außerdem hab ich es glaub ich selber :

Delphi-Quellcode:

procedure TVerschluesseln_Formular.Text_ausgeben;
var i, j: Integer;
begin
 with Eingabetext_Formular.Eingabetext
  do begin
      for i := 0 to Lines.Count - 1
          do for j := 0 to Length(Lines[i]) - 1
                 do begin
                     SetFocus;
                     SelStart := SendMessage(Handle, EM_LINEINDEX, i, 0) + j;
                     SelLength := 1;
                     SelText := Text_Array [i, j];
                    end;
               end;
end;
Es scheint einwandfrei zu klappen Alle Formatierungen und Absätze bleiben beibehalten Trotzdem danke für deinen Versuch, kam jetzt nur leider eine Minute zu spät
  Mit Zitat antworten Zitat
Benutzerbild von ConnorMcLeod
ConnorMcLeod

Registriert seit: 13. Okt 2010
Ort: Bayern
490 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: TRichEdit TextAttributes übernehmen

  Alt 1. Mai 2011, 20:30
Freut mich, dass es klappt!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 Uhr.
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