Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Pos Routine nachprogrammieren ohne den Assembler zu benutzen? (https://www.delphipraxis.net/158686-pos-routine-nachprogrammieren-ohne-den-assembler-zu-benutzen.html)

hoan504 26. Feb 2011 19:09

Delphi-Version: 7

Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
Hallo Delphi - Praxis,

Ich soll für die Schule die Pos - Funktion aus Delphi nachprogrammieren. Dafür soll ich nicht den Assembler benutzen(so etwas ist ja auch schon in der Code Libary).
Leider funktioniert auf meinem Windows 7 die Delphihilfe auch nicht und an Sysutils oder an die Systemunit komme ich nicht dran.

Mein Plan wäre jetzt über eine Schleife den String nach dem ersten Zeichen des Teilstrings durchsuchen zu lassen und
dann zu prüfen ob die anderen Zeichen in der richtigen Reihenfolge dahinterstehen und nur dann die Position des ersten auszugeben.
Die Frage ist nur wie ich das machen soll?

Vll. fällt ja irgendwem eine Lösung dazu ein.

SirThornberry 26. Feb 2011 19:11

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
wo genau liegt jetzt dein Problem? Die Lösung hast du ja bereits beschreiben. Fertigen Code werden wir dir nicht geben. Wie sieht dein bisheriger Code aus und was funktioniert daran anders als erwartet?

hoan504 26. Feb 2011 19:12

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
moment da muss ich jetzt erst schaffen den code wieder von meinem Server zu ziehen

hoan504 26. Feb 2011 19:14

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
ist es denn wenigstens möglich mir einen Tipp zu geben welche Schleife ich am besten nehmen sollte

s.h.a.r.k 26. Feb 2011 19:16

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
Wenn wir dir jetzt sagen, dass es mit allen drei (for/repeat/while) geht, wirst du nicht wirklich glücklicher damit werden ;) Fang doch einfach mal mit einer davon an und überleg dir, wie es gehen könnte. Kommst du nicht weiter, dann poste hier und wir versuchen dir zu helfen.

himitsu 26. Feb 2011 20:12

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
Überleg dir ja erstmal, wie du es "manuell" machen würdest.

Da könnte man sich nun Scrabble-Steine nehmen, daraus zwei "Strings" zusammenstellen und sich dann überlegen, wie man am einfachsten vorgeht.

Dann schreibt man sich z.B. einen Ablauflan auf und versucht anschließend daraus einen Code zu entwickeln.

Als Schleife(en) kann man sich nur für While oder For-To entscheiden.
Repeat-Until ginge auch, aber es wäre hier wohl einfacher, wenn man die Schleifenbedingung erst prüft, bevor man darin was abarbeitet, aber zusammen mit einem If-Then ginge auch das Repeat.
Außerdem kann man nun die Strings zeichenweise verglichen, über
Delphi-Quellcode:
s[i]
, oder man geht z.B. über Copy oder Dergleichen.

hoan504 27. Feb 2011 10:18

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
Hier erstmal mein Quellcode:

function ipos (Const Substr : string; s : String) : integer;
Var i,j : integer;
begin
ipos := 0;
If (length(substr) = 1) then
begin
for i:=1 to length(s) if (s[i]= Substr) then ipos := i;
end
else
If (length(substr) > 1) then
begin
for i:=1 to length(s) do
if (s[i]= Substr[1]) then
for j:=2 to length(substr) do
if (substr[j] = s[i+1]) then ipos := i
else
ipos := -1;
end;
end;

funktioniert so erstmal ganz gut, aufgrund der for-schleife gibt es nur ein Problem: es wird immer die letzte stelle geliefert an der etwas gefunden wurde.
Wie kann ich denn die For - Schleife verlassen sobald der if-befehl erfüllt ist?

-187- 27. Feb 2011 10:47

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
Exit ?

PS: Setz dein Code mal in Delphi Tags und formatier ihn ordentlich^

Notxor 27. Feb 2011 10:50

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
Wohl eher
Delphi-Quellcode:
break
.
Delphi-Quellcode:
exit
verlässt die gesamte Prozedur/Funktion

-187- 27. Feb 2011 10:53

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
Er will doch auch die Methode verlassen wenn die if Bedingung erfüllt ist ?

Edit: hoan504, da fehlt ein "do" in deinem Code :D


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:10 Uhr.
Seite 1 von 4  1 23     Letzte »    

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz