Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   gross und kleinschreibung beim suchen nicht beachten (https://www.delphipraxis.net/80718-gross-und-kleinschreibung-beim-suchen-nicht-beachten.html)

commin 14. Nov 2006 10:47


gross und kleinschreibung beim suchen nicht beachten
 
Hallo,

ich habe das Problem dass ich ein DBMemo durchsuchen will (das passt soweit), allerdings soll auf gross und kleinschreibung keine rücksiche genommen werden. Kann mir jemand einen Tipp geben?

Vielen Dank schon mal

Norman

Ines 14. Nov 2006 10:55

Re: gross und kleinschreibung beim suchen nicht beachten
 
Hallo Norman,

hilft dir vielleicht "CompareText" weiter?

Zitat:

CompareText vergleicht S1 mit S2 und gibt 0 zurück, wenn beide identisch sind. Ist S1 größer als S2, wird ein Integer-Wert größer als 0 zurückgegeben. Ist S1 kleiner als S2, ist der Rückgabewert kleiner als 0. Beim Vergleich wird nicht zwischen Groß- und Kleinschreibung unterschieden und die aktuelle Ländereinstellung nicht berücksichtigt.
Viele Grüße
Ines

commin 14. Nov 2006 13:32

Re: gross und kleinschreibung beim suchen nicht beachten
 
Danke erstmal. Das Problem ist dass ich (siehe unten) den Vergleich anderes durchführe...
Delphi-Quellcode:
begin
stichw:=edit1.text;

s:=0;
i:=0;

form1.table1.first;

for i:= i+1 to 1000 do
begin //suchen
smemo:=dbmemo1.text;
if POS(stichw, smemo) <> 0 then
   begin
       messagedlg('gefunden = ' +stichw,mtinformation, [mbok],0);
   end;
form1.table1.next;
end;
messagedlg('fertig i='+inttostr(i),mtinformation, [mbok],0);
end;
Das ganze ist noch im entstehen - deshalb die messagedlg-boxen...

Gibt es for den Befehl POS... - eine einfache möglichkeit nicht auf groß und kleinschreibung zu achten?

Danke schon mal!

Norman

Klaus01 14. Nov 2006 13:41

Re: gross und kleinschreibung beim suchen nicht beachten
 
Sollte es nicht so gehen?

Delphi-Quellcode:
if POS(LowerCase(stichw), LowerCase(smemo)) <> 0 then
Grüße
KLaus

commin 14. Nov 2006 13:45

Re: gross und kleinschreibung beim suchen nicht beachten
 
cool! - Vielen Dank!

Reinhard Kern 14. Nov 2006 13:51

Re: gross und kleinschreibung beim suchen nicht beachten
 
Zitat:

Zitat von commin
Danke erstmal. Das Problem ist dass ich (siehe unten) den Vergleich anderes durchführe...
Delphi-Quellcode:
begin
stichw:=edit1.text;

s:=0;
i:=0;

form1.table1.first;

for i:= i+1 to 1000 do
begin //suchen
smemo:=dbmemo1.text;
if POS(stichw, smemo) <> 0 then
   begin
       messagedlg('gefunden = ' +stichw,mtinformation, [mbok],0);
   end;
form1.table1.next;
end;
messagedlg('fertig i='+inttostr(i),mtinformation, [mbok],0);
end;
Das ganze ist noch im entstehen - deshalb die messagedlg-boxen...

Gibt es for den Befehl POS... - eine einfache möglichkeit nicht auf groß und kleinschreibung zu achten?

Danke schon mal!

Norman

Hallo,

der traditionelle Weg ist, vor dem Suchen den String ganz in Grossbuchstaben umzuwandeln (oder in kleine, das ist egal), dazu sollte man natürlich mit einer Kopie arbeiten, falls man die Orginalversion weiterhin braucht. Das löst, wenn man es richtig macht, auch das nationale Problem - wie bei CompareText beschrieben, werden länderspezifische Einstellungen nicht von allen Stringfunktionen beachtet, ein Vergleich ohne ÄÖÜ ist bei uns aber meistens wenig sinnvoll. Benutzt man zum Umwandeln in gross die Funktion AnsiUpperCase, so wird das eingestellte Land beachtet, so dass ä -> Ä wird.

Gruss Reinhard


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:59 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz