Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Vergleich ??? (https://www.delphipraxis.net/98788-vergleich.html)

SaFu 1. Sep 2007 13:14


Vergleich ???
 
Hi

Kann mir mal einer veraten wie ich diesen vergleich herstelle steh gerade auf dem schlauch

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var
  s,za: String;
  zz,i: Integer;
begin
  Memo1.Lines.Clear;
   getConnectionList(Memo1.Lines);
  for i:=0 to Memo1.Lines.Count-1 do
  begin
    zz := Pos(' TCP   127.0.0.1:1092         127.0.0.1:18350        HERGESTELLT', Memo1.Lines[i]);
    if zz > 0 then
    begin
      s:= Copy(Memo1.Lines[i],0,66);

      Memo2.Lines.add(s);
      Label3.Caption:= s;
      za:= IntToStr(zz);
      Exit;
    end;
  if s = zz then
    begin
     label4.Caption:= 'Hallo';
    end;
  end;
end;

Danke schonmal Sascha

Matze 1. Sep 2007 13:18

Re: Vergleich ???
 
Hallo,

was möchtest du denn genau erreichen? Du vergleichst nun die Position (Typ: Integer) mit dem Zeileninhalt (Typ: Sting). Das kann natürlich nicht gehen.

scrat1979 1. Sep 2007 13:22

Re: Vergleich ???
 
Vielleicht liegt es an der Anzahl der Leerzeichen in den Strings!?! Ein Vorschlag wäre es, jeweils alle Leerzeichen vor dem Vergleich zu eliminieren.

SCRaT

SaFu 1. Sep 2007 13:23

Re: Vergleich ???
 
Ah daran liegt das

Naja will soll ich das erklären ich bekomme ja über cmd (getConnectionList(Memo1.Lines);)
an diser stelle danke an Klaus01 die liste
Delphi-Quellcode:
Aktive Verbindungen

  Proto Lokale Adresse        Remoteadresse         Status
  TCP   85.180.211.254:1045    207.46.106.26:1863     HERGESTELLT
  TCP   127.0.0.1:1092         127.0.0.1:18350        HERGESTELLT
  TCP   127.0.0.1:1354         127.0.0.1:18350        WARTEND
  TCP   127.0.0.1:1355         127.0.0.1:18350        WARTEND
  TCP   127.0.0.1:18350        127.0.0.1:1092         HERGESTELLT
jetzt wird diese Pos gefunden mit dem String
Delphi-Quellcode:
 TCP   127.0.0.1:1092         127.0.0.1:18350        HERGESTELLT
Jetzt würde ich gerne diesen String vergleichen sollange der noch da ist passiert nichts aber wenn die verbindung nicht mehr da ist findet er diesen String ja nicht mehr und dann sol was Passieren

Matze 1. Sep 2007 13:29

Re: Vergleich ???
 
Zitat:

Zitat von fuknersascha
Jetzt würde ich gerne diesen String vergleichen sollange der noch da ist passiert nichts aber wenn die verbindung nicht mehr da ist findet er diesen String ja nicht mehr und dann sol was Passieren

Hm das machst du ja im Endeffekt schon.

Delphi-Quellcode:
IstDa := false; // eine lokale boolsche Variable

for i := 0 to Memo1.Lines.Count - 1 do
begin
  if Memo1.Lines[i] = ' TCP   127.0.0.1:1092         127.0.0.1:18350        HERGESTELLT' then
  begin
    // den String gibt's
    IstDa := true;
    break;
  end;
end;

if not IstDa then
begin
  // den String gibt's nicht
end;
Der Code ist übrigens schneller, wenn du nicht ständig auf die VCL (TMemo) zugreifst, sondern intern beispielsweise eine StringList nutzt und diese beim Vergleich und anderen Operationen durch gehst.
Wie Michael vorgeschlagen hat, kann es u.U. besser sein, die Leerzeichen zu entfernen. Habe ich dich nun richtig verstanden? *g*

SaFu 1. Sep 2007 13:33

Re: Vergleich ???
 
Ja so soll es sein mit den lehrzeichen enfernen weis ich nicht, nicht das ich noch fehler bekomme weil der string zum verglich nicht mehr stimmt

Zitat:

Der Code ist übrigens schneller, wenn du nicht ständig auf die VCL (TMemo) zugreifst, sondern intern beispielsweise eine StringList nutzt und diese beim Vergleich und anderen Operationen durch gehst.
ja ich will ja auf das memo verzichten das soll alles im hintergrund passieren und auch nicht mit einenm Button sondern mit einem timer weil der vergleich ja alle 8 minuten passieren soll.

Muss halt mal gucken wie ich das noch mache

Matze 1. Sep 2007 13:40

Re: Vergleich ???
 
Mir kommt grad noch eine Idee, wie es auch gehen könnte:

Delphi-Quellcode:
if Pos(' TCP   127.0.0.1:1092         127.0.0.1:18350        HERGESTELLT', Memo1.Text) > 0 then
  // gibt's
else
  // gibt's nicht

SaFu 1. Sep 2007 13:43

Re: Vergleich ???
 
Naja werde ich heuteabend mal ausprobieren wenn das so einfach ist freu ich mich schon

muss jetzt auf einen geburtstag die wird 70 freu mich schon

Party :party: :party: :kotz:

SaFu 2. Sep 2007 22:31

Re: Vergleich ???
 
Ja das klappt wunderbar jetzt muss ich nur noch das ding in eine Stringlist reinsetzen.

Aber eigentlich ist es egal ob der code schnell ist oder nicht

Aber danke nochmal

SaFu 2. Sep 2007 22:40

Re: Vergleich ???
 
Nur nochmal ne Frage ist das so richtig

Delphi-Quellcode:
 procedure TForm1.Button4Click(Sender: TObject);
Var pt: TPoint;
    Liste: TStringList;
begin
 Liste := TStringList.Create;
 getConnectionList(Liste);
  begin
   if Pos(' TCP   127.0.0.1:1028         127.0.0.1:18350        HERGESTELLT', Liste.Text) > 0 then
    begin
     Label3.Caption:='Ja';
    end
    else
    begin
     pt:= Point(Width + 300, Top + 100);
     Mouse.CursorPos := ClientToScreen(pt)
    end;
  end;
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:14 Uhr.
Seite 1 von 2  1 2      

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 by Thomas Breitkreuz