AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Listen vergleichen

Ein Thema von EWeiss · begonnen am 4. Jun 2018 · letzter Beitrag vom 4. Jun 2018
Antwort Antwort
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#1

AW: Listen vergleichen

  Alt 4. Jun 2018, 13:00
So wie ich das sehe hat TiGü recht,
sein Code sollte reichen, könnte man sogar noch etwas beschleunigen wenn man nach dem Finden abbricht.

Delphi-Quellcode:
 // prüfen ob aktiver prozess existiert
  bFound := false;
  for K := 0 to (vProcList.Count - 1) do
  begin
    if vProzessID.Find(vProcList[K].ID, proc) then
    begin
      bFound := true;
      break; // Abbrechen da wir den Process haben
    end;
  end;
Fritz Westermann
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#2

AW: Listen vergleichen

  Alt 4. Jun 2018, 13:05
So wie ich das sehe hat TiGü recht,
sein Code sollte reichen, könnte man sogar noch etwas beschleunigen wenn man nach dem Finden abbricht.

Delphi-Quellcode:
 // prüfen ob aktiver prozess existiert
  bFound := false;
  for K := 0 to (vProcList.Count - 1) do
  begin
    if vProzessID.Find(vProcList[K].ID, proc) then
    begin
      bFound := true;
      break; // Abbrechen da wir den Process haben
    end;
  end;
Ich habe es versucht und das Ergebnis ist leider negativ.
Wenn ich nur so prüfe ist bFound immer true und das Ergebnis wäre mein Task mit der ID die nicht mehr existiert wird nicht beendet.

gruss
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Listen vergleichen

  Alt 4. Jun 2018, 13:08
Wenn es so ist steht der Process in vProcessID.
Dein Problem ist in diesem Fall ein anderes......
Wie wäre es mit Debuggen?
Fritz Westermann
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#4

AW: Listen vergleichen

  Alt 4. Jun 2018, 13:13
Wenn es so ist steht der Process in vProcessID.
Dein Problem ist in diesem Fall ein anderes......
Wie wäre es mit Debuggen?
Das nutzt mir nichts und ja habe ich schon.
Ich muss alle Prozesse mit den ID's in der Liste vergleichen und auf dem wege geht es nicht
weil beim ersten vergleich ich schon dein "Beispiele" mit break.. aus der Liste rausspringe.

False wird nie auftreten.

gruss
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: Listen vergleichen

  Alt 4. Jun 2018, 13:18
Emil dann steht das auch da drin,


Delphi-Quellcode:
var
   k, i: integer;
begin
   bFound := false;
   for k := 0 to (vProcList.Count - 1) do
      begin
         for i := 0 to vProzessID.Count do
               vProcList[k].ID = vProzessID[i].ID then
               begin
                  bFound := true;
                  break;
               end;

        if bfound then break;

      end;
end;

Das ist jetzt das gleiche ohne die Find function.....
Fritz Westermann
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#6

AW: Listen vergleichen

  Alt 4. Jun 2018, 13:27
Danke werde es gleich mal versuchen..

Nur nochmal zur vorherigen Version.. mit deinem Break

Bilder sagen mehr als worte.

Beim ersten prüfen durchlauf ich die Liste und wenn der erste Eintrag gefunden wurde schaltest du auf true und springst raus
aus der Funktion es wird also niemals auf die anderen Einträge hin in meiner Liste geprüft.

Deshalb wird false niemals eintreten.
Was ist dann mit der ID 2260 und der 4932 ? die werden in deinem Fall niemals geprüft.

Deine neue Version werde ich mal testen Danke.

EDIT:
vProcList[k].ID hat nur lese Eigenschaft.
deshalb der Umweg über Find

gruss

Geändert von EWeiss (11. Jul 2019 um 15:51 Uhr)
  Mit Zitat antworten Zitat
Fritzew

Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Listen vergleichen

  Alt 4. Jun 2018, 13:30
Ok dann fassen wir zusammen, Du willst überprüfen ob einer der einträge in vProzessID in vProcList ist?
Dann lass das break einfach weg.
Fritz Westermann
  Mit Zitat antworten Zitat
Antwort Antwort


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 17:58 Uhr.
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