Autor Beitrag
tmkb
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 59



BeitragVerfasst: So 01.12.02 18:10 
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
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Veteran
Beiträge: 6366
Erhaltene Danke: 60

Windows 7, Ubuntu
Delphi 7 Prof.
BeitragVerfasst: 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
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 2266
Erhaltene Danke: 4

Vista
D6 Prof, D 2005 Pro, D2007 Pro, DelphiXE2 Pro
BeitragVerfasst: 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

_________________
Lükes Grundlage der Programmierung: Es wird nicht funktionieren.
(Murphy)
Popov
Gast
Erhaltene Danke: 1



BeitragVerfasst: So 01.12.02 20:05 
Versuch es mal so. Du brauchst nur noch die Anzahl zusammen zu zählen.

ausblenden 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.
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: 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.