| Autor |
Beitrag |
xan553 
      
Beiträge: 67
|
Verfasst: Do 25.01.07 13:25
also ich habe mir jetzt mal das mit dem code eingestellt wie ich ihn möchte
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
Delphi-Quelltext
funktionieren aber wenn ich
Delphi-Quelltext
schreibe, kann ich sooft ich will auf meinen buttom klicken aber es passiert nichts.
|
|
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: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/
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
      
Beiträge: 657
Delphi 3 Prof., Delphi 2005 PE
|
Verfasst: Do 25.01.07 13:44
_________________ Anonymes Eckenkind
|
|
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:46
Darauf habe ich ja gar nicht geachtet, dass er das auch noch gelöscht hat...
Im Originalpost von mir wars noch drin... *seufz*
Ich hab jetzt einfach den Code genommen, den er grad gepostet hat...
|
|
xan553 
      
Beiträge: 67
|
Verfasst: Do 25.01.07 14:41
ok bin schon viel weiter dank eurer hilfe, aber wenn ich nun
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
      
Beiträge: 657
Delphi 3 Prof., Delphi 2005 PE
|
Verfasst: 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?
jaenicke hat folgendes geschrieben: |
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
      
Beiträge: 593
WinXP SP2, Ubuntu 8.4
D7 Enterp., D2005 Prof., Java (Eclipse 3.4.0)
|
Verfasst: Do 25.01.07 15:00
xan553 hat folgendes geschrieben: | ok bin schon viel weiter dank eurer hilfe, aber wenn ich nun
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
      
Beiträge: 657
Delphi 3 Prof., Delphi 2005 PE
|
Verfasst: Do 25.01.07 15:07
xan553 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
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Do 25.01.07 15:09
_________________ Blackheart666
Der Irrsinn ist bei Einzelnen etwas Seltenes, - aber bei Gruppen, Parteien, Völkern, Zeiten die Regel. (Friedrich Nietzsche)
|
|
xan553 
      
Beiträge: 67
|
Verfasst: Do 25.01.07 16:00
so habs endlich ^^
muss nurnoch das script umscvhreiben zum umwandeln und dann isses fertig
Danke an alle
|
|
xan553 
      
Beiträge: 67
|
Verfasst: Do 25.01.07 16:03
achso nochmal was
mit diesder zeile
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
Delphi-Quelltext 1:
| '0': NewText := NewText + 'A'; |
geht
ich denke das man da nur ein zeichen einsetzen kann oder?
|
|
Marc.
      
Beiträge: 1876
Erhaltene Danke: 129
Win 8.1, Xubuntu 15.10
|
Verfasst: 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 
      
Beiträge: 67
|
Verfasst: 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
      
Beiträge: 2195
XP
D3Prof, D6Pers.
|
Verfasst: Do 25.01.07 16:30
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 
|
|
|