Entwickler-Ecke
Sonstiges (Delphi) - Anzahl zählen
tmkb - So 01.12.02 18:10
Titel: Anzahl zählen
Hallo,
Also ich habe eine Textdatei die folgendermaßen aufgebaut ist:
----------------------
192.168.0.4
Erreichbar: Nein
Druckerfreigabe: Aus
192.168.0.7
Erreichbar: Ja
Druckerfreigabe: Aus
192.168.0.12
Erreichbar: Ja
Druckerfreigabe: Ein
usw.
--------------------
Wie könnte ich jetzt am besten zählen wieviel IPs bzw wieviel Computer da jetzt drin stehn. Also im Beispiel sollte er auf 3 kommen usw. Die IPs sind aber nicht immer gleich aufgebaut. Wär cool wenn mir jemand sagen könnte wie ich in ner TXTfile die vorhandenen IPs zählen könnte.
mfg
Arne Unseld
Klabautermann - So 01.12.02 18:17
Hallo,
ich wüde vorschlagen du machst dir erst eine eine Funktion IsIP welcher du einen String übergibst und die True zurückliefert, wenn der Sting eine IP ist (also nut Ziffern und vier Punkt wobei Punkte weder am Anfang noch am ende stehen und auch nichtt Direckt aufeinander folgen. Auch darf keine der Ziffernfolgen einen Wert größer als 255 ergeben.).
Dann liest du deine TextDatei Zeilenweise ein (AssignFile, Resset, ReadLn, CloseFile). Jede Zeile jagst du durch deine Funktion IsIP und erhöst deinen Zähler um eins wenn True zurück kommt.
Gruß
Klabautermann
Keldorn - So 01.12.02 18:18
Hallo,
Vorraussetung: die Textdatei ist immer so aufgebaut: ein gedanke:
dann hast du Gesamte Zeilenanzahl und die Anzahl der Zeilen pro Rechner ist ja auch bekannt. Brauchst also nur Gesamtzeilenanzahl/Zeilen pro Rechner = Anzahl der Rechner.
oder du zähslt die Worte wie Druckerfreigabe oder Erreichbarkeit
Mfg Frank
Anonymous - So 01.12.02 20:05
Versuch es mal so. Du brauchst nur noch die Anzahl zusammen zu zählen.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17:
| procedure TForm1.Button1Click(Sender: TObject); var i, k, p: Integer; s: String; begin with Memo1 do for i := 0 to Lines.Count - 1 do if Length(Lines[i]) > 0 then if Lines[i][1] in ['0'..'9'] then begin s := ''; p := 0;
for k := 1 to Length(Lines[i]) - 1 do if Lines[i][k] in ['0'..'9', '.'] then s := s + Lines[i][k] else Break; for k := 1 to Length(s) do if Lines[i][k] = '.' then Inc(p);
if p = 3 then ShowMessage( 'Gefunden: ' + s ); end; end; |
Eventuell muß das Eine oder Ander noch angepasst werden. Das ganze ist natürlich keine richtige Ip Prüfung, aber auf die Schnelle reicht es. Du willst ja nur zählen wie oft eine Ip vorkommt und nicht ob es eine Ip ist.
Delete - So 01.12.02 20:39
Für so was bietet sich doch eine Ini-Datei gerade zu an. IP als Schlüsselname und die Anzahl der Schlüssel sollte dann recht einfach bestimmbar sein. Ich habe mir da aber jetzt noch keine weiteren Gedanken über die Realisierbarkeit gemacht, war nur so ein Gedanke.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!