AGB  ·  Datenschutz  ·  Impressum  







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

probleme mit der ausgabe von strings

Ein Thema von alien · begonnen am 10. Apr 2005 · letzter Beitrag vom 11. Apr 2005
Antwort Antwort
alien

Registriert seit: 6. Apr 2005
Ort: Reichenhausen
1 Beiträge
 
Delphi 7 Enterprise
 
#1

probleme mit der ausgabe von strings

  Alt 10. Apr 2005, 18:56
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“



MORSE-ALPHABET


Delphi-Quellcode:
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='athen decode.Lines.add('.- ');if s1='bthen decode.lines.Add('-... ');
 if s1='cthen decode.lines.Add('-.-. ');if s1='dthen decode.lines.Add('-.. ');
 if s1='ethen decode.lines.Add('. ');if s1='fthen decode.lines.Add('..-. ');
 if s1='gthen decode.lines.Add('--.');if s1='hthen decode.lines.Add('.... ');
 if s1='ithen decode.lines.Add('.. ');if s1='jthen decode.lines.Add('.--- ');
 if s1='kthen decode.lines.Add('-.- ');if s1='lthen decode.lines.Add('.-.. ');
 if s1='mthen decode.lines.Add('-- ');if s1='nthen decode.lines.Add('-. ');
 if s1='othen decode.lines.Add('--- ');if s1='pthen decode.lines.Add('.--. ');
 if s1='qthen decode.lines.Add('--.- ');if s1='rthen decode.lines.Add('.-. ');
 if s1='sthen decode.lines.Add('... ');if s1='tthen decode.lines.Add('- ');
 if s1='uthen decode.lines.Add('..- ');if s1='vthen decode.lines.Add('...- ');
 if s1='wthen decode.lines.Add('.-- ');if s1='xthen decode.lines.Add('-..- ');
 if s1='ythen decode.lines.Add('-.-- ');if s1='zthen 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='1then decode.lines.Add('.---- ');
 if s1='2then decode.lines.Add('..--- ');if s1='3then decode.lines.Add('...-- ');
 if s1='4then decode.lines.Add('....- ');if s1='5then decode.lines.Add('..... ');
 if s1='6then decode.lines.Add('-.... ');if s1='7then decode.lines.Add('--... ');
 if s1='8then decode.lines.Add('---.. ');if s1='9then decode.lines.Add('----. ');
 if s1='0then 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;
[edit=Christian Seehase]Delphi-Tags gesetzt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
Angehängte Dateien
Dateityp: zip code_122.zip (425,7 KB, 3x aufgerufen)
  Mit Zitat antworten Zitat
Dax
(Gast)

n/a Beiträge
 
#2

Re: probleme mit der ausgabe von strings

  Alt 10. Apr 2005, 19:00
1: Falsche Sparte
2: [ delphi]-Tags benutzen
3: Add fügt immer eine neue Zeile an, nimm besser RichEdit1.Text := RichEdit1.Text + string;
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: probleme mit der ausgabe von strings

  Alt 10. Apr 2005, 19:20
Statt der vielen if-Anweisungen kann man auch case nehmen.

Delphi-Quellcode:

procedure 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;
MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von Pr0g
Pr0g

Registriert seit: 21. Mai 2004
809 Beiträge
 
Delphi 7 Personal
 
#4

Re: probleme mit der ausgabe von strings

  Alt 10. Apr 2005, 19:49
Ich würde es mit zwei Stringlisten machen:
Delphi-Quellcode:
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;
MfG Pr0g
  Mit Zitat antworten Zitat
10. Apr 2005, 20:24
Dieses Thema wurde von "Christian Seehase" von "Neuen Beitrag zur Code-Library hinzufügen" nach "Sonstige Fragen zu Delphi" verschoben.
Falsche Sparte
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: probleme mit der ausgabe von strings

  Alt 10. Apr 2005, 20:31
Moin Alien,

erst einmal herzlich willkommen hier in der Delphi-PRAXiS.

@Dax:

Zitat von Dax:
3: Add fügt immer eine neue Zeile an, nimm besser

  RichEdit1.Text := RichEdit1.Text + string;
lieber nicht.
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.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#7

Re: probleme mit der ausgabe von strings

  Alt 11. Apr 2005, 13:07
Zitat von Binärbaum:
Statt der vielen if-Anweisungen kann man auch case nehmen.

Delphi-Quellcode:

procedure 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;
MfG
Binärbaum
Ähm, hast du schonmal versucht, in einem Delphi-Programm eine case-Verzweigung mit Strings zu machen?
Geht nämlich

//edit Hab das "nicht" mal entfernt
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#8

Re: probleme mit der ausgabe von strings

  Alt 11. Apr 2005, 13:08
Zitat von Ultimator:
Ähm, hast du schonmal versucht, in einem Delphi-Programm eine case-Verzweigung mit Strings zu machen?
Geht nämlich nicht
Macht er ja auch nicht, er nutzt ja ein Char Und das geht

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#9

Re: probleme mit der ausgabe von strings

  Alt 11. Apr 2005, 13:11
Verdammt
Julian J. Pracht
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#10

Re: probleme mit der ausgabe von strings

  Alt 11. Apr 2005, 17:34
Zitat von Ultimator:
Ähm, hast du schonmal versucht, in einem Delphi-Programm eine case-Verzweigung mit Strings zu machen?
Nun, mit Char geht es ja, aber mit Strings auch, wenn man etwas trickst
Kannst ja mal hier in der DP nach Hier im Forum suchenStrIdx suchen.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  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 10:00 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