Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Teilstring in einem String suchen

Empfohlene Antworten

Veröffentlicht

Hallo Leutz,

hab da ein kleines großes Problem.

Hab in einer Paradox-Tabelle ein String mit folgendem Inhalt: Test, Test1, Test2, Test3 usw.. Jetzt möchte ich 'ne Suche starten, die mir alle Einträge liefert, die das Wort Test in diesem String beinhalten.

Hoffe, hab das Problem gut genug beschrieben und ihr könnt mir helfen.

Arbeite übrigens mit Delphi5 Pro, falls es hilft.

Bis dann

Hallo..

in delphi gibt es ein menge möglichkeiten...

das einfachst ist wohl den String aus der Tabelle zu lesen und dann mit dem Befehl Pos zu suchen:

if pos( teilstring, string ) > 0 then

WriteLn( 'Juppie, dein Teilstring ist erhalten' );

if pos( 'test', table1.stringfeld[index] ) > 0 then

WriteLn( Ausgabe, 'Datensatz' inttostr( index ) + ' erhält das Wort Test' );

Have fun, Taz...

Das Problem ist nur, wenn ich zu viele Einträge in der Tabelle habe, dauert die Suche entsprechend lange.

na was erwartest du denn??

das du schnippst und die Ergebnisse hast??

Wenn du was in einem String suchst dauert das immer länger... und wenn du dann noch in vielen Strings suchst dauert das halt x-mal länger.. ist doch verständlich, oder??

Aber wenn du das beschleunigen möchtest, kannst du dir ganz viel speicher reservieren und Teile der Datenbank da reinladen. Dann geht das ab wie luzys katze... aber dann brauchst du halt richtig viel speicher und ein performance fresser (für andere Tasks) ist das auch... Ach ja, vergiss aber nicht deinen speicher wieder freizugeben...

Ansonsten fällt mir auch nichts mehr ein, um das zu beschleunigen...

ach so.. doch klar... wenn du Programm intern nicht mit Strings arbeitest sondern mit PChar....

der unterschied:

wenn du mit Strings arbeitest übergibst du den ganzen string. d.h. du legst die Variable auf den Stack und führst die funktionen aus (in dem falle pos)...

wenn du aber ein PChar verwendest legst du nur den Pointer der auf den String zeigt auf den Stack. Das geht natürlich entsprechend schneller.. ich weis aber nicht ob pos da noch funtioniert... aber es gibt sicherlich einen äquivalenten Befehl.. such mal in der hilfe...

viel glück, taz...

Wenn du eine SQL-Abfrage machen willst, so kannst du den LIKE-Operator zusammen mit dem Joker % nutzen, z.B.

SELECT * FROM mytable WHERE meinespalte LIKE 'test%';

Original geschrieben von chr

Wenn du eine SQL-Abfrage machen willst, so kannst du den LIKE-Operator zusammen mit dem Joker % nutzen, z.B.

SELECT * FROM mytable WHERE meinespalte LIKE 'test%';

Ja, das hab ich schon ausprobiert, aber wenn ich mehrere Einträge habe und mein 1. Eintrag lautet: Test, Test1, Test2; mein 2 Eintrag lautet dann Test3, Test,4 Test5. Ich suche mit

SELECT * FROM mytable WHERE meinespalte LIKE 'test%'

Ich kriege beide Einträge zurück. Ich will aber nur den ersten, wenn ich nach Test suche.

ist doch auch klar...

das Jokerzeichen steht doch für beliebige Zeichen.. also findet er "Test1", "test4".. etc...

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.