Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Einiges mit Memo... (https://www.delphipraxis.net/61509-einiges-mit-memo.html)

viperen 22. Jan 2006 12:31


Einiges mit Memo...
 
Hallo!

Ich will mir einen codier programm basteln, ich habe mir für 49 Zeichen zufällige 2 stellige zahlen ausgedacht.
Nun will ich ein Programm machen welches zwei memofelder hat.

in eins werden die Zahlen eingefügt, in das andere zeichen.
da gibt es einige probleme, für die ich gar keine lösung habe..

folgendes:

1. Wie kann ich die zeilenumbrüche, dass heißt die Lines in einen string "umwandeln"
Meine Idee dazu wäre folgendes:
Delphi-Quellcode:
With Memo1 do
  begin  
    String:=Line1+Line2+...+LineN //die zuweisung könnte man auch mit einer function machen...
  end;
Aber wie sinnvoll ist das? Geht das überhaupt.. wie kann ich LineN bestimmen?

2. alle zeichen müssen ja getrennt werden und dann in einen array rein...
Wie trenne ich die zeichen? Und füge sie dann ein?
Umgekehrt von den Zahlen zu den Zeichen müsste man jeweils zwei zahlen verbinden bzw. trennen...

Danke!

malo 22. Jan 2006 12:36

Re: Einiges mit Memo...
 
Bitte eröffne für jede Frage einen eigenen Thread. Das soll aus Übersichtlichkeitsgründen gemacht werden ;)

Zu Problem 1: Wahrscheinlich meinst du die Property "Text" des Memos. Also
Delphi-Quellcode:
Str1 := Memo1.Text
;)

viperen 22. Jan 2006 12:44

Re: Einiges mit Memo...
 
Gut...
Hier geht es weiter:

marabu 22. Jan 2006 13:49

Re: Einiges mit Memo...
 
Hi.

Auf die einzelnen Zeichen eines Memos kannst du wie bei einem array of char zugreifen, wobei das erste Zeichen allerdings mit dem Index 1 addressiert wird:

Delphi-Quellcode:
function Encode(const s: String): String;
var
  i: Integer;
  code: string;
begin
  // Ausgabe ist doppelt so lang wie Eingabe
  SetLength(Result, Length(s) shl 1);
  for i := 1 to Length(s) do
  begin
    // Jedes Zeichen in seinen 2-Byte-Hex-Code wandeln
    code := IntToHex(Ord(s[i]), 2);
    // an richtige Stelle in Ausgabe kopieren
    Move(code[1], Result[Succ(Pred(i) shl 1)], 2);
  end;
end;

procedure TDemoForm.EncodeButtonClick(Sender: TObject);
begin
  Memo2.Text := Encode(Memo1.Text);
end;
Vielleicht kannst du das ja an deine Bedürfnisse anpassen.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:31 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