| Autor |
Beitrag |
xan553
      
Beiträge: 67
|
Verfasst: Mi 24.01.07 16:31
Hy ich bins mal wieder
Ich habe mir mit en paar freunden ma gedacht es wäre doch ganz witzig ein programm zu machen, bei dem man in einem fenster einen text eingibt,
dann auf einen button klickt und dann der text in einem layout mit bestimmten zeichen wieder ausgegeben wird,
ich weiß aber leider nicht, wie ich anfangen soll, und auch nicht welchen code ich dem button geben muss das er allen buchstaben bestimmte zeichenfolgen zuordnet.
bitte um hilfe
mfg michse
|
|
perry5
      
Beiträge: 102
|
Verfasst: Mi 24.01.07 16:43
ähm, du hast einfach eine Tabelle.
Wenn du immer genau EIN Zeichen ind eine Zeichenkette umwandeln wilslt, also aus 'W' beispielsweise '\/\/' machen wilslt geht das einfach.
Ein Array, das du über das Zeichen indizeirne kannst, in dem einfach nur strings gespeichert werden.
Dann kansnte die Eingabe-Zeichenkette durchgehen und für jedes Zeichen der UasgabeZeichenkette den entsprechenden String aus dem Array anhängen.
|
|
xan553 
      
Beiträge: 67
|
Verfasst: Mi 24.01.07 16:45
könnte mir mal jemand dazu einen beispielcode zeigen?
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Mi 24.01.07 16:46
Nicht ein wenig umständlich?
Ich hätte es mit StringReplace(); gemacht 
|
|
xan553 
      
Beiträge: 67
|
Verfasst: Mi 24.01.07 16:49
ich ahbe kaum ahnung von delphi, sprecht bitte deutsch mit mir *fleh* ^^
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: Mi 24.01.07 16:56
Kein Problem.
Wenn ich dich richtig verstanden habe, willst du bestimmte "Buchstaben" bzw. Zeichen durch andere ersetzen. Right?
Dies geht zB. mit Stringreplace();!
Kleines Beispiel:
Delphi-Quelltext 1: 2: 3: 4: 5: 6:
| var s: String; begin s := 'abcdef'; s := StringReplace('c','D',[rfreplaceall]); end; |
grüße marc
|
|
xan553 
      
Beiträge: 67
|
Verfasst: Mi 24.01.07 17:08
fast richtig, ich möchte in ein feld einen text eingeben dann sollte der text mit einem klick auf codieren im label unter "Ausgabe"
Wieder ausgegeben werden und das selbe soll auf mit einem klick auf decodieren möglich sein.
|
|
xan553 
      
Beiträge: 67
|
Verfasst: Mi 24.01.07 21:35
kann mir denn keiner helfen?
|
|
jakobwenzel
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: Mi 24.01.07 21:38
Dir fehlen anscheinend Grundlagen: crashkurs.christian-stelzmann.de/
_________________ I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
|
|
joker0000
      
Beiträge: 70
Win XP
Delphi 2006
|
Verfasst: Mi 24.01.07 21:40
also ich denke, den rest kannst du auch alleine machen. einfach n memo. dann den inhalt des memos in nen string. dann solltest du mit stringreplace schon was auf die reihe bekommen.
|
|
jaenicke
      
Beiträge: 19335
Erhaltene Danke: 1751
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 24.01.07 21:43
Schiebepostings früher als 24 Stunden nach deiner letzten Frage sind hier im Forum unerwünscht, das mal so als Hinweis...
xan553 hat folgendes geschrieben: | | kann mir denn keiner helfen? |
Naja, helfen könnten sicherlich viele, aber aus deinen Aussagen wird nicht wirklich deutlich, wo eigentlich dein Problem liegt...
Was hast du denn bisher versucht? Zeig mal deinen Code...
Ich seh grad, dass jakobwenzel bereits den Link gebracht hat, den ich auch grad noch dazuschreiben wollte... 
|
|
xan553 
      
Beiträge: 67
|
Verfasst: Mi 24.01.07 21:53
eben das ist es ja, ich komme nicht auf den richtigen code,
| Zitat: |
Kein Problem.
Wenn ich dich richtig verstanden habe, willst du bestimmte "Buchstaben" bzw. Zeichen durch andere ersetzen. Right?
Dies geht zB. mit Stringreplace();!
Kleines Beispiel:
ausblenden anzeigen Delphi-Quelltext
ausgeblendet markieren
1:
2:
3:
4:
5:
6:
var
s: String;
begin
s := 'abcdef';
s := StringReplace('c','D',[rfreplaceall]); // in s steht nun 'abDef'
end;
|
funktioniert nicht, ich suche einen code der mir zum beispiel alle buchstaben a,A raussucht und durch 001101 ersetzt
|
|
jaenicke
      
Beiträge: 19335
Erhaltene Danke: 1751
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mi 24.01.07 21:56
Aber genau das macht doch StringReplace?
Das Beispiel hier ist etwas falsch, so ists richtig:
Delphi-Quelltext 1:
| s := StringReplace(s, 'c','D',[rfreplaceall]); |
|
|
Robinator
      
Beiträge: 275
WinXP
BDS 2006
|
Verfasst: Mi 24.01.07 21:57
|
|
Saubäär
      
Beiträge: 376
|
Verfasst: Mi 24.01.07 22:02
Hi xan,
so wie ich das verstanden habe, willst du nen String verschlüsseln - oder?
Wenn ja, so würde es gehen (ist aber relativ leicht zu knacken):
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9:
| procedure TForm1.Button1Click(Sender: TObject); var i: Integer; s: String; begin s := Edit1.Text; for i := 1 to Length(s) do s[i] := char(i xOr Ord(s[i])); Edit1.Text := s; end; |
Gruß
Saubäär
|
|
xan553 
      
Beiträge: 67
|
Verfasst: Do 25.01.07 07:07
richtig nur eben in von mir gewählte zeichen
|
|
jaenicke
      
Beiträge: 19335
Erhaltene Danke: 1751
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 25.01.07 07:53
Du willst doch einfach nur, dass ein bestimmter Buchstabe durch eine bestimmte Buchstabenfolge ersetzt wird, oder?
Nun ja, und genau das macht ja StringReplace!
Hast du dir mal angesehen, was es macht?
|
|
xan553 
      
Beiträge: 67
|
Verfasst: Do 25.01.07 12:50
ja habe ich, das müsste ich doch mit IF befehlen hinbekommen oder?
|
|
jaenicke
      
Beiträge: 19335
Erhaltene Danke: 1751
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Do 25.01.07 13:01
Du brauchst kein if! Du musst nur StringReplace aufrufen. Das ersetzt dir dann doch den Buchstaben durch einen anderen String und fertig.
Ist dir denn klar, was StringReplace macht und wie du es benutzt?
Eine andere in diesem Fall vielleicht passendere Lösung wäre folgende, dann gibts auch kein Problem mit zirkulären Ersetzungen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| var i: Integer; OriginalText, NewText: String; begin OriginalText := 'Ein Test'; NewText := ''; for i := 1 to Length(OriginalText) do case OriginalText[i] of 'E': NewText := NewText + '10010101'; 'T': NewText := NewText + 'casdfasd'; 's': NewText := NewText + '10000001'; else NewText := NewText + OriginalText[i]; end; ShowMessage(NewText); |
|
|
Blackheart666
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Do 25.01.07 13:02
Dann probier doch auch mal was den code stellst Du dann hier rein, und man wird Dir dann sicherlich weiterhelfen können.
Bis jetzt sieht es so aus als wolltest Du nur nur eine fertige Lösung, obwohl sie ja eigentlich hier schon genannt wurde.
|
|