[Delphi] Pętle...

0

Chciałem zapytać, czy można w jakis sposób zmienic poniższą procedurę, bo program sie zawiesza :) Chodzi tu o to, że wchodzi do folder "14" przeszukuje w nim 14 folderów, następnie wchodzi do "15" - przeszukuje itd.
[code]
foldernumer:=0;
repeat
numer:=0;
inc(foldernumer);
case foldernumer of
1: nrfolder:= '\14';
2: nrfolder := '\15';
3: nrfolder := '\16';
4: nrfolder := '\17';
5: nrfolder := '\18';
6: nrfolder := '\19';
7: nrfolder := '\20';
8: nrfolder := '\21';
9: nrfolder := '\22';
10: nrfolder := '\23';
11: nrfolder := '\24';
12: nrfolder := '\25';
13: nrfolder := '\26';
14: nrfolder := '\27';
end;
repeat
inc(numer);
case numer of
1: nazwadir := nr1;
2: nazwadir := nr2;
3: nazwadir := nr3;
4: nazwadir := nr4;
5: nazwadir := nr5;
6: nazwadir := nr6;
7: nazwadir := nr7;
8: nazwadir := nr8;
9: nazwadir := nr9;
10: nazwadir := nr10;
11: nazwadir := nr11;
12: nazwadir := nr12;
13: nazwadir := nr13;
14: nazwadir := nr14;
end;
MkDir(Dir +nrfolder+ nazwadir + 'Word');
MkDir(Dir +nrfolder+ nazwadir + 'Excel');
MkDir(Dir + nrfolder+nazwadir + 'Access');
FindMP3(Dir + nrfolder+nazwadir);
until numer = 14;
until foldernumer=14;[/code]

0
    case foldernumer of
    1: nrfolder:= '14';
    2: nrfolder := '15';
    3: nrfolder := '16';
    4: nrfolder := '17';
    5: nrfolder := '18';
    6: nrfolder := '19';
    7: nrfolder := '20';
    8: nrfolder := '21';
    9: nrfolder := '22';
    10: nrfolder := '23';
    11: nrfolder := '24';
    12: nrfolder := '25';
    13: nrfolder := '26';
    14: nrfolder := '27';
  end;

Heh a nie prosciej: nrfolder := foldernumer + 13 ?
poza tym ustaw sobie punkt przerywania zdebuguj i napisz w ktorej lini ci sie wywala. poza tym sprawdz czy masz wszystkie niezbednie katalogi.

0

Zacznij od uproszczenia kodu:

foldernumer:=0;
repeat
inc(foldernumer);
nrfolder:=inttostr(foldernumer+13);

 numer:=0;

 repeat
    inc(numer);
    nazwadir:='nr'+IntToStr(numer);
    MkDir(Dir +nrfolder+ nazwadir + 'Word');
    MkDir(Dir +nrfolder+ nazwadir + 'Excel');
    MkDir(Dir + nrfolder+nazwadir + 'Access');
    FindMP3(Dir + nrfolder+nazwadir);
until numer = 14;

until foldernumer=14;

uzyj tez DirectoryExists zeby nie tworzyc istniejacych katalogow bo to robi bledy, czasem trudne do znalezienia

0

Takie rozwiązanie nic nie da (maginott), program działa w porządku, nie ma w nim błędów, ale chyba przy tej ilości pętli 14*14 i przeszukaniu większej liczby katalogów zawiesza się :(, a co do zmiennej "nazwadir" to jest ona pobierana ze zdefiniowanych const:
nr1=\bc_1
nr2=\bd_2
nr3= itd..
Bez tych folderów 14,15,16 działało dobrze, ale musiałem wyjśc jedną gałąź wyżej i teraz zaczęły się schody, mam taki program zrobic na infę, psorek mówi, że to bardzo prosto mozna zrobic w baschu... hmmmm... chyba się myli...

0

i teraz zaczęły się schody

A co sie dokladnie dzieje?

1 użytkowników online, w tym zalogowanych: 0, gości: 1