Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Fragen zur Memobox (https://www.delphipraxis.net/50987-fragen-zur-memobox.html)

didda 3. Aug 2005 22:58


Fragen zur Memobox
 
Servus!
Hab mich in letzter Zeit mal wieder ein bisschen mit Delphi beschäftigt und da ich mich für netzwerke interessiere hab ich mir einfach mal nen Portscanner geschrieben, der inzwischen sogar funktioniert :)
Was mich jetzt jedoch interessieren würde wäre ein Ip scanner. ich habs bis jetzt so gemacht dass ich in eine memobox eine liste der adressen in unserem netzwerk importiere (ca 15 stück), wenn der port offen ist soll die ip in eine zweite memobox kopiert werden. jedoch hakt es bei mir daran das ich es nich schaffe das delphi die ips einzeln abarbeitet, also mit der ersten ip beginnt, versucht zu connecten und dann zur zweiten zeile geht und wieder versucht zu connecten.

BSP:
Wenn der inhalt der memobox dieser wäre:

192.168.2.100
192.168.2.101
192.168.2.102
192.168.2.103
192.168.2.104
192.168.2.105
192.168.2.106
192.168.2.107

als erstes soll er auf 192.168.2.100 verbinden, wenn dies erledigt ist auf 192.168.2.101, dann 192.168.2.102 usw usw, wie geht sowas? denke mal das sowas eigentlich ganz einfach ist, aber ich momentan nich ganz draufkomme, wäre cool wenn ihr mir helfen könntet.
MfG,
didda

Nicolai1234 3. Aug 2005 23:09

Re: Fragen zur Memobox
 
Delphi-Quellcode:
var i: integer;
...
for i := 0 to MemoBox.Lines.count-1 do
   begin
   //mach was
   // aktuelle IP ist MemoBox.Lines[i];
   end;
sollte gehen..., oder?

dahead 3. Aug 2005 23:10

Re: Fragen zur Memobox
 
du könntest ja mal deinen code schnipsel posten.

ich hoffe du verwendest die memos nur zur ausgabe, und nicht zur speicherung?

um zeilen einzeln aus einem memo auszulesen würde ich wie folgt vorgehen:

var
I: Integer;
begin
for I := 0 to Memo.Lines.Count - 1 do
TesteIP(Memo.Lines[I]);
end;

also einfach eine schleife. besser wäre allerdings die schleife über dein (bspw.) array laufen zu lassen.
interessant wäre hier halt, wie du die ip's speicherst.

didda 3. Aug 2005 23:31

Re: Fragen zur Memobox
 
mir ist eben was einfefallen, habs jetzt so:
Delphi-Quellcode:
a:=0;
idftp1.username:='Ho1';
idftp1.password:='testtest';
repeat

labelededit2.Text:=memo1.Lines[a]; //da a ja 0 ist fängt er einfach mit der ersten zeile an
idftp1.host:=labelededit2.Text;
idftp1.Connect(); //versucht zu connecten
if idftp1.Connected = true then memo2.lines.Add(labelededit2.Text); //wenns geht kommts ins memo2
idftp1.Disconnect;
application.ProcessMessages;
a:=a+1; //a wird um 1 erhört, also die nächste zeile in memo1 beginnt von oben

until
a = i; //bis a gleich der anzahl der zeilen in memo1
label1.Caption:='done' //fertigmeldung ausgeben
mag zwar noch nicht ganz sauber sein, aber ich muss zugeben das sich noch ein n00b bin :)

DANKE für eure Hilfe =o]

Nicolai1234 3. Aug 2005 23:35

Re: Fragen zur Memobox
 
Da ist ein genereller Denkfehler drin.
Du benutzt die Memos zum speichern von Daten und die Labels zur weitergabe. Das ist nicht gut.

Such mal nach TStringList oder so. Da kannst du die Werte speichern und bearbeiten und dann direkt an die ftp-Komponente weitergeben.
Über ein Label kannst du dir noch anzeigen lassen, bei wecher IP er gerade ist.

Das wäre auf jeden Fall der "schönere" Weg!

didda 4. Aug 2005 00:00

Re: Fragen zur Memobox
 
ich werds mir mal anschauen, muss momentan erstma noch mit anderen programm problemem kämpfen.. wie kann ich die fehlermeldungen umgehen die kommen wenn ein connection timeout kommt? also das dann einfach die nächste ip verarbeitet wird, bekomms irgendwie nich so ganz hin..

Luckie 4. Aug 2005 00:08

Re: Fragen zur Memobox
 
Kapsele es in einem try-except Block.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 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