Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  8 639
Oh Hoi...


Driveå små studerer litt VB.NET på fritia og små programmerer,har så langt lagt en port scanner og en keygen... (veldig lett synes nå jeg)

Så jeg tenkte jeg skulle starte på et annet program

som skal :

søke (scan) i filer gjennom mapper hard disker osv...

den skal ikkek søke for noe speielt akuratt, men hadde vært fint å fått vite åssen denne koden ser ut...

Håper på svar
Trigonoceps occipita
vidarlo's Avatar
Donor
Du skal altså sjå koden slik at du kan skrive den av...? Det kan vel knapt nok kallast å lage?

Forøvrig er det to måter å løyse problemet på: bruk windows sitt API. Eg er rimelig sikker på at det finst API for å benytte interne filbasen i windows (om filindeksering er skrudd på).

Den andre måten er å liste filer i kataloger rekursivt, ut fra gitte kriteria, og bruke t.d regulære uttrykk til å matche filnavn med søketerm.

Edit: API for Windows Search. Windows search er by default i vista, addon til XP. Burde vere 30-40 linjer å ta det i bruk
Sist endret av vidarlo; 25. juni 2008 kl. 20:54.
Trådstarter
49 2
Jeg er da ganske nybegynner i VB.NET så vis du skulle klare å hjelpe meg så må du forklare litt nærmere
Trigonoceps occipita
vidarlo's Avatar
Donor
Sitat av PJ92
Jeg er da ganske nybegynner i VB.NET så vis du skulle klare å hjelpe meg så må du forklare litt nærmere
Vis hele sitatet...
Foreslår at du overser _alt_ som har med GUI å gjere. Lag kommandolinjeapplikasjon, med løkker basert på userinput, lagring av UI til fil, enkel variabelhåndtering og slikt før du går laus på å lage praktisk brukbare ting.

Eg brukte rimelig mykje tid på å skrive meiningslause variasjoner av "Hello, World!" med meir eller mindre funksjonalitet ift. originalen, for å forstå konseptet bak programmering.

Viare vil eg innstendig be deg bruke et anna språk enn VB - til dømes gå for C# som i det minste har et syntax som ikkje ser ut til å vere utforma ved tilfeldighet.

Når du programmerer på windowsplattforma, så er MSDN ein fantastisk god ressurs, med shitloads av info for alle MS sine språk, og veldokumenterte API!
Trådstarter
49 2
En side hadde vært gull...
m0b
m0b's Avatar
DonorAdministrator
Som slashdot sier, her kan du gjøre det rekursivt. Skreiv en funksjon som går igjennom et directory og alle subdirectories for en stund siden. Kanskje du kan lære litt av den. Den er ikke optimal og kunne sikkert ha blitt kjappere med litt threading.

Kode

        public void DirectoryWalker( DirectoryInfo dir )
        {
            FileInfo [] files = dir.GetFiles();
            foreach( FileInfo currFile in files )
            {
                string ext = currFile.Extension.ToLower();
                if( ext == ".mp3" || ext == ".wma" )
                {
                    fileList.Add(new MusicFile(currFile.FullName, currFile.Name, currFile.Length));
                    currSize += currFile.Length;
                    numFiles++;
                }
            }

            DirectoryInfo [] dirs = dir.GetDirectories();
            foreach( DirectoryInfo currDir in dirs )
            {
                DirectoryWalker( currDir );
            }
        }
Sist endret av m0b; 25. juni 2008 kl. 21:12.
Trådstarter
49 2
jaha, er dette i C# eller C++
m0b
m0b's Avatar
DonorAdministrator
C#, men er du noenlunde komfortabel med VB.NET bør du lett kunne oversette dette.
▼ ... noen uker senere ... ▼
Hmm. PJ92, hva kan du innen VB.NET? Om du har lagt en port scanner, burde du ha lært helt basic filbehandling først. Ettersom det er det som er mest normalt å begynne med.
Lage ett tekstprogram noe alâ notepad, bare for å gjør det.

Om du vil søke igjennom alle mapper og slikt etter? Hvada? ALLE filene?

En måte er vel egentlig å lage deg 3 arraylister.
En for mapper, en for filer og en midlertidig

legg til verdi i den midlertidige "c"

Kjører Do Unitl midlertidigArray.Count = 0
For hver [mappe] In IO.Directory.GetDirectories(midlertidig(0))
Legger til [mappe] i midlertidig for å sjekke denne også.
Legger til [mappe] i mappe arrayen
Next
Fjerner midlertidigArray(0)
Loop

Så gjør du tilsvarende for å finne filer. IO.Directory.GetFiles(path as string)

Hvis du faktisk kan noe innen VB.NET så burde dette hjelpe deg ett godt stykke på vei.