Delphi TStringList efcreate error, файл, используемый другим процессом - PullRequest
1 голос
/ 15 ноября 2011

Я искал везде, но я не могу заставить это работать. Когда я запускаю этот код, я получаю EFCreateError, сообщающую мне, что файл используется другим процессом. Я вроде новичок в использовании TStringLists, поэтому мне нужна ваша помощь! Заранее спасибо!

Здесь генерируется ошибка: empFile.SaveToFile ('Data \ Emp \' + emp + '\' + emp + '. Txt');

procedure TfmMain.btSaveRetClick(Sender: TObject);
var
    select, pos1, pos2, pos3, i: integer;
    fileBuffer, rentFile: TextFile;
    rCode, emp, buffer, retBuffer: string;
    empFile: TStringList;

begin
    if lbReturn.Items.Count <> 0 then 
    begin
        select:=Messagedlg('Retourner les items?', mtConfirmation, [mbYes, mbNo],0);
        if select=mrYes then 
        begin
            empFile:=TStringList.Create;
            AssignFile(fileBuffer, 'Data\filebuffer.dat');
            AssignFile(rentFile, 'Data\rented.dat');
            lbReturn.Items.SaveToFile('Data\filebuffer.dat');
            Reset(fileBuffer);
            Reset(rentFile);

            repeat 
            begin
                ReadLn(fileBuffer, buffer);
                pos1:=AnsiPos('|', buffer);
                rCode:=AnsiLeftStr(buffer, pos1-2);
                repeat 
                begin
                    ReadLn(rentFile, retBuffer);
                    pos2:=AnsiPos(rCode, retBuffer);
                    if pos2<>0 then 
                    begin
                        pos3:=AnsiPos('|', retBuffer);
                        emp:=AnsiRightStr(retBuffer, (Length(retBuffer))-pos3-1);
                        empFile.LoadFromFile('Data\Emp\'+emp+'\'+emp+'.txt');
                        i:=empFile.IndexOf(buffer);
                        empFile.Delete(i);
                        empFile.SaveToFile('Data\Emp\'+emp+'\'+emp+'.txt');
                        empFile.Clear;
                    end;   
                end;
                until EOF(rentFile);
            end;
            until EOF(fileBuffer);
        empFile.Free;
        end;
    end 
    else 
    begin
        MessageDlg('Aucun item à enregistrer!', mtError, [mbOK], 0);
    end;
end;

1 Ответ

2 голосов
/ 15 ноября 2011

EFCreateError возникает из-за неверного имени файла, отсутствия прав доступа или дискового пространства: info

...