Delphi-PRAXiS
Seite 2 von 4     12 34      

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)

himitsu 27. Feb 2011 11:04

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
For-Downto, Delphi-Referenz durchsuchenExit oder Delphi-Referenz durchsuchenBreak

Notxor 27. Feb 2011 11:12

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
der Index in der letzten If-Abfrage scheint auch nicht zu stimmen. mMn gehört da auf alle Fälle ein "j" mit hinein, nicht nur "i+1"

-187- 27. Feb 2011 11:26

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
Nach der letzten else Bedingung wäre auch Result:=0; richtig anstelle von Result:=-1;

Oder täusche ich mich ?

Sir Rufo 27. Feb 2011 11:42

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
Ich habe da mal einen möglichen Ablauf aufgeschrieben ...
Code:
// Beispiel-Daten
SubStr ist "test" // Länge 4
SuchStr ist "Dieses ist nur zum testen gedacht!" // Länge 34

// Das Ergebnis ist erst mal 0
Ergebnis = 0

Durchlaufen von 1 bis {Länge SuchStr=34} - {Länge SubStr=4} + 1 // also bis 31
  TempStr = Hole {Länge SubStr} Zeichen von SuchStr ab der aktuellen Position
  Wenn TempStr = SubStr Dann
    Ergebnis = Aktuelle Position
    Durchlaufen abbrechen

hoan504 27. Feb 2011 12:39

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
an '187'

die -1 ist da nur anstatt 0 damit in meinem editfeld klar wird, dass sich das gesuchte ergebnis nicht im string befindet

-187- 27. Feb 2011 12:43

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
Und was ist dann der Unterschied zur 0 ? :D

Kein Ergebnis = 0 afaik :)


Edit: Also es kommt jetzt drauf an..Wenn du die Pos Funktion nachbauen willst ist Kein Ergebnis = 0. Du dachtest wahrscheinlich das dass erste Vorkommnis = 0 ist, dem ist aber nicht so :)

Oooder aber du willst dir eine Custom Pos Funktion bauen wobei das auch da kein Sinn macht :D

Greetz

hoan504 27. Feb 2011 15:13

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
tja aber die die pos-funktion ist an mein programm angepasst, bzw. an edit felder angepasst. die 0 oder die -1 gibt nur an dass kein ergebnis gefunden wurde. Genauso gut hätte ich auch eine string ausgeben können.

-187- 27. Feb 2011 15:33

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
Naja das macht ja noch weniger Sinn :D

Wozu brauchst du -1 für "kein Ergebnis" wenn 0 dafür schon vorhanden ist :?:

Notxor 27. Feb 2011 15:49

AW: Pos Routine nachprogrammieren ohne den Assembler zu benutzen?
 
Code:
Durchlaufen von 1 bis {Länge SuchStr=34} - {Länge SubStr=4} // also bis 30
Gehört da nicht " 1 bis 34-4 +1" ?

Wenn man bei 30 anfängt, vergleicht man ja {30,31,32,33} es sollte jedoch mit 34 enden(wenn man bei 1 zu zählen beginnt; wäre 0 nicht sinnvoller?)

Sir Rufo 27. Feb 2011 16:25

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

Zitat von Notxor (Beitrag 1084678)
Code:
Durchlaufen von 1 bis {Länge SuchStr=34} - {Länge SubStr=4} // also bis 30
Gehört da nicht " 1 bis 34-4 +1" ?

Wenn man bei 30 anfängt, vergleicht man ja {30,31,32,33} es sollte jedoch mit 34 enden(wenn man bei 1 zu zählen beginnt; wäre 0 nicht sinnvoller?)

Ja, es muss +1 dazu

Und nein, bei 0 anfangen ist nicht sinnvoller, da ein String bei 1 anfängt und nicht bei 0.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:10 Uhr.
Seite 2 von 4     12 34      

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