Zastanawiam sie jak zrobic aby wyszukiawlo mi tekstu np. "Unit" i jezeli go bedzie brakować to wywali komunikat informacje o braku tego słowa i aby go automatycznie uzupełniło :> Bo ja to zrobilem ale mi to bardzi dużo zajmuje :/ a ja chce jakas prosta metode:]. Kto ma pomysły :> :>
if Pos('jakieś zdanie',SynEdit1.Text)>0 then exit
else
begin
showmessage('jakies zdanie - nie występeje w synedit1');
synedit1.lines.add('jakieś zdanie'); // uzupełniłem
jak już to może tak, co
if Pos('jakieś zdanie',SynEdit1.Text)=0 then
begin
showmessage('jakies zdanie - nie występeje w synedit1');
synedit1.lines.add('jakieś zdanie'); // uzupełniłem
end;
pieknie to dziala ale znowu mam problem z literami bo jezeli w zrodle napisze "unit" a ktos w kontrolce napisze Unit czy UNIT czy UnIt to sie bedzie plulo ze nie ma takiego slowa :( a ja nie wiem jak to zrobic aby nie zwracalo uwagi na wielkość liter
if Pos('jakieś zdanie',LowerCase(SynEdit1.Text))=0 then
begin
showmessage('jakies zdanie - nie występeje w synedit1');
synedit1.lines.add('jakieś zdanie'); // uzupełniłem
end;
a żeby nie mieć problemu z pl literkami to zamiast LowrCase AnsiLowerCase
if Pos(AnsiLowerCase('JaKiEś ZdAnIe'), AnsiLowerCase(SynEdit1.Text))=0 then
begin
showmessage('jakies zdanie - nie występeje w synedit1');
synedit1.lines.add('jakieś zdanie'); // uzupełniłem
end;
Z tym, że zazwyczaj pyta się usera, czy uwzględnić wielkość liter czy nie
Misiekd napisał(a)
jak już to może tak, co
if Pos('jakieś zdanie',SynEdit1.Text)=0 then
begin
showmessage('jakies zdanie - nie występeje w synedit1');
synedit1.lines.add('jakieś zdanie'); // uzupełniłem
end;
Moj post jest także poprawny. Na końcu oczywiście powinien być: "end;" oczywiście bez cudzysłowie. A teraz co do Funcji LowerCase. To Funkcja ta zamienia string na małe litery. W tym przypadku działa poprawnie, ale zastanów się jakbyś wpisał np :
if pos('JAKIES ZDANIE', LowerCase(SynEdit.text))>0;
A w tekście w SynEdit było by napisane zdanie: JAKIES ZDANIE - właśnie dużymi literami? I dlatego Misiekd na końcu dał prawidłowe rozwiązanie - zamieniając cały tekst na małe litery.
statjacek napisał(a)
Moj post jest także poprawny. Na końcu oczywiście powinien być: "end;" oczywiście bez cudzysłowie.
Jest, bo zadziałało by to tak jak miało, ale konstrukcja bardzo mi się nie podoba. Exit jest tam zupełnie zbędny
a po co dawać instrukcję "if male ABC = male aBC" skoro programista wie że porównuje z małymi literami i może samemu tak wprowadzić do kodu i oszczędzić minimalnie pracy procesorowi ("if abc = male aBC"), niby nic ale bardzo mi się nie podoba takie marnowanie zasobów
Adamo napisał(a)
a po co dawać instrukcję "if male ABC = male aBC" skoro programista wie że porównuje z małymi literami i może samemu tak wprowadzić do kodu i oszczędzić minimalnie pracy procesorowi ("if abc = male aBC"), niby nic ale bardzo mi się nie podoba takie marnowanie zasobów
Przeczytaj to trzy razy, zastanów się, znowu przeczytaj, pomyśl i sobie odpowiedz
Misiekd napisał(a)
Adamo napisał(a)
a po co dawać instrukcję "if male ABC = male aBC" skoro programista wie że porównuje z małymi literami i może samemu tak wprowadzić do kodu i oszczędzić minimalnie pracy procesorowi ("if abc = male aBC"), niby nic ale bardzo mi się nie podoba takie marnowanie zasobów
Przeczytaj to trzy razy, zastanów się, znowu przeczytaj, pomyśl i sobie odpowiedz
przeczytaj to dwanaście razy, zastanów się o czym ty piszesz, pomyśl i powiedz po co piszesz głupie posty ?
chodzi mi o to że jeśli piszący program nie jest downem to może napisać w kodzie:
if Pos('abcdef', AnsiLowerCase(Memo1.Text))
zamiast:
if Pos(AnsiLowerCase('AbCDeF'), AnsiLowerCase(Memo1.Text))
bo chyba umie samemu używając lokalnego mózgu w swojej głowie zamienić pierwszy string na małe litery i oszczędzić zbędnemu wywołaniu funkcji AnsiLowerCase, co innego jakby chciał szukać tekstu z Edit'a np to wtedy nie mając pewności co do wielkości znaków, podwójne użycie LowerCase jest uzasadnione
niech Ci będzie