![]() |
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. |
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?
|
AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
moment da muss ich jetzt erst schaffen den code wieder von meinem Server zu ziehen
|
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
|
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.
|
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:
, oder man geht z.B. über Copy oder Dergleichen.
s[i]
|
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? |
AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
Exit ?
PS: Setz dein Code mal in Delphi Tags und formatier ihn ordentlich^ |
AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
Wohl eher
Delphi-Quellcode:
.
break
Delphi-Quellcode:
verlässt die gesamte Prozedur/Funktion
exit
|
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 13:28 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