Avatar billede assassin Juniormester
23. februar 2005 - 09:34 Der er 11 kommentarer og
1 løsning

Kompliceret gennemløb af bibliotek

Jeg ved godt hvordan man gennemløber et bibliotek og finder filer der, men jeg har en kompliceret udgave.

Jeg har følgende biblioteksstruktur:
C:\data\0352650\8542695_587\Trans_58\5862_autojob_2658
                            Trans_25\2456_autojob_8543
        8526540\2568425_254\Trans_02\2114_autojob_2356

Jeg skal ned i de biblioteker der hedder noget med XXXX_autojob_XXXX

og optælle filer der.

bibliotekerne er autooprettet med tilfældige tal, men strukturen er den samme.

Hvordan gør jeg det?
Avatar billede assassin Juniormester
23. februar 2005 - 09:35 #1
C:\data\0352650\8542695_587\Trans_58\5862_autojob_2658
C:\data\0352650\8542695_587\Trans_25\2456_autojob_8543
C:\data\8526540\2568425_254\Trans_02\2114_autojob_2356
Avatar billede martinlind Nybegynder
23. februar 2005 - 09:50 #2
scan det hele ind i en tstringlist, og løb den igennem og brug pos() til at finde xxx_autojob_xxx så kan du bruge findfirst() findnext til at gøre det du skal med de filer du finder
Avatar billede assassin Juniormester
23. februar 2005 - 09:58 #3
Ok, hvordan gør jeg det?
Avatar billede martinlind Nybegynder
23. februar 2005 - 10:01 #4
du skriver du godt ved hvordan du gennemløber et bib. kan du finde ud af at scanne din disk for de bib. der er på den ( en dir *.* /s ) ??
Avatar billede assassin Juniormester
23. februar 2005 - 10:16 #5
Ja, det kan jeg godt klare
Avatar billede martinlind Nybegynder
23. februar 2005 - 10:21 #6
godt så har du hele strukturen i en tstringlist, den løber du i gennem og laver et check med

if Pos('xxx_Autojob_xxx',MyList[Cnt]) <> 0 then
begin
  //Path fundet gør noget
  // løb sti'en igennem og tæl filerne
end;
Avatar billede assassin Juniormester
23. februar 2005 - 10:29 #7
Jeg skal lige forstå dette rigtigt.

Dit forslag går på at lave en dir *.*/S i commando prompten.

Er det korrekt?
Avatar billede martinlind Nybegynder
23. februar 2005 - 10:38 #8
Nej, du scanner vha. findfirst og findnext recursivt hedder det, så for du din struktur og kan gøre som beskevet. Du kan søge på de spm jeg har besvaret efter diskscanner så finder du recursiv kode til at scanne din bib. struktur
Avatar billede assassin Juniormester
23. februar 2005 - 10:58 #9
Ok, jeg mente jo nok at jeg havde misforstået dig.

Jeg prøver lige.
Avatar billede assassin Juniormester
23. februar 2005 - 15:47 #10
Det virker glimrende, men jeg får nogle advarsler, ved du hvordan jeg fjerner dem?

[Warning] Main.pas(109): Symbol 'IncludeTrailingBackslash' is specific to a platform
[Warning] Main.pas(111): Symbol 'faSysFile' is specific to a platform
[Warning] Main.pas(112): Symbol 'faVolumeID' is specific to a platform

Hvis du lige vil smide et svar, så får du nogle points.

Tak for hjælpen endnu engang.
Avatar billede martinlind Nybegynder
23. februar 2005 - 16:03 #11
IncludeTrailingBackslash kan skiftes med IncludePathDelimiter() de andre kan du ikke lige fjerne, det betyder bare du ikke kan portere dit prg til kylix
Avatar billede assassin Juniormester
24. februar 2005 - 09:06 #12
Tak for det.
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