![]() |
copy(text,x,y) durch while... do - schleife ersetzen?
hallo ich möchte folgende anweisung in eine while do schleife umwandeln, da ich denke, dass das kopieren mit dem delphi-internen befehl zu langsam sein könnte.
Delphi-Quellcode:
wie geht das am besten?
n:='5001';
while i<=length(text) do begin zahl:=copy(text,i,length(n)); //befehlsfolge (...) i:=i+length(n) end; result:=textneu; end; |
Re: copy(text,x,y) durch while... do - schleife ersetzen?
Irgendwie versteh ich nicht ganz was dein Code machen soll. Was hast du denn vor?
|
Re: copy(text,x,y) durch while... do - schleife ersetzen?
einfach nur das copy ersetzen, das ganze ist für rsa impl. gedacht
und ich bin der meinung, dass copy()einfach zu langsam ist, deshalb brauch ihc nur eine übersetzung des teils in eine while schleife |
Re: copy(text,x,y) durch while... do - schleife ersetzen?
Delphi-Quellcode:
for i := x to x+y do
s := s + text[i]; |
Re: copy(text,x,y) durch while... do - schleife ersetzen?
ich hab das schon so ähnlich probiert, aber irgendwie scheint das nicht zu klappen, vorallem mit dem späteren
Delphi-Quellcode:
i:=i+length(n)
das soll nämlich nicht nur +1, sondern +length(n) rechnen |
Re: copy(text,x,y) durch while... do - schleife ersetzen?
Zitat:
und wie du an den Reaktionen der Anderen erkennst, darfst du wichtige Dinge nicht weglassen, sonst kann keiner wirklich helfen :zwinker:
Delphi-Quellcode:
Wenn das n nicht zufällig 1 isst, dann bekommst du das Copy garnicht los.
[pre]SetLength(result, Length(text) div length(n) * 2); i:=1; for i := 1 to length(text) div length(n) do begin wa:=copy(text,i,length(n)); wa:=mathe.PotenzModulo(wa,d,n); mathe.QuotientModulo(wa,'256', q, m); result[t*2-1]:=chr(strtoint(q)); result[t*2]:=chr(strtoint(m)); end;[/pre] dann könnte man eine Rechenoperation einsparen > Quotient und Modulo gemeinsam berechnen ja und nicht ständig die 2 Zeichen an den "result"-String anhängen. dieses verlängert den String ständung und kopiert diesen dazu um. |
Re: copy(text,x,y) durch while... do - schleife ersetzen?
Zitat:
|
Re: copy(text,x,y) durch while... do - schleife ersetzen?
ok danke
die zwei zeichen werden doch an einen neuen angehängt, an dem alten ändert sich dabei nichts ich dachte nur, dass man das copy in eine while schleife ändern kann, weil die so schön schnell ist zb
Delphi-Quellcode:
soweit geht es ja
i:=1;
while i<=length(text) do begin textneu:=textneu+text[i]; i:=i+1; end; nur dann will ich zum nächsten block springen(also eigentlich sollte das nur+length(modul) sein, doch das geht iwie nicht [edit=mkinzler] Mfg, mkinzler[/edit] |
Re: copy(text,x,y) durch while... do - schleife ersetzen?
Wenn du aber in dieser Schleife mehr als 1 zu i hinzuzählst kopierst machst du was anderes als Copy()
Delphi-Quellcode:
text := 'Hallo Welt!';
x := 2; y := 8; n := 2; s := Copy( text, x, y); // s: 'allo Wel'; i:=1; while i<=length(text) do begin textneu:=textneu+text[i]; i:=i+n; end; /7Textneu: 'HloWl!' |
Re: copy(text,x,y) durch while... do - schleife ersetzen?
ich denke,da musste auch i durch x ersetzen und die schleife bis y laufen lassen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz