Autor Beitrag
xan553 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Do 25.01.07 13:25 
also ich habe mir jetzt mal das mit dem code eingestellt wie ich ihn möchte

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
procedure TForm1.Button1Click(Sender: TObject);

var
  i: Integer;
  OriginalText, NewText: String;
begin
  OriginalText := 'a';
  NewText := '000101';
  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;
    end;
  edit1.text;
end.




er würde mit mit dem

ausblenden Delphi-Quelltext
1:
ShowMessage(NewText);					


funktionieren aber wenn ich

ausblenden Delphi-Quelltext
1:
edit1.text;					


schreibe, kann ich sooft ich will auf meinen buttom klicken aber es passiert nichts.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19335
Erhaltene Danke: 1751

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 25.01.07 13:37 
Sieh dir bitte mal den bereits in einer früheren Antwort verlinkten Crashkurs an!!! Dir fehlen offenbar die elemntarsten Grundlagen! Edit1.Text ist kein Befehl, den du einfach so hinschreiben kannst. Das nur als Beispiel.
Hier nochmal der Link zum Crashkurs:
crashkurs.christian-stelzmann.de/

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  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;  
    end;

Was das macht ist folgendes: Es geht zeichenweise durch den Originaltext, also den Text, in dem die Zeichen ersetzt werden sollen, und siehst dann nach, was das aktuelle Zeichen für ein Zeichen ist. Hier im Beispiel sieht er nach, ob es ein E, T oder s ist. Und abhängig davon, was für ein Buchstabe an der aktuellen Stelle steht, wird entweder eine Ersetzung oder der Buchstabe selbst (else) in den neuen Text, also das, was dabei herauskommen soll, geschrieben.
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Do 25.01.07 13:44 
user profile iconjaenicke hat folgendes geschrieben:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  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;



das dürfte da noch gefehlt haben ;-)

_________________
Anonymes Eckenkind
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19335
Erhaltene Danke: 1751

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 25.01.07 13:46 
Darauf habe ich ja gar nicht geachtet, dass er das auch noch gelöscht hat... :roll:
Im Originalpost von mir wars noch drin... *seufz*

Ich hab jetzt einfach den Code genommen, den er grad gepostet hat...
xan553 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Do 25.01.07 14:41 
ok bin schon viel weiter dank eurer hilfe, aber wenn ich nun

ausblenden Delphi-Quelltext
1:
2:
3:
      'E': NewText := '000111';
      'T': NewText := '111111';
      's': NewText := '000000';


habe und ich: "ETS" eingebe, dann erhalte ich "111111S"
müsste ich normal nicht "000111111111S" erhalten?
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Do 25.01.07 14:46 
Super...

wie viele Leute hier haben dir jetzt schon den Crashkurs ans Herz gelegt?! Und warum fängst du nicht von vorne an, wenn du programmieren lernen willst?
Und noch ne Frage: ist selbst ABSCHREIBEN sooo schwer?

user profile iconjaenicke hat folgendes geschrieben:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
  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;


_________________
Anonymes Eckenkind
azubi_20
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 593

WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
BeitragVerfasst: Do 25.01.07 15:00 
user profile iconxan553 hat folgendes geschrieben:
ok bin schon viel weiter dank eurer hilfe, aber wenn ich nun

ausblenden Delphi-Quelltext
1:
2:
3:
      'E': NewText := '000111';
      'T': NewText := '111111';
      's': NewText := '000000';


habe und ich: "ETS" eingebe, dann erhalte ich "111111S"
müsste ich normal nicht "000111111111S" erhalten?


na guck mal genau hin :
aus E wird 000111
aus T wird 111111
aus s wird 000000

und dein Beispiel : "ETS"

was wird aus dem "S" ?
s ist nicht gleich S !

Tipp : such mal nach UpperCase()
Miri
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 657


Delphi 3 Prof., Delphi 2005 PE
BeitragVerfasst: Do 25.01.07 15:07 
user profile iconxan553 hat folgendes geschrieben:
dann erhalte ich "111111S"
müsste ich normal nicht "000111111111S" erhalten?


Das mit dem S hat er scheinbar verstanden...
das Problem ist, dass er erst 000111 in den String packt und den kompletten String dann mit 111111 überschreibt...
Und ich vermute einfach mal, dass er den ELSE-Zweig tatsächlich richtig abgeschrieben hat, daher wird das S drangehängt anstatt den String wieder zu überschreiben ;-)

_________________
Anonymes Eckenkind
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Do 25.01.07 15:09 
user profile iconazubi_20 hat folgendes geschrieben:
user profile iconxan553 hat folgendes geschrieben:
ok bin schon viel weiter dank eurer hilfe, aber wenn ich nun

ausblenden Delphi-Quelltext
1:
2:
3:
      'E': NewText := '000111';
      'T': NewText := '111111';
      's': NewText := '000000';


habe und ich: "ETS" eingebe, dann erhalte ich "111111S"
müsste ich normal nicht "000111111111S" erhalten?


na guck mal genau hin :
aus E wird 000111
aus T wird 111111
aus s wird 000000

und dein Beispiel : "ETS"

was wird aus dem "S" ?
s ist nicht gleich S !

Tipp : such mal nach UpperCase()


Ich glaube das kleine s war beabsichtigt, er wollte nur E und T sollten ersetzt werden klein s ignoriert.
000111111111S

_________________
Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
xan553 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Do 25.01.07 16:00 
so habs endlich ^^

muss nurnoch das script umscvhreiben zum umwandeln und dann isses fertig


Danke an alle
xan553 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Do 25.01.07 16:03 
achso nochmal was

mit diesder zeile

ausblenden Delphi-Quelltext
1:
'000101': NewText := NewText + 'A';					


bekomme ich den fehler

[Error] Codierer.pas(118): Incompatible types: 'Char' and 'String'

edit:
habe aber auch gemerkt, das es nur bei

ausblenden Delphi-Quelltext
1:
'0': NewText := NewText + 'A';					


geht

ich denke das man da nur ein zeichen einsetzen kann oder?
Marc.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 1876
Erhaltene Danke: 129

Win 8.1, Xubuntu 15.10

BeitragVerfasst: Do 25.01.07 16:10 
Heyho
Bitte(!!) editier deine Beiträge!
Und zu deinem Problem: Bei im Falle von Case Of lassen sich nur ordinale Typen verwenden!
D.h. 1,2,3,4,5,8,9... Zahlen; a,b,c,d,e,f... und Buchstaben(=Zeichen) alias "Char"!
Mfg
xan553 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 67



BeitragVerfasst: Do 25.01.07 16:15 
hm

das heißt ich kann das ganze nur wieder rückgängig machen indem ich stringreplace benutze oder gibt es da noch andere möglichkeiten
Blackheart666
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2195

XP
D3Prof, D6Pers.
BeitragVerfasst: Do 25.01.07 16:30 
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
procedure TForm1.CodierenClick(Sender: TObject);
var TmpStr: string;
begin
  TmpStr:= Edit1.Text;
  TmpStr := StringReplace(TmpStr, 'E''000111', [rfReplaceAll, rfIgnoreCase]);
  TmpStr := StringReplace(TmpStr, 'T''111111', [rfReplaceAll, rfIgnoreCase]);
  TmpStr := StringReplace(TmpStr, 'S''000000', [rfReplaceAll, rfIgnoreCase]);
  Edit1.Text:=TmpStr;
end;

procedure TForm1.EncodierenClick(Sender: TObject);
var TmpStr: string;
begin
  TmpStr:= Edit1.Text;
  TmpStr := StringReplace(TmpStr, '000111''E', [rfReplaceAll, rfIgnoreCase]);
  TmpStr := StringReplace(TmpStr, '111111''T', [rfReplaceAll, rfIgnoreCase]);
  TmpStr := StringReplace(TmpStr, '000000''S', [rfReplaceAll, rfIgnoreCase]);
  Edit1.Text:=TmpStr;
end;


Ich hoffe Du verstehts auch was da Steht :wink: