![]() |
probleme mit der ausgabe von strings
Liste der Anhänge anzeigen (Anzahl: 1)
:| :| hallo ich habe ein Problem bitte helft mir !!!
Ich bin noch nicht so viel Erfahrung mit Delphi aber ein bisschen mit turbo-Pascal. Ich will ein Programm erstellen womit man texte verschlüsseln lassen kann. Zu meinem Problem: wenn ich die ersetzten Buchstaben ausgeben lassen will in ein TRichEdit schreibt er jeden ersetzten Buchstaben in eine neue Zeile ich will sie aber hintereinander haben, hat da jemand einen tipp für mich??? Der text heißt „code“, und die Verschlüsselung „decode“ :coder2: :coder2: MORSE-ALPHABET
Delphi-Quellcode:
[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
procedure TMorse.Button1Click(Sender: TObject);
begin s:= code.Text; x:=length(s); decode.lines.clear; for n:=1 to x do begin s1:=copy(s,n,1); if s1=' ' then break; if s1='a' then decode.Lines.add('.- ');if s1='b' then decode.lines.Add('-... '); if s1='c' then decode.lines.Add('-.-. ');if s1='d' then decode.lines.Add('-.. '); if s1='e' then decode.lines.Add('. ');if s1='f' then decode.lines.Add('..-. '); if s1='g' then decode.lines.Add('--.');if s1='h' then decode.lines.Add('.... '); if s1='i' then decode.lines.Add('.. ');if s1='j' then decode.lines.Add('.--- '); if s1='k' then decode.lines.Add('-.- ');if s1='l' then decode.lines.Add('.-.. '); if s1='m' then decode.lines.Add('-- ');if s1='n' then decode.lines.Add('-. '); if s1='o' then decode.lines.Add('--- ');if s1='p' then decode.lines.Add('.--. '); if s1='q' then decode.lines.Add('--.- ');if s1='r' then decode.lines.Add('.-. '); if s1='s' then decode.lines.Add('... ');if s1='t' then decode.lines.Add('- '); if s1='u' then decode.lines.Add('..- ');if s1='v' then decode.lines.Add('...- '); if s1='w' then decode.lines.Add('.-- ');if s1='x' then decode.lines.Add('-..- '); if s1='y' then decode.lines.Add('-.-- ');if s1='z' then decode.lines.Add('--.. '); if s1=' ' then decode.lines.Add(', ');if s1='.' then decode.lines.Add('.-.-.- '); if s1=',' then decode.lines.Add('--..-- ');if s1=':' then decode.lines.Add('---... '); if s1='´' then decode.lines.Add('.----. ');if s1='?' then decode.lines.Add('..--.. '); if s1='!' then decode.lines.Add('! ');if s1='1' then decode.lines.Add('.---- '); if s1='2' then decode.lines.Add('..--- ');if s1='3' then decode.lines.Add('...-- '); if s1='4' then decode.lines.Add('....- ');if s1='5' then decode.lines.Add('..... '); if s1='6' then decode.lines.Add('-.... ');if s1='7' then decode.lines.Add('--... '); if s1='8' then decode.lines.Add('---.. ');if s1='9' then decode.lines.Add('----. '); if s1='0' then decode.lines.Add('----- ');if s1=';' then decode.lines.Add('; '); if s1='-' then decode.lines.Add('-....- ');if s1='/' then decode.lines.Add('-..-. '); if s1='(' then decode.lines.Add('-.--.- ');if s1=')' then decode.lines.Add('-.--.- '); if s1='"' then decode.lines.Add('.-..-. ');if s1='=' then decode.lines.Add('-...- '); if s1='ä' then decode.lines.Add('.-.- ');if s1='ö' then decode.lines.Add('---. '); if s1='ü' then decode.lines.Add('..-- '); end; end; |
Re: probleme mit der ausgabe von strings
1: Falsche Sparte
2: [ delphi]-Tags benutzen 3: Add fügt immer eine neue Zeile an, nimm besser
Delphi-Quellcode:
RichEdit1.Text := RichEdit1.Text + string;
|
Re: probleme mit der ausgabe von strings
Statt der vielen if-Anweisungen kann man auch case nehmen.
Delphi-Quellcode:
MfGprocedure TMorse.Button1Click(Sender: TObject); var s1: char; begin s:= code.Text; x:=length(s); decode.lines.clear; for n:=1 to x do begin s1:=s[n]; case s1 of ' ': break; 'a': decode.Lines.add('.- '); ... end; end; end; Binärbaum |
Re: probleme mit der ausgabe von strings
Ich würde es mit zwei Stringlisten machen:
Delphi-Quellcode:
MfG Pr0g
type
TMorse = class(TForm) code: TMemo; decode: TMemo; Button1: TButton; procedure FormCreate(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } SearchList, ReplaceList: TStrings; procedure AddMorse(const ASearch, AReplace: String); public { Public-Deklarationen } end; var Morse: TMorse; implementation {$R *.dfm} procedure TMorse.AddMorse(const ASearch, AReplace: String); begin SearchList.Add(ASearch); ReplaceList.Add(AReplace); end; procedure TMorse.FormCreate(Sender: TObject); begin SearchList := TStringList.Create; ReplaceList := TStringList.Create; AddMorse('a', '.- '); AddMorse('b', '-... '); AddMorse('c', '-.-. '); //... end; procedure TMorse.FormDestroy(Sender: TObject); begin SearchList.Free; ReplaceList.Free; end; procedure TMorse.Button1Click(Sender: TObject); var fLine, fDecode: String; x, y, fIndex: Integer; begin fDecode := ''; for y := 0 to code.Lines.Count - 1 do begin fLine := code.Lines[y]; for x := 1 to Length(fLine) do begin fIndex := SearchList.IndexOf(fLine[x]); if fIndex = -1 then fDecode := fDecode + fLine[x] else fDecode := fDecode + ReplaceList[fIndex]; end; end; decode.Text := fDecode; end; |
DP-Maintenance
Dieses Thema wurde von "Christian Seehase" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
Falsche Sparte |
Re: probleme mit der ausgabe von strings
Moin Alien,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS. @Dax: Zitat:
Das ist eine der grössten Performancebremsen, die man einbauen kann. Besser die Eigenschaft Text in eine Stringvariable übertragen, mit dieser arbeiten, und dann wieder nach Text zurückschreiben. Text wird bei jedem Lesezugriff aus den Zeilen aufgebaut. |
Re: probleme mit der ausgabe von strings
Zitat:
Geht nämlich ;) //edit Hab das "nicht" mal entfernt :wall: |
Re: probleme mit der ausgabe von strings
Zitat:
...:cat:... |
Re: probleme mit der ausgabe von strings
Verdammt :mrgreen:
|
Re: probleme mit der ausgabe von strings
Zitat:
Kannst ja mal hier in der DP nach ![]() MfG Binärbaum |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:10 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz