Avatar billede noaz Nybegynder
14. juni 2003 - 14:59 Der er 14 kommentarer og
2 løsninger

find ip adresser i en fil

jeg skal bruge et program der åbner en fil (ex. test.txt), bearbejder byte for byte og lægger alle ip adresser over i en anden fil (ex. ip.txt).

alle tegn der ikke er en del af ip adressen skal lægges over i en trejde fil (ex. andet.txt).

ip adresserne behøver ikke nødvendigvis at være *.*.*.*, men kan også være indelt med andre tegn og evt. forskellige tegn mellem tallene..
Avatar billede sjh Nybegynder
14. juni 2003 - 15:32 #1
Er det sådan du mener: (forskellige tegn mellem tallene..)


test.txt ->
Pia har 80 kr i sin lomme og for 150 kroner af sin far, nu har Pia 230 kroner, den bruger hun på et par nye sko som koster 199 kr.
<-

ip.txt ->
80.150.130.199
<-

andet.txt ->
Pia har kr i sin lomme og for kroner af sin far, nu har Pia kroner, den bruger hun på et par nye sko som koster kr.
<-
Avatar billede sjh Nybegynder
14. juni 2003 - 15:37 #2
230 og ikke 130 :o)

ip.txt ->
80.150.230.199
<-
Avatar billede noaz Nybegynder
14. juni 2003 - 15:50 #3
tegnet skal max være 1 karakter langt..
ex. 127:255;123-97 el. 127|255!123 97
resten ser rigtigt ud.. (altså med at smide ip'erne i ip.txt og resten i andet.txt)
Avatar billede noaz Nybegynder
14. juni 2003 - 15:56 #4
programmet skal kun læse én byte ad gangen
Avatar billede sjh Nybegynder
14. juni 2003 - 15:56 #5
kan det også være: ex. 127F255s123p97 el. 127u255K123W97

og skal de tegn så med i andet.txt
(FsP el. uKW)
Avatar billede noaz Nybegynder
14. juni 2003 - 16:04 #6
ja det kan være alle tegn (0 - 255 ascii).
andet.txt skal indeholde ip adresserne som de står i ip.txt, så ja, de skal med..
Avatar billede martin_moth Mester
14. juni 2003 - 16:26 #7
noaz: Kan du ikke komme med et eksempel på hvordan test.txt ser ud - eller har sjh forstået det (jeg har ikke) og kastet sig over opgaven?
Avatar billede sjh Nybegynder
14. juni 2003 - 16:28 #8
martin_moth >lav du bare den.. jeg har ikke tid lige nu.. skulle bare lige høre. :-)
Avatar billede noaz Nybegynder
14. juni 2003 - 16:30 #9
her er et eksempel på test.txt:
ip  97.255,73!161    - info: xxx_blablabla
en anden ip 121a46Q62Z164, det er en ip. blalba
x y z bla ip asd asd blabla97ñ121z164$62blabla <- ip
Avatar billede noaz Nybegynder
14. juni 2003 - 16:30 #10
det virker måske lidt uoverskueligt, men programmet skal altså kunne hente ip adresserne ud af en sådan tekst..
Avatar billede noaz Nybegynder
14. juni 2003 - 16:31 #11
jeg har lige smækket pointene op på 100..
Avatar billede martin_moth Mester
14. juni 2003 - 16:49 #12
sjh: Jeg har sgu heller ikke tid ;o) - sidder her og er på overarbejde en weekend :o(

noaz: Jeg forudsætter, at en IP-adresse ikke er "delt" over mere end en linie. Hvis det er tilfældet, ville jeg gøre det således:

Læs filen ind i et array (arrOriginal()), med en linie på hver plads i arrayet.

a.
Loop over arrOriginal()'s poster, og for hver post ser du om der indgår et ciffer (0-9) i strengen.

b.
Findes der IKKE et ciffer, smider du posten over i en tilsvarende post i arrText()

c.1.
Findes der et ciffer, kikker du på de næste 13 pladser, og tjekker om de overholder syntaksen for et IP nummer. Gør de ikke det, smider du posten over i en tilsvarende post i arrText()

c.2.
Er syntaksen overholdt, og det dermed er et IP-nummer, napper du du hele nummeret med Mid() og smider det over i en post i arrIP(), og vha. Mid() laver du et "rigtigt" IP-nummer med punktummer og ikke alt muligt andet.
Igen vha. Mid() napper du resten af strengen - det der stod foran og bagefter IP-nummeret og smider den over i en tilsvarende post i arrText()

Efter alt dette vil du have 3 arrays:

arrOriginal() - hele filen med een linie indlæst i hver post
arrText() - Magen til arrOriginal men UDEN IP-numre
arrIP() - et array med et antal poster svarende til det antal IP'ere der er i filen.

Så er det bare at skrive disse arrays til filen.

Altsammen helt banalt VB, ikke noget 'genialt' i min løsning. Du har brug for et loop, en InStr(), en Mid(), en ReDim og lidt andet. Skal du tage højde for, at et IP-nummer er "delt" over mere end en linie, eller at der kan stå flere IPnumre på samme linie, bliver der lidt mere at tage højde for. Men det er ikke umuligt.

Good luck :o)
Avatar billede martin_moth Mester
14. juni 2003 - 16:52 #13
PS: Det ville vvære nemmere hvis du vidste, at der altid var et bestemt tegn lige før eller efter et IP nummer, så du kunne søge efter det. Sådan er der så mange hvis og hvis'er :o)
Avatar billede noaz Nybegynder
14. juni 2003 - 16:58 #14
det er altsammen meget godt, men det er altså et must, at filen bliver læst byte for byte (som før skrevet)..
Avatar billede noaz Nybegynder
14. juni 2003 - 18:06 #15
jeg har nu selv skrevet programmet og har derfor ikke brug for mere hjælp..
martin_moth: du får 50 point..
Avatar billede martin_moth Mester
15. juni 2003 - 10:12 #16
Byte for byte - mener di ikke karakter for karakter. Nå - du fik løst problemet :o)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester