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

  • Автор темы Klaus
  • Дата начала
Статус
Закрыто для дальнейших ответов.
K

Klaus

#1
вобщем такая проблема при нажатии кнопку файл 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]
 
D

destr

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

astronom

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