Autor Beitrag
Maxi
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Do 20.05.04 09:06 
Hallo!

Gibt es eine Funktion, die überprüft, ob ein string in einem anderen enthalten ist. Quasi sowas wie instr in BASIC?

Beispiel:

str1: HundKatzeMaus
str2: ndKa

Die Funktion soll mir dann zurückgeben, ob ndKA in str1 vorhanden ist, und an welcher position. gibt es sowas shcon oder muss ich die sleber schreiben?
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Do 20.05.04 09:12 
Siehe Online-Hilfe --> Pos
Alexander Roth
Hält's aus hier
Beiträge: 10

win XP, win 98
D7 Personal
BeitragVerfasst: Do 20.05.04 10:18 
Titel: copy
Ich kenne für diese Anwendung nur die copy Funktion mit der man dann man dann mit if überprüfen kann.
Erst mal schleife mit 1 to length(suchtext)-length(suchwort)
Also erst die besimmte anzahl der Zeichen aus dem Suchtext rauskopieren und dann mit if überprüfen ob es gleich dem Suchwort ist.

_________________
Wissen ist Macht!!!
JoelH
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 806
Erhaltene Danke: 17

Win10
Delphi Alexandria 11.2 Patch 1
BeitragVerfasst: Do 20.05.04 10:26 
Titel: hmm,
nene , die erste Antwort ist cleverer , einfach
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
str1 := 'HundKatzeMaus'; 
str2 := 'ndKa';

if POS(str2,str1) > 0 then 
  showmessage('gefunden')
else
  showmessage('Nicht gefunden');

_________________
mfg. Joel
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Do 20.05.04 10:33 
Titel: Re: copy
roth-a@gmx.de hat folgendes geschrieben:
Ich kenne für diese Anwendung nur die copy Funktion mit der man dann man dann mit if überprüfen kann.
Erst mal schleife mit 1 to length(suchtext)-length(suchwort)
Also erst die besimmte anzahl der Zeichen aus dem Suchtext rauskopieren und dann mit if überprüfen ob es gleich dem Suchwort ist.


Um Gottes Willen ... :roll:

Dann wird es wirklich Zeit, dass du Pos kennenlernst. 8)
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Do 20.05.04 14:41 
...aber man kann es auch selber schreiben, wenn mans denn gerne will. Das Verfahren, was man dann implementieren sollte, nennt sich "Knuth-Morris-Pratt" Algorithmus, oder -noch besser- den Algorithmus von "Boyer-Moore". Im Netz findet man dazu bestimmt was. Ist Standard-stoff im Informatik-Grundstudium. Ich hoffe mal, das die Funktion pos genau diese Algorithmen verwendet.

_________________
We are, we were and will not be.
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Do 20.05.04 17:19 
Gausi hat folgendes geschrieben:
...aber man kann es auch selber schreiben, wenn mans denn gerne will. Das Verfahren, was man dann implementieren sollte, nennt sich "Knuth-Morris-Pratt" Algorithmus, oder -noch besser- den Algorithmus von "Boyer-Moore". Im Netz findet man dazu bestimmt was.

Jau, man kann auch von Bremen über München nach Hamburg fahren ... :wink:
Die Funktion Pos ist in Delphi in der Unit System in Maschinensprache implementiert. Schnell, einfach. Was wollen wir mehr?

Gausi hat folgendes geschrieben:
Ich hoffe mal, das die Funktion pos genau diese Algorithmen verwendet.

So? Mir ist das fürchterlich egal, welche Algorithmen von Pos verwendet werden. Wenn es Pos nicht gäbe, würde ich es genau so machen, wie von roth-a angedeutet. Aber da es Pos gibt, fahre ich direkt von Bremen nach Hamburg und benutze es auch. 8)
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Do 20.05.04 18:52 
oh Mann, da bin ich ja an den ganz Falschen geraten. Ich will hier keinen Streit vom Zaum brechen, ganz bestimmt nicht, aber in deinem letzten Post sind n paar komische Sachen drin, die bei mir als Informatik-Studenten ein klein bissel Übelkeit hervorruft. Grundsätzlich halte ich es für sinnvoll,auch die Hintergründe zu verstehen, anstelle nur die Befehle anzuwenden.

Zitat:
Jau, man kann auch von Bremen über München nach Hamburg fahren ...
klar kann man das, aber das hat nichts, aber auch gar nichts mit dem zu tun, was ich vorgeschlagen habe. Wenn du meine Aussage kritisieren willst, dann bitte in etwa so: "Jau, man kann auch das Rad neu erfinden". Die Algorithmen sind nicht umständlich, sondern um einiges raffinierter und schneller - brauchen allerdings ein paar Zeilen mehr Quellcode (der erste braucht ungefähr 30 Zeilen). Fürs Autofahren braucht man ja auch mehr Erfahrung als fürs Laufen.
Zitat:
Die Funktion Pos ist in Delphi in der Unit System in Maschinensprache implementiert. Schnell, einfach. Was wollen wir mehr?
Was du willst, weiss ich nicht. Ich finde es aber durchaus interessant zu wissen, wie die Funktion pos arbeitet. Denn die Position eines Strings in einem längeren wird ja nicht durch göttliche Eingebung hervorgezaubert, sondern muss bestimmt werden. Und es könnte ja sein, dass man irgendwann mal eine ähnliche Technik braucht, für die keine pos-Funktion schon eingebaut ist.
Zitat:
So? Mir ist das fürchterlich egal, welche Algorithmen von Pos verwendet werden.
Für kleine Sachen ist mir das auch egal, weil man da von der Geschwinidgkeit her keinen Unterschied merkt, ob man ein geschicktes oder ungeschicktes Verfahren verwendet. Wenn man aber längere Sachen in noch längeren Texten sucht, wird das Verfahren auch bei heutigen Rechnern interessant.
Zitat:
Wenn es Pos nicht gäbe, würde ich es genau so machen, wie von roth-a angedeutet.
Jau. Und wenn du den Schlüssel für dein Auto verloren hast, gehst du zu Fuß von Hamburg nach München. Das ist es nämlich, was roth-a's Verfahren tut. Wenn du zum Bäcker um die Ecke willst, kannst du gerne zu Fuß gehen, kein Problem, mach ich auch. Aber für längere Strecken sollte man doch ein schnelleres Mittel nehmen. Auch dann, wenn das bedeutet, dass man erst nen Führerschein machen muss...

_________________
We are, we were and will not be.
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Do 20.05.04 19:43 
@Gausi

Hast du denn schon jemals etwas mit Pos programmiert? Ich gehe doch mal davon aus ... oder nicht? Ich wundere mich nur, dass du dann, wo es doch grundsätzlich so wichtig ist, nicht weisst, wie Pos arbeitet. War es bisher vielleicht egal? Siehst du: Mein Reden! 8)

Ich fahre auch nur von Bremen nach Hamburg (bisher jedenfalls) und da ist es nun einmal wirklich nicht so wichtig. Bei Strecken Frankfurt-Sydney werden dann vielleicht das Reisemittel und die Route wohl gewählt sein müssen, das bestreite ich ja gar nicht. Aber hört sich dieser Thread für dich etwa nach einer Weltreise an?

Ich gäbe dir völlig Recht, wenn jemand hier eine 500MB-Datei nach einem Teilstück durchsuchen wollte. Dann hätte ich auch nicht von einem Umweg über München geschrieben.

In diesem Thread jedoch wussten zwei Leute gar nicht, dass es Pos überhaupt gibt. Da dürfte es primär für sie wichtig sein, von dessen Existenz zu erfahren, und weniger, wie es realisiert ist. Wir schießen hier in diesem Thread mit Kanonen auf Spatzen.
Gausi
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 8554
Erhaltene Danke: 481

Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
BeitragVerfasst: Do 20.05.04 21:08 
Zitat:
Hast du denn schon jemals etwas mit Pos programmiert? Ich gehe doch mal davon aus ... oder nicht?

Um ehrlich zu sein: Nein. D.h. doch, einmal: die Funktion Explode zum Zerteilen eines Strings hab ich mal benutzt, und da wird pos (oder was ähnliches) benutzt. Ansonsten nicht. Und da wars wirklich egal, weil der String nur "Datum1-Datum2" war.

Ich würde mal sagen, dass wir es jetzt hierbei belassen, sonst kommt noch ein Mod und meckert uns an wegen OT und so... :roll:

_________________
We are, we were and will not be.
Maxi Threadstarter
Hält's aus hier
Beiträge: 12



BeitragVerfasst: Fr 21.05.04 13:27 
also abgesehen davon, dass ich die funktion jetzt selber geproggt habe *gg* weiß ich jetzt auf alle Fälle dass es pos gibt. Und die Diskussion über die Geschwingikeit und so fand ich eigentlich ziemlich interesant.
JoelH
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 806
Erhaltene Danke: 17

Win10
Delphi Alexandria 11.2 Patch 1
BeitragVerfasst: Fr 21.05.04 13:43 
Titel: hmm,
[OFFTOPIC]
Gausi hat folgendes geschrieben:
Fürs Autofahren braucht man ja auch mehr Erfahrung als fürs Laufen.


Also den Führerschein hatte ich nach 3 Monaten, oder so, laufen konnte ich erst nach einem Jahr, vielleicht haste einfach andere Talente *ggg*, aber zum laufen lernen braucht der Mensch in er REgel länger als zum Führerschein.

_________________
mfg. Joel