|
| Tæl hvor mange poster med samme IP i ListV~ Fra : Morten Trab |
Dato : 08-02-03 16:30 |
|
Jeg har et listview i mit projekt, hvortil jeg tilføjer log-data fra min
router...
Jeg har nu brug for at få talt sammen hvor mange gange hver IP går igen...
Hvordan kan jeg klare dette??
Jeg har ladet mig fortælle at jeg nok skal bruge arrays og et par løkker,
men kan simpelthen ikke gennemskue hvordan jeg kan klare det...Nogen der kan
hjælpe??
Mvh. Morten
| |
Tomas Christiansen (08-02-2003)
| Kommentar Fra : Tomas Christiansen |
Dato : 08-02-03 23:05 |
|
Morten Trab skrev:
> Jeg har et listview i mit projekt, hvortil jeg tilføjer log-data fra
min
> router...
> Jeg har nu brug for at få talt sammen hvor mange gange hver IP går
igen...
I pseudokode kunne det se således ud:
--- --- --- --- --- --- --- --- ---
Opret tom samling af IP-adresser/TÆLLER.
Åbn LOGFIL.
Sålænge der er mere at læse i LOGFIL.
Læs en linie fra LOGFIL.
Find IP i den læste linie.
Hvis en IP blev fundet i linien:
Led efter IP i samlingen af IP-adresser.
Findes IP i samlingen: Førøg dens TÆLLER med 1
Ellers: Opret IP i samlingen og sæt TÆLLER lig 1.
Hop tilbage til "sålænge".
Luk LOGFIL.
--- --- --- --- --- --- --- --- ---
En "samling" af IP-adresser og tællere kan implementeres på flere
forskellige måder.
Èn måde er at bruge to tabeller. Den ene husker IP-adresserne og den
anden tællerne.
Eksempel:
Dim tblIP(1 To 999) As String
Dim tblTæller(1 To 999) As Long
Dim lngAntalIP As Long
Du skal bruge lngAntalIP til at huske det højeste indeks i tabellen
som er i brug.
Bemærk at tabellerne også kan oprettes som dynamiske tabeller, hvor
der ikke fra starten afsættes en fast størrelse. Derved kan man udvide
dem undervejs efter behov.
Det aller-smarteste vil dog nok være at bruge en 'Collection' (evt. to
styk af dem) til at indeholde IP-adresser og tællere. Med
Collection-objekter behøver du ikke at løbe det hele igennem for at
lede efter om IP-adressen ligger der i forvejen, men kan slå direkte
op på den!
-------
Tomas
| |
PowerPoster (08-02-2003)
| Kommentar Fra : PowerPoster |
Dato : 08-02-03 23:45 |
|
"Tomas Christiansen" <toc-nospam-01@blikroer.dk> skrev i en meddelelse
news:b23usa$or8$1@news.cybercity.dk...
[SNIP en hel masse underligt]
Og til det kan jeg kun sige...Sikkert... :)
Lige nu ligner jeg et totalt ?
Mvh. Morten
| |
Morten Trab (08-02-2003)
| Kommentar Fra : Morten Trab |
Dato : 08-02-03 23:53 |
|
Hvad skete der lige der??
"PowerPoster" <powerpost@powerpost.org> skrev i en meddelelse
news:3e458841$0$209$edfadb0f@dread14.news.tele.dk...
> "Tomas Christiansen" <toc-nospam-01@blikroer.dk> skrev i en meddelelse
> news:b23usa$or8$1@news.cybercity.dk...
>
> [SNIP en hel masse underligt]
>
> Og til det kan jeg kun sige...Sikkert... :)
>
> Lige nu ligner jeg et totalt ?
>
> Mvh. Morten
>
>
| |
Tomas Christiansen (09-02-2003)
| Kommentar Fra : Tomas Christiansen |
Dato : 09-02-03 12:46 |
|
Morten Trab skrev:
> Hvad skete der lige der??
Det er vel én som ikke kan forstå pseudokode... ?
Men hvad siger du til det - kan du bruge det til at komme videre?
-------
Tomas
| |
Morten Trab (09-02-2003)
| Kommentar Fra : Morten Trab |
Dato : 09-02-03 13:56 |
|
"Tomas Christiansen" <toc-nospam-01@blikroer.dk> skrev i en meddelelse
news:b25eva$226q$1@news.cybercity.dk...
> Men hvad siger du til det - kan du bruge det til at komme videre?
Slet ikke...Fatter keine af det...
/Morten
| |
Jacob Laue Petersen (09-02-2003)
| Kommentar Fra : Jacob Laue Petersen |
Dato : 09-02-03 15:29 |
|
> I pseudokode kunne det se således ud:
Flot!
God ide at beskrive det med pseudokode, giver en god logisk gennem gang.
Noget man nok burde overveje at gøre mere ud af, istedet for bare at kaste
sig ned i koden.
Jacob Laue Petersen
| |
Morten Trab (09-02-2003)
| Kommentar Fra : Morten Trab |
Dato : 09-02-03 16:25 |
|
"Jacob Laue Petersen" <j@a.p> skrev i en meddelelse
news:3e4664d7$0$71664$edfadb0f@dread11.news.tele.dk...
> God ide at beskrive det med pseudokode, giver en god logisk gennem gang.
Og en masse der ikke fatter noget, og derved dumper denne gruppe da man ikke
kan få noget hjælp som man kan brúge til noget
/Morten
| |
Tomas Christiansen (09-02-2003)
| Kommentar Fra : Tomas Christiansen |
Dato : 09-02-03 17:42 |
|
Morten Trab skrev:
> Og en masse der ikke fatter noget, og derved dumper denne gruppe da
man ikke
> kan få noget hjælp som man kan brúge til noget
Helt ærligt mand!
Du skriver som om du forventer at du bare kan skrive: "Jeg har brug
for dét og dét. Giv mig det!"
Du bliver nødt til selv at arbejde lidt for sagen, vise at du selv
yder en indsats, og så er vi mange, som gerne vil hjælpe dig.
I dit indlæg skriver du "kan simpelthen ikke gennemskue hvordan jeg
kan klare det". Jeg har fortalt dig i menneskeord hvordan problemet
KAN løses.
Glem ordet pseudokode, og læs hvad jeg har skrevet. Omsæt hver enkelt
sætning til VB-kode, og voila!
Det er jo (forhåbentlig) det samme som sker, når du foretager en
analyse inde i dit hovede, og til sidst får det omsat til noget kode.
Jeg har blot nedfældet det i et nyhedsgruppeindlæg.
-------
Tomas
| |
Morten Trab (09-02-2003)
| Kommentar Fra : Morten Trab |
Dato : 09-02-03 17:56 |
|
"Tomas Christiansen" <toc-nospam-01@blikroer.dk> skrev i en meddelelse
news:b260b0$2nm3$1@news.cybercity.dk...
[En hel masse igen]
Det var dog utroligt...Hvor er folks hjælpesomhed henne nu til dags...
Selv eksperten er blevet til sådan et sted hvor man bare får en roman smidt
i hovedet om hvordan man kan gøre...
Det kan jeg desværre bare ikke bruge til noget...Jeg har heller aldrig
KRÆVET eller SAGT at jeg ville have koden smidt i hovedet...
Jeg er kold overfor om det er noget der er kodet til mig, eller noget som er
en del af et andet program...Alt jeg behøver er et eksempel på hvordan man
ville lave det, da jeg ikke kan se for mig hvordan den skal kunne tjekke om
den IP den har lige nu allerede er fundet...
Jeg kan se hvordan man kan med 2 forskellige IP'ere, men da der er flere
1000 der besøger min server dagligt, kan jeg ikke længere se hvordan det
skulle kunne lade sig gøre...
Mvh. Morten
| |
Tomas Christiansen (09-02-2003)
| Kommentar Fra : Tomas Christiansen |
Dato : 09-02-03 20:35 |
|
Morten Trab skrev:
> Jeg kan se hvordan man kan med 2 forskellige IP'ere, men da der er
flere
> 1000 der besøger min server dagligt, kan jeg ikke længere se hvordan
det
> skulle kunne lade sig gøre...
Du har vist ikke helt forstået mit budskab, så jeg vil præcisere hvad
jeg mener:
Vis et eksempel. Vis hvad du har fundet ud af indtil nu.
Jeg vil umiddelbart mene, at hvis du har løst problemet for 2
IP-adresser, har du også løst det for 1000, men det skyldes måske at
jeg altid forsøger at tænke generelt, når jeg programmerer.
> Og desuden er det ikke en logfil det ligger i...Der ligger i et
listview...
Nå, ja, da sørme også. Jeg har det med kun at læse indholdet af et
indlæg, og der skrev du noget med en logfil.
Lad os da prøve igen:
--- --- --- --- --- --- --- --- --- --- ---
Opret tabel, tblIP, til IP-adresser.
Opret tabel, tblTÆL, til tællere.
Sæt AI til 0.
Sæt LI lig første indeks i LISTVIEW...
Sæt IP til IP-adressen i LISTVIEW indeks LI.
Sæt FUNDET til falsk.
Sæt SI lig første indeks i tblIP...
Hvis IP er lig tblIP indeks SI, så:
sæt FUNDET lig sand.
...indtil SI > AI eller FUNDET er sand.
Hvis FUNDET er sand, så:
forøg tblTÆL indeks SI med 1
ellers:
Forøg AI med 1.
Sæt tblIP indeks AI til IP.
Sæt tblTÆL indeks AI til 1.
Forøg LI med 1.
....indtil LI > sidste index i LISTVIEW.
--- --- --- --- --- --- --- --- --- --- ---
Hvis du overvinder din modstand og kigger lidt på hvad jeg har
skrevet, vil det gå op for dig, at du kan omsætte det næsten 1:1,
linie for linie, til ægte VB6 kode (med forbehold for fejl,
naturligvis).
Metoden beskrevet ovenfor er dog, hvis den uden omtanke omsættes 1:1
til VB-kode, ikke særlig effektiv hvad angår køretid (CPU-tid), men
kan derefter forholdsvis let modificeres til at være særdeles
køretidseffektiv.
-------
Tomas
| |
Morten Trab (09-02-2003)
| Kommentar Fra : Morten Trab |
Dato : 09-02-03 22:57 |
|
"Tomas Christiansen" <toc-nospam-01@blikroer.dk> skrev i en meddelelse
news:b26aeq$21r$1@news.cybercity.dk...
> Lad os da prøve igen:
> --- --- --- --- --- --- --- --- --- --- ---
> Opret tabel, tblIP, til IP-adresser.
> Opret tabel, tblTÆL, til tællere.
> Sæt AI til 0.
> Sæt LI lig første indeks i LISTVIEW...
> Sæt IP til IP-adressen i LISTVIEW indeks LI.
> Sæt FUNDET til falsk.
> Sæt SI lig første indeks i tblIP...
> Hvis IP er lig tblIP indeks SI, så:
> sæt FUNDET lig sand.
> ...indtil SI > AI eller FUNDET er sand.
> Hvis FUNDET er sand, så:
> forøg tblTÆL indeks SI med 1
> ellers:
> Forøg AI med 1.
> Sæt tblIP indeks AI til IP.
> Sæt tblTÆL indeks AI til 1.
> Forøg LI med 1.
> ...indtil LI > sidste index i LISTVIEW.
> --- --- --- --- --- --- --- --- --- --- ---
Og det fatter jeg STADIG zip og keine af...Hvis du ikke VIL hjælpe med noget
brugbart så lad helt være med at forsøge!
Folks lyst til at hjælpe er åbenbart på et nulpunkt for tiden...Synes at
uanset hvad/hvor man søger hjælp får man udelukkende bras smidt tilbage i
hovedet...
/Morten
| |
Tomas Christiansen (09-02-2003)
| Kommentar Fra : Tomas Christiansen |
Dato : 09-02-03 23:21 |
|
Morten Trab skrev:
> Og det fatter jeg STADIG zip og keine af...Hvis du ikke VIL hjælpe
med noget
> brugbart så lad helt være med at forsøge!
>
> Folks lyst til at hjælpe er åbenbart på et nulpunkt for
tiden...Synes at
> uanset hvad/hvor man søger hjælp får man udelukkende bras smidt
tilbage i
> hovedet...
Tro mig, jeg hjælper dig ikke længere.
At du opfater min hjælp som bras, er din sag, men du skal ikke klandre
mig for det.
Du _kunne_ (måske) have lært noget her...
-------
Tomas
| |
Morten Trab (09-02-2003)
| Kommentar Fra : Morten Trab |
Dato : 09-02-03 23:31 |
|
"Tomas Christiansen" <toc-nospam-01@blikroer.dk> skrev i en meddelelse
news:b26k5j$cs3$1@news.cybercity.dk...
> Tro mig, jeg hjælper dig ikke længere.
Tak, så kan det være at dem der gider hjælpe kan komme til??
> At du opfater min hjælp som bras, er din sag, men du skal ikke klandre
> mig for det.
> Du _kunne_ (måske) have lært noget her...
Det kunne jeg sikkert sagtens, men når du ikke vil komme med andet end det
der pseudu-et-eller-andet som jeg ikke kan bruge til en disse, så har jeg
ikke meget lyst til at få hjælp af dig...
/Morten
| |
Jacob Laue Petersen (10-02-2003)
| Kommentar Fra : Jacob Laue Petersen |
Dato : 10-02-03 14:29 |
|
Glem det, det nytter ikke noget...
Jacob Laue Petersen
| |
Morten Trab (09-02-2003)
| Kommentar Fra : Morten Trab |
Dato : 09-02-03 18:00 |
|
Og desuden er det ikke en logfil det ligger i...Der ligger i et listview...
| |
preben nielsen (09-02-2003)
| Kommentar Fra : preben nielsen |
Dato : 09-02-03 18:04 |
|
"Morten Trab" <mortenREMOVE@trab.dk> skrev i en meddelelse
news:b25rtj$eh8$1@sunsite.dk...
> "Jacob Laue Petersen" <j@a.p> skrev i en meddelelse
> news:3e4664d7$0$71664$edfadb0f@dread11.news.tele.dk...
>
> > God ide at beskrive det med pseudokode, giver en god logisk
gennem gang.
>
> Og en masse der ikke fatter noget, og derved dumper denne gruppe
da man ikke
> kan få noget hjælp som man kan brúge til noget
Hvis ikke du kan bruge Tomas' forslag, så tror jeg ikke at det er
_dig_, som skal løse det pågældende problem.
> /Morten
--
/\ preben nielsen
\/\ prel@post.tele.dk
| |
Morten Trab (09-02-2003)
| Kommentar Fra : Morten Trab |
Dato : 09-02-03 18:05 |
|
"preben nielsen" <prel@post.tele.dk> skrev i en meddelelse
news:3e4689e0$0$162$edfadb0f@dread16.news.tele.dk...
> Hvis ikke du kan bruge Tomas' forslag, så tror jeg ikke at det er
> _dig_, som skal løse det pågældende problem.
Det er heller ikke mig det skal løse det...Det er mig der har problemet og
som ikke _kan_ løse det...
Mvh. Morten
| |
Per Mosgaard Larsen (11-02-2003)
| Kommentar Fra : Per Mosgaard Larsen |
Dato : 11-02-03 21:03 |
|
Hej
Jeg er også lidt nybegynder med VB og har fulgt med i debatten. Det er
utrolig meget hjælp du har fået - at du så ikke har kunne forstå koden, er
ikke noget at gøre ved (det er ikke negativt ment).
Men husk at der er nogle der i god mening har brugt tid på at hjælpe dig -
ikke kun med noget kode, men med hjælp til selvhjælp - således at du
forhåbentlig lettere vil kunne klare en anden opgave.
OG HUSK de har gjort det i en god mening - det er fint at der er nogle der
gider hjælpe
Hilsen
Per Larsen
"preben nielsen" <prel@post.tele.dk> skrev i en meddelelse
news:3e4689e0$0$162$edfadb0f@dread16.news.tele.dk...
>
> "Morten Trab" <mortenREMOVE@trab.dk> skrev i en meddelelse
> news:b25rtj$eh8$1@sunsite.dk...
> > "Jacob Laue Petersen" <j@a.p> skrev i en meddelelse
> > news:3e4664d7$0$71664$edfadb0f@dread11.news.tele.dk...
> >
> > > God ide at beskrive det med pseudokode, giver en god logisk
> gennem gang.
> >
> > Og en masse der ikke fatter noget, og derved dumper denne gruppe
> da man ikke
> > kan få noget hjælp som man kan brúge til noget
>
> Hvis ikke du kan bruge Tomas' forslag, så tror jeg ikke at det er
> _dig_, som skal løse det pågældende problem.
>
> > /Morten
>
> --
> /\ preben nielsen
> \/\ prel@post.tele.dk
>
>
| |
Bjarne Østergård (10-02-2003)
| Kommentar Fra : Bjarne Østergård |
Dato : 10-02-03 00:01 |
|
"Morten Trab" <mortenREMOVE@trab.dk> skrev i en meddelelse
news:b237qv$3h8$1@sunsite.dk...
> Jeg har et listview i mit projekt, hvortil jeg tilføjer log-data fra min
> router...
>
> Jeg har nu brug for at få talt sammen hvor mange gange hver IP går igen...
>
> Hvordan kan jeg klare dette??
>
> Jeg har ladet mig fortælle at jeg nok skal bruge arrays og et par løkker,
> men kan simpelthen ikke gennemskue hvordan jeg kan klare det...Nogen der
kan
> hjælpe??
>
> Mvh. Morten
Hm her er en lidt nem løsning
læg dem i en sorteret liste
løb nu listen igennem med en løkke.
lav et 2 dim array der kan holde ip adresse og antal besøg
Løb listen igennem, for ens ip tælles array der holder antal en op
hvis ip skifter tilføjes en ny ip til array der holder ip og antal sættes
til en
eller add det hele til en ny liste, du vil nu have en liste med IP adresser
og antal
Dette skulle være rimeligt nem at gå til.
MVH
Bjarne
| |
Carsten Suurland (10-02-2003)
| Kommentar Fra : Carsten Suurland |
Dato : 10-02-03 11:23 |
|
Værso!
Og tag så lige takke med det folk giver dig (også Pseudokode)
Option Explicit
Private mvarIPs As Collection
Private mvarUniqueIPs As Collection
Private Sub Form_Load()
Dim cnt As Long
Dim IP As String
ListView1.ListItems.Add , , "217.100.20.00"
ListView1.ListItems.Add , , "217.100.20.10"
ListView1.ListItems.Add , , "217.100.20.10"
ListView1.ListItems.Add , , "217.100.20.45"
ListView1.ListItems.Add , , "217.100.20.45"
ListView1.ListItems.Add , , "217.100.20.45"
ListView1.ListItems.Add , , "217.100.20.45"
Dim lstItem As ListItem
For Each lstItem In ListView1.ListItems
IP = lstItem.Text
AddIP IP
Next
End Sub
Private Sub AddIP(ByVal NewIP As String)
If mvarIPs Is Nothing Then
Set mvarIPs = New Collection
Set mvarUniqueIPs = New Collection
End If
On Error Resume Next
Dim currentCount As Long
currentCount = mvarIPs(NewIP)
currentCount = currentCount + 1
mvarIPs.Remove NewIP
mvarIPs.Add currentCount, NewIP
mvarUniqueIPs.Add NewIP, NewIP
End Sub
Nu indeholder mvarUniqueIPs alle de unikke IP'er der er fundet.
mvarIPs indeholder antal gange hver IP blev fundet
/Carsten Suurland
| |
Morten Trab (10-02-2003)
| Kommentar Fra : Morten Trab |
Dato : 10-02-03 22:36 |
|
Jeg har fundet en løsning der virker godt nok...Med hjælp fra en af de
personer der gider hjælpe folk med deres problemer...
Skal for eftertiden huske at hvis man har et problem der ikke har den store
betydning, og som ikke haster ret meget, er det herinde man skal stille
det...
/Morten
| |
Carsten Suurland (11-02-2003)
| Kommentar Fra : Carsten Suurland |
Dato : 11-02-03 00:48 |
|
Hej Morten
Jeg tror også der er mange der husker ikke at svare...
"Morten Trab" <mortenREMOVE@trab.dk> wrote in message
news:b295vt$ea2$1@sunsite.dk...
> Jeg har fundet en løsning der virker godt nok...Med hjælp fra en af de
> personer der gider hjælpe folk med deres problemer...
>
> Skal for eftertiden huske at hvis man har et problem der ikke har den
store
> betydning, og som ikke haster ret meget, er det herinde man skal stille
> det...
>
> /Morten
>
>
| |
Claus Bernth (14-02-2003)
| Kommentar Fra : Claus Bernth |
Dato : 14-02-03 10:26 |
|
Morten Trab wrote a lot of bull:
> Jeg har fundet en løsning der virker godt nok...Med hjælp fra en af de
> personer der gider hjælpe folk med deres problemer...
Magen til utaknemmelighed skal man lede længe efter!!!
Jeg har aldrig tidligere oplevet nogle der opfører sig så uforskammet
overfor mennesker der over flere gange har forsøgt at hjælpe dig!
Da jeg læste tråden blev jeg mere og mere overbevist om at du bare er en
latterlig lille *TROLL* - sikkert ikke mere end 12-13 år - der forsøger
at skabe lidt rav i den, i en ellers velfungerende gruppe.
Gå i seng og skam dig - det er over din sengetid!
-C
| |
|
|