Autor Beitrag
Florens
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: Mo 01.11.10 21:16 
Hi all,
Ich schätz mal ein paar haben gestern mein RSA projekt schon kennengelernt. Jetzt gehts aber nciht mehr ums chiffrieren sondern dechiffrieren. Dazu will ich Zahlen einlesen die ja aber unterschiedlich lange Strings sein können. Vorerst sieht mein Quellcode wie folgt aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
procedure TForm1.ZahlenzuBuchstabenClick(Sender: TObject);

var a,x,i,st:Integer;
S: String;

begin
x:=length(Zahl.Text);

for i:=1 to x do begin
S:=S+Zahl.Text[i];  

if Zahl.Text[i]=' ' then begin
S:=S-Zahl.Text[i];                   //hier liegt mein Problem...S:=S-' '; hat auch nicht gewirkt :(. 
st:=StrToInt(S);
Buch.Text:=Buch.Text+ chr(st)+' ';
S:='';
end

end

end;


Die Zahlen gibt er in meinem Kontrollmemo immer mit einem Leerzeichen aus. So habe ich mir gedacht subtrahier ich dieses einfach weg nur wie....

Danke um jede hilfe
Euer Flo
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 01.11.10 21:22 
Schau dir mal Delete an. ;-)

Für diesen Beitrag haben gedankt: Florens
Florens Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: Mo 01.11.10 21:24 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Schau dir mal Delete an. ;-)

? Danke für die Antowort nur wie bringe ich delete hier rein. Habe bisher nicht viel mit Strings rumprobiert...
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 01.11.10 21:26 
Florens Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: Mo 01.11.10 21:35 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
lmgtfy.com/?q=delphi+delete :roll:

Sooo jetzt bin ich schonmal soweit(sry für meine Googlefaulheit finds nur immer besser verständlich wenn mir das jemand erklärt der das vorrangehende Problem kennt):
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
procedure TForm1.ZahlenzuBuchstabenClick(Sender: TObject);

var a,x,i,st:Integer;
S: String;

begin
x:=length(Zahl.Text);

for i:=1 to x do begin
S:=S+Zahl.Text[i];  

if Zahl.Text[i]=' ' then begin
a:=length(S);
Delete(S,a);                   //Delphi sagt mir jetzt, das nicht genug Parameter gewählt wurden. Ich versteh nicht wozu der mittlere da ist... 
st:=StrToInt(S);
Buch.Text:=Buch.Text+ chr(st)+' ';
S:='';
end

end

end;
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 01.11.10 21:42 
Gleich der erste Link führt doch zu einer Beschreibung. Und da stehen drei Parameter. Da du nur zwei angegeben hast, ist es irgendwie logisch, dass Delphi sagt, dass da einer fehlt, oder?

Außerdem zeigt das dir Delphi doch auch selbst an...

delete

Da siehst du drei Parameter.
Einloggen, um Attachments anzusehen!
Florens Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: Mo 01.11.10 21:46 
user profile iconjaenicke hat folgendes geschrieben Zum zitierten Posting springen:
Gleich der erste Link führt doch zu einer Beschreibung. Und da stehen drei Parameter. Da du nur zwei angegeben hast, ist es irgendwie logisch, dass Delphi sagt, dass da einer fehlt, oder?

Außerdem zeigt das dir Delphi doch auch selbst an...

Da siehst du drei Parameter.


Ja ich meinte ja auch, dass ich den mittleren Parameter nicht verstehe und deswegen gehofft hatte, dass es mit 2en auch geht, was es aber offensichtlich nicht tut. Selbst auf dem Bild check ich nicht was mit Index gemeint ist. (Btw: ich hab den ersten Link angeklickt und da stand dann delete(string,5,maxInt). WIeso zur Hölle 5?)

Edit: Habs jetzt auch mit delete(S,a-1,a) probiert womit der aber gleich die letzten beiden Zeilen löscht...
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 01.11.10 21:57 
user profile iconFlorens hat folgendes geschrieben Zum zitierten Posting springen:
Edit: Habs jetzt auch mit delete(S,a-1,a) probiert womit der aber gleich die letzten beiden Zeilen löscht...
ausblenden Quelltext
1:
2:
3:
4:
5:
         abcdefghijkl
Length:             ^

         abcdefghijkl
Length - 1:        ^
Und da du ab dieser Position a Zeichen löschst, sind dann die letzten beiden Zeichen weg. (Dass a zu hoch ist für die Länge des zu löschenden Bereichs, ist egal.)
Florens Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 32



BeitragVerfasst: Mo 01.11.10 21:57 
close pls. klappt so jetzt wunderbar:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
procedure TForm1.ZahlenzuBuchstabenClick(Sender: TObject);

var a,x,i,st:Integer;
S: String;

begin
x:=length(Zahl.Text);
Memo1.Lines.Add('length='+IntToStr(x));

for i:=1 to x do begin
S:=S+Zahl.Text[i];

if Zahl.Text[i]=' ' then begin
a:=length(S);
Delete(S,a,a);
Memo1.Lines.Add('S='+S);
st:=StrToInt(S);
Memo1.Lines.Add('st='+IntToStr(st));
Buch.Text:=Buch.Text + chr(st);
S:='';
end

end

end;
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19346
Erhaltene Danke: 1754

W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mo 01.11.10 21:59 
Hier werden Threads nicht einfach geschlossen, nur weil sie gelöst sind. ;-)

Und nebenbei:
ausblenden Delphi-Quelltext
1:
Delete(S, a, 1);					
Das genügt auch. Schließlich willst du ja ein Zeichen ab Position a löschen. ;-)

Für diesen Beitrag haben gedankt: Florens