Delphi-PRAXiS
Seite 3 von 6     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi string durchsuchen und tipps zu while + for-schleifen (https://www.delphipraxis.net/141239-string-durchsuchen-und-tipps-zu-while-schleifen.html)

DeddyH 5. Okt 2009 19:21

Re: [GELÖST] string durchsuchen
 
Hast Du mal einen Haltepunkt gesetzt und bist anschließend durchgesteppt? Übrigens wird in Deinem Code jedes sleep ausgeführt (also insgesamt 3 mal), ist das Absicht?

[edit] Matze, Du bist zu langsam heute :lol: [/edit]

Matze 5. Okt 2009 19:22

Re: [GELÖST] string durchsuchen
 
Ein Hinweis, der nicht zur Frage gehört:

Die Sleep-Aufrufe werden immer alle ausgeführt. Wenn du mehrere Anweisungen einem if zuordnen möchtest, musst du das so machen:

Delphi-Quellcode:
if Pos('schritt', AnsiLowerCase(RichEdit1.Lines[i])) > 0 then
begin
  Button1.Click;
  Sleep(200);
end;
Edit: Der Turbo-Opa macht mich fertig. :mrgreen:

Der.Kaktus 5. Okt 2009 19:23

Re: [GELÖST] string durchsuchen
 
Zitat:

Zitat von delphi-n
Zitat:

Der String, mit dem verglichen wird, wird durch "AnsiLowerCase" klein geschrieben. Somit muss der Suchstring ebenfalls klein geschrieben werden.
danke, wieder was gelernt :thumb:


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//<----------------ist OK
        Button1.Click ;
        sleep(200); //auch Application.Processmessages nehmen!
       if Pos('Linksdrehen', AnsiLowerCase(RichEdit1.Lines[i])) > 0 then //<--Ansilower heisst..alles klein..dein Wert ist aber "L"inksdrehen..statt "linksdrehen"
        Button3.Click;
         sleep(200);//auch Application.Processmessages nehmen!
       if Pos('Rechtsdrehen', AnsiLowerCase(RichEdit1.Lines[i])) > 0 then // wie bei Linksdrehen..nur eben Rechts
        Button4.Click;
         sleep(200);//auch Application.Processmessages nehmen!
    end;
end;
erscheint alles auf dem button, aber dir buttons 3+4 werden nie gedrückt


[Edit] Appli"c"ation[/Edit]

DeddyH 5. Okt 2009 19:24

Re: [GELÖST] string durchsuchen
 
Sachma Kaki, gehört da vielleicht noch Text dazu? :gruebel:

Matze 5. Okt 2009 19:25

Re: [GELÖST] string durchsuchen
 
Lies die Kommentare im Code. ;) Zugegeben, ich war auch erst irritiert, da alles zitiert wurde.

delphi-n 5. Okt 2009 19:27

Re: [GELÖST] string durchsuchen
 
Zitat:

Übrigens wird in Deinem Code jedes sleep ausgeführt (also insgesamt 3 mal), ist das Absicht?
ja, der soll nicht alles auf einmal machen; man soll auf dem Button folgen können

@matze: guter hinweis, hätt ich glatt übersehen :thumb:


@Der.Kaktus:

Zitat:

<--Ansilower heisst..alles klein..dein Wert ist aber "L"inksdrehen..statt "linksdrehen"
es wird auch immer später, :vernupft:

und wie lange wartet der bei "Application.ProcessMessages;" ?

Der.Kaktus 5. Okt 2009 19:27

Re: [GELÖST] string durchsuchen
 
Zitat:

Zitat von DeddyH
Sachma Kaki, gehört da vielleicht noch Text dazu? :gruebel:

Text iss gruen :-D :cheers: ...[OT] Sorry..da fiel mir nix weiter ein ;-) [/OT]

DeddyH 5. Okt 2009 19:27

Re: [GELÖST] string durchsuchen
 
Oh Mann, dabei hatte ich das beim ersten Mal sogar bemerkt :wall:

Der.Kaktus 5. Okt 2009 19:29

Re: [GELÖST] string durchsuchen
 
Zitat:

Zitat von delphi-n
Zitat:

Übrigens wird in Deinem Code jedes sleep ausgeführt (also insgesamt 3 mal), ist das Absicht?

und wie lange wartet der bei "Application.ProcessMessages;" ?

warten tut der nicht..er gibt dem System Zeit..andere Befehlen(von anderen Programmen ) abzuarbeiten...wenn Du warten willst?!! dann natuerlich sleep(xxx)..aber glaube ich nicht.

Matze 5. Okt 2009 19:30

Re: [GELÖST] string durchsuchen
 
Zitat:

Zitat von delphi-n
und wie lange wartet der bei "Application.ProcessMessages;" ?

Sekundenbruchteile. ;) Du solltest es ausführen, damit du siehst, was das Programm macht. Sonst läuft es durch und du sieht nicht "live", was nach den jeweiligen Aufrufen in der Schleife passiert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:59 Uhr.
Seite 3 von 6     123 45     Letzte »    

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