AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi string durchsuchen und tipps zu while + for-schleifen
Thema durchsuchen
Ansicht
Themen-Optionen

string durchsuchen und tipps zu while + for-schleifen

Ein Thema von delphi-n · begonnen am 5. Okt 2009 · letzter Beitrag vom 6. Okt 2009
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    
delphi-n

Registriert seit: 6. Sep 2009
88 Beiträge
 
#11

Re: [GELÖST] string durchsuchen

  Alt 5. Okt 2009, 19:26
danke, funktioniert perfekt

[edit]:

in

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);

var S: string;
begin
  S := Edit1.Text;
if Pos('hallo', AnsiLowerString(S)) > 0 then
Button1.Visible:=false;
end;

MUSS der zu suchende text (hier hallo) KLEIN geschrieben werden, egal wie der Nutzer ihn dann schreibt, sonst klappt es nicht!

Ist mir beim Testen nur so aufgefallen
  Mit Zitat antworten Zitat
delphi-n

Registriert seit: 6. Sep 2009
88 Beiträge
 
#12

Re: [GELÖST] string durchsuchen

  Alt 5. Okt 2009, 19:42
jetzt hab ich

Delphi-Quellcode:
if Pos('schritt', AnsiLowerCase(S)) > 0 then
begin
 Button1.Click;
 i:=i+1;
 exit;
 end;
if Pos('hallo', AnsiLowerCase(S)) > 0 then
begin
 Button3.Click;
 i:=i+1;
 break;
 end;

was muss ich anstatt break oder exit einsetzten, dass der zurück zur while schleife geht (also nicht aussteigt)?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#13

Re: [GELÖST] string durchsuchen

  Alt 5. Okt 2009, 19:48
Welche Schleife? Zeig mal mehr Code.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
delphi-n

Registriert seit: 6. Sep 2009
88 Beiträge
 
#14

Re: [GELÖST] string durchsuchen

  Alt 5. Okt 2009, 19:51
Delphi-Quellcode:
procedure TForm2.Button5Click(Sender: TObject);
var i:integer;
s:string;
begin
i:=0;

while i<RichEdit1.Lines.Count do
begin
   sleep(100);
  S := RichEdit1.Lines[i];
  Button5.Caption:=S;

if Pos('schritt', AnsiLowerCase(S)) > 0 then
begin
 Button1.Click;
 i:=i+1;
 break;
 end;
if Pos('hallo', AnsiLowerCase(S)) > 0 then
begin
 Button3.Click;
 i:=i+1;
 break;
 end;




end;
end;
das erste macht er, beim zweiten hört er auf
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#15

Re: [GELÖST] string durchsuchen

  Alt 5. Okt 2009, 19:54
Dann lass die breaks doch einfach weg.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Der.Kaktus
Der.Kaktus

Registriert seit: 22. Jan 2008
Ort: Erfurt
958 Beiträge
 
Delphi 7 Enterprise
 
#16

Re: [GELÖST] string durchsuchen

  Alt 5. Okt 2009, 19:55
Zitat von delphi-n:
Delphi-Quellcode:
procedure TForm2.Button5Click(Sender: TObject);
var i:integer;
s:string;
begin
i:=0;

while i<RichEdit1.Lines.Count do
begin
   sleep(100);//<<-----------------------------------------ersetze es mit Application.Processmessages....aber das brauchste nur, wenn sehr grosses Richedit ist ;-)
  S := RichEdit1.Lines[i];
  Button5.Caption:=S;// <<----was wird das?..zum Schnelllesen? ..musste aber Button5.Update evtl. einfuegen..sonst siehst Du nix!

if Pos('schritt', AnsiLowerCase(S)) > 0 then
begin
 Button1.Click;
 i:=i+1;
 break;
 end;
if Pos('hallo', AnsiLowerCase(S)) > 0 then
begin
 Button3.Click;
 i:=i+1;
 break;
 end;




end;
end;
das erste macht er, beim zweiten hört er auf
Gruss Kaki

Repeat Until true=false;
  Mit Zitat antworten Zitat
delphi-n

Registriert seit: 6. Sep 2009
88 Beiträge
 
#17

Re: [GELÖST] string durchsuchen

  Alt 5. Okt 2009, 20:01
der soll ja die nächste zeile vom richedit nehmen.
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#18

Re: [GELÖST] string durchsuchen

  Alt 5. Okt 2009, 20:06
Kurz was dazu:
Zitat von delphi-n:
MUSS der zu suchende text (hier hallo) KLEIN geschrieben werden, egal wie der Nutzer ihn dann schreibt, sonst klappt es nicht!

Ist mir beim Testen nur so aufgefallen
Versuche immer den Code zu verstehen. Der String, mit dem verglichen wird, wird durch "AnsiLowerCase" klein geschrieben. Somit muss der Suchstring ebenfalls klein geschrieben werden.
Es ginge natürlich auch folgendes:

if Pos('HALLO', AnsiUpperCase(S)) > 0 then Das nur als Hinweis: Also immer versuchen zu verstehen, was man in sein Programm übernimmt.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.619 Beiträge
 
Delphi 12 Athens
 
#19

Re: [GELÖST] string durchsuchen

  Alt 5. Okt 2009, 20:08
Macht er doch. Aber Du kannst das auch mit einer for-Schleife lösen.
Delphi-Quellcode:
procedure TForm2.Button5Click(Sender: TObject);
var i:integer;
begin
  for i := 0 to RichEdit1.Lines.Count - 1 do
    begin
      //die folgenden beiden Zeilen sind eigentlich sinnfrei,
      //weil das so schnell gehen dürfte, dass man nichts erkennen kann
      Button5.Caption := RichEdit1.Lines[i];
      Application.ProcessMessages;
      if Pos('schritt', AnsiLowerCase(RichEdit1.Lines[i])) > 0 then
        Button1.Click
      else if Pos('hallo', AnsiLowerCase(RichEdit1.Lines[i])) > 0 then
        Button3.Click;
    end;
end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
delphi-n

Registriert seit: 6. Sep 2009
88 Beiträge
 
#20

Re: [GELÖST] string durchsuchen

  Alt 5. Okt 2009, 20:18
Zitat:
Der String, mit dem verglichen wird, wird durch "AnsiLowerCase" klein geschrieben. Somit muss der Suchstring ebenfalls klein geschrieben werden.
danke, wieder was gelernt


wenn ich das in das richedit schreibe:

Zitat:
schritt
Schritt
Linksdrehen
schritt
Rechtsdrehen
Schritt

mit dem Quellcode:

Delphi-Quellcode:
procedure TForm2.Button5Click(Sender: TObject);
var i:integer;
begin
  for i := 0 to RichEdit1.Lines.Count - 1 do
    begin
     
      Button5.Caption := RichEdit1.Lines[i];
      Application.ProcessMessages;
      if Pos('schritt', AnsiLowerCase(RichEdit1.Lines[i])) > 0 then
        Button1.Click ;
        sleep(200);
       if Pos('Linksdrehen', AnsiLowerCase(RichEdit1.Lines[i])) > 0 then
        Button3.Click;
         sleep(200);
       if Pos('Rechtsdrehen', AnsiLowerCase(RichEdit1.Lines[i])) > 0 then
        Button4.Click;
         sleep(200);
    end;
end;
erscheint alles auf dem button, aber dir buttons 3+4 werden nie gedrückt
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 6     12 34     Letzte »    


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:47 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