elpinoino Skrevet 14. januar 2008 Del Skrevet 14. januar 2008 (endret) Hepp. Jeg har lest litt om C++ og lagd små testprogrammer. Men for å lære meg det litt mer grundigere følte jeg at jeg måtte ha ett faktisk problem å løse. Jeg har en filserver med mange disker, mapper og filer. til tider er det vanskelig å finne fram på den. Er det mulighet for å lage ett program som scanner de diskene\mappene og så kjøre dette ut til en tekst fil. Filserveren kjører kubuntu 7.10 Spørsmålet er om dette er teoretisk mulig? Er kjedelig å bruke mange timer på noe som aldri ville fungert. Og om det er mulig kan noen gi meg ett tupp i riktig retning med tanke på funksjon som må brukes for å scanne diskene? Endret 14. januar 2008 av kristian.k Lenke til kommentar
DeadManWalking Skrevet 14. januar 2008 Del Skrevet 14. januar 2008 Det lar seg gjøre vet du, det gjør det. Men det spørs om du ikke skal høre i linux delen av forumet først. Hvis dette kan scriptes, noe det kanskje kan gjør det jobben mye lettere. Lenke til kommentar
elpinoino Skrevet 14. januar 2008 Forfatter Del Skrevet 14. januar 2008 Poenget var jo å ha en utfordrende jobb som jeg kan gjøre i C++, tviler ikke på at det kan scriptes kjappere og enklere\eller for den saks skyld legge inn program som gjør det automatisk. Men da får jeg begynne å lese meg til det. Hvis folk vil komme med tips og triks så kjør på. Lenke til kommentar
Dj_Offset Skrevet 14. januar 2008 Del Skrevet 14. januar 2008 Poenget var jo å ha en utfordrende jobb som jeg kan gjøre i C++, tviler ikke på at det kan scriptes kjappere og enklere\eller for den saks skyld legge inn program som gjør det automatisk. Men da får jeg begynne å lese meg til det. Hvis folk vil komme med tips og triks så kjør på. Siden du kjører Linux skulle dette være en smal sak. Riktignok blir dette mer C enn C++, men du kan jo lage fine objekter rundt systemkallene du trenger. Noen manual sider du kan kikke på: opendir og readdir Lenke til kommentar
elpinoino Skrevet 14. januar 2008 Forfatter Del Skrevet 14. januar 2008 Jau, da holder jeg på her. Med opendir\readdir får jeg uten problem listet opp innhold i mapper. Men jeg får alt innholdet uten mellomrom, slik at det vanskelig å skille filer fra hverandre. #include <errno.h> #include <dirent.h> #include <stdio.h> #include <stdlib.h> int main() { DIR *pdir; struct dirent *pent; pdir=opendir("/home/kkarls/Dokumenter"); //I dette forsøket mitt hjemmeområdet if (!pdir){ printf ("opendir() failure; terminating"); exit(1); } errno=0; while ((pent=readdir(pdir))){ printf("%s", pent->d_name); } if (errno){ printf ("readdir() failure; terminating"); exit(1); } closedir(pdir); } Jeg har også funnet en funksjon som heter "myfile" som gjør at jeg får lagret tekststrenger i ei tekstfil, men hvordan får jeg utskriften fra mappa inn i tekstfilen? Når jeg skriver "ett eller annet" så kommet dette rett inn i tekstfilen.Men så prøver jeg litt rundt med prinft og sånt, og da kommer det bare noen tall opp i tekstfila. Kommer selvfølgelig til å rote rundt selv etter svar, men tar imot hint med stor takk Lenke til kommentar
Dj_Offset Skrevet 15. januar 2008 Del Skrevet 15. januar 2008 Jau, da holder jeg på her. Med opendir\readdir får jeg uten problem listet opp innhold i mapper. Men jeg får alt innholdet uten mellomrom, slik at det vanskelig å skille filer fra hverandre. Legg på en '\n' i printf() for å legge en newline mellom hver utskrift: printf("%s\n", pent->d_name); Skal du skrive output til fil kan det være lurt å se på fprintf og tilsvarende kall til fopen og fclose() for å åpne og lukke fila. printf("Hei") er forøvrig det samme som fprintf(stdout, "Hei"), hvor stdout (og stderr) er filer som er åpnet automatisk. Lenke til kommentar
qebaba Skrevet 18. januar 2008 Del Skrevet 18. januar 2008 Jeg vil kanskje tatt en titt på ftw.h. <ftw.h>(P) POSIX Programmer’s Manual <ftw.h>(P) NAME ftw.h - file tree traversal Dette er riktignok C, og du må spesifisere for compileren at du vil ha SUSV3 kompatibel kompilering, men det burde ikke være noe stress, spesielt ikke hvis du bruker gcc/g++/glibc. Den funksjonen du vil bruke i ftw.h er nftw. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå