Посмотрите код не могу найти ошибку

Тема в разделе "Delphi - FAQ", создана пользователем Klaus, 28 май 2008.

Статус темы:
Закрыта.
  1. Klaus

    Klaus Гость

    вобщем такая проблема при нажатии кнопку файл 1.txt должен сохранится в созданый ранее каталог а он сохряняется в глвную директорию программы (те дожен c:\\myPro\новый каталог\1.txt , а сохряняется так c:\\myPro\1.txt
    тлько как можно скорее 2 дня у мну всего =(
    а вот собственно код:
    [codebox]procedure TForm1.BitBtn1Click(Sender: TObject);
    var dir: string;
    f1: TextFile;
    begin
    dir:=ExtractFilepath(Application.ExeName);
    SetCurrentDirectory(PChar(dir));
    CreateDirectory(PChar(Edit1.Text), Nil);//Созаём новую директорию имя дериктории присваивается из строки Edit
    SetCurrentDirectory(PChar(dir+Edit1.Text));


    CreateDirectory(PChar(Edit10.Text), Nil);
    SetCurrentDirectory(PChar(dir+Edit10.Text));


    CreateDirectory(PChar(Edit11.Text), Nil);
    SetCurrentDirectory(PChar(dir+Edit11.Text));

    CreateDirectory(PChar(Edit12.Text), Nil);
    SetCurrentDirectory(PChar(dir+Edit12.Text));

    CreateDirectory(PChar(Edit13.Text), Nil);
    SetCurrentDirectory(PChar(dir+Edit13.Text));

    CreateDirectory(PChar(Edit14.Text), Nil);
    SetCurrentDirectory(PChar(dir+Edit14.Text));

    CreateDirectory(PChar(Edit15.Text), Nil);
    SetCurrentDirectory(PChar(dir+Edit16.Text));

    CreateDirectory(PChar(Edit16.Text), Nil);
    SetCurrentDirectory(PChar(dir+Edit15.Text));

    CreateDirectory(PChar(Edit17.Text), Nil);
    SetCurrentDirectory(PChar(dir+Edit17.Text));

    CreateDirectory(PChar(Edit18.Text), Nil);
    SetCurrentDirectory(PChar(dir+Edit18.Text));

    CreateDirectory(PChar(Edit19.Text), Nil);
    SetCurrentDirectory(PChar(dir+Edit19.Text));

    CreateDirectory(PChar(Edit20.Text), Nil);
    SetCurrentDirectory(PChar(dir+Edit20.Text));

    CreateDirectory(PChar(Edit21.Text), Nil);
    SetCurrentDirectory(PChar(dir+Edit21.Text));

    CreateDirectory(PChar(Edit22.Text), Nil);
    SetCurrentDirectory(PChar(dir+Edit22.Text));




    AssignFile(f1, '1.txt');
    if not FileExists(PChar(dir+Edit1.Text+'\1.txt')) then
    begin
    rewrite(f1);
    writeln(f1, Edit2.Text);
    writeln(f1, Edit3.Text);
    writeln(f1, Edit4.Text);
    writeln(f1, Edit5.Text);
    writeln(f1, Edit6.Text);
    writeln(f1, Edit7.Text);
    writeln(f1, Edit8.Text);
    writeln(f1, Edit9.Text);
    closefile(f1);
    end
    else begin
    if ScanFile(dir+Edit1.Text+'\1.txt', Edit2.Text, false)=(-1)
    then begin
    Append(f1);
    writeln(f1, Edit2.Text);
    closefile(f1);
    end;
    if ScanFile(dir+Edit1.Text+'\1.txt', Edit3.Text, false)=(-1)
    then begin
    Append(f1);
    writeln(f1, Edit3.Text);
    closefile(f1);
    end;
    if ScanFile(dir+Edit1.Text+'\1.txt', Edit4.Text, false)=(-1)
    then begin
    Append(f1);
    writeln(f1, Edit4.Text);
    closefile(f1);
    end;
    if ScanFile(dir+Edit1.Text+'\1.txt', Edit5.Text, false)=(-1)
    then begin
    Append(f1);
    writeln(f1, Edit5.Text);
    closefile(f1);
    end;
    if ScanFile(dir+Edit1.Text+'\1.txt', Edit6.Text, false)=(-1)
    then begin
    Append(f1);
    writeln(f1, Edit6.Text);
    closefile(f1);
    end;
    if ScanFile(dir+Edit1.Text+'\1.txt', Edit7.Text, false)=(-1)
    then begin
    Append(f1);
    writeln(f1, Edit7.Text);
    closefile(f1);
    end;
    if ScanFile(dir+Edit1.Text+'\1.txt', Edit8.Text, false)=(-1)
    then begin
    Append(f1);
    writeln(f1, Edit8.Text);
    closefile(f1);
    end;
    if ScanFile(dir+Edit1.Text+'\1.txt', Edit9.Text, false)=(-1)
    then begin
    Append(f1);
    writeln(f1, Edit9.Text);
    closefile(f1);
    end;
    end;
    end;
    procedure ScanDir(StartDir: string; Mask:string; List:TStrings);
    var
    SearchRec : TSearchRec;
    begin
    if Mask = '' then Mask := '*.*';
    if StartDir[Length(StartDir)] <> '\' then StartDir := StartDir + '\';
    if FindFirst(StartDir+Mask, faAnyFile, SearchRec) = 0 then
    begin
    repeat
    Application.ProcessMessages;
    if (SearchRec.Attr and faDirectory) <> faDirectory then
    List.Add(StartDir + SearchRec.Name)
    else if (SearchRec.Name <> '..') and (SearchRec.Name <> '.') then
    begin
    List.Add(StartDir + SearchRec.Name + '\');
    ScanDir(StartDir + SearchRec.Name + '\',Mask,List);
    end;
    until FindNext(SearchRec) <> 0;
    FindClose(SearchRec);
    end;
    end;

    [/codebox]
     
  2. destr

    destr Гость

    Для начала Вы бы убедились, что вызов SetCurrentDirectory(PChar(dir+Edit1.Text)); отрабатывает корректно.
     
  3. astronom

    astronom Гость

    1.
    Код (Text):
    AssignFile(f1, '1.txt');
    - надо использовать абсолютный путь.
    2.
    Код (Text):
    if not FileExists(PChar(dir+Edit1.Text+'\1.txt')) then
    - зачем проверять наличие файла "1.txt" в директории, которая только что была создана?
     
  4. etc

    etc Гость

    Windows многопользовательская и "многозадачная" ОС :)
     
  5. astronom

    astronom Гость

    А-а-а, ну раз так. :)
     
Загрузка...
Похожие Темы - Посмотрите код не
  1. ioni
    Ответов:
    5
    Просмотров:
    3.911
  2. Gamlet
    Ответов:
    16
    Просмотров:
    6.963
  3. Gamlet
    Ответов:
    11
    Просмотров:
    5.243
  4. vital
    Ответов:
    21
    Просмотров:
    6.998
  5. doves
    Ответов:
    1
    Просмотров:
    45
Статус темы:
Закрыта.

Поделиться этой страницей