progmaker Geschrieben 6. Februar 2002 Teilen Geschrieben 6. Februar 2002 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TAZttDevil Geschrieben 7. Februar 2002 Teilen Geschrieben 7. Februar 2002 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... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
progmaker Geschrieben 7. Februar 2002 Autor Teilen Geschrieben 7. Februar 2002 Das Problem ist nur, wenn ich zu viele Einträge in der Tabelle habe, dauert die Suche entsprechend lange. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TAZttDevil Geschrieben 7. Februar 2002 Teilen Geschrieben 7. Februar 2002 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... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
chr Geschrieben 8. Februar 2002 Teilen Geschrieben 8. Februar 2002 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%'; Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
progmaker Geschrieben 8. Februar 2002 Autor Teilen Geschrieben 8. Februar 2002 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
TAZttDevil Geschrieben 12. Februar 2002 Teilen Geschrieben 12. Februar 2002 ist doch auch klar... das Jokerzeichen steht doch für beliebige Zeichen.. also findet er "Test1", "test4".. etc... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.