Ver Mensaje Individual
  #1  
Antiguo 20-04-2011
pato89xd pato89xd is offline
Miembro
NULL
 
Registrado: abr 2011
Posts: 13
Reputación: 0
pato89xd Va por buen camino
Borrar registros de un archivo de texto

saludos, estoy tratando de hacer un procedimiento que borre registros de un archivo de texto, la clave de esos registros la tengo en un listbox y los registros son aquellos que comienzen con el tabulador, para eso decidi crear un archivo auxiliar para despues copiar los registros que no quiero borrar al archivo con los registros, el codigo es el siguiente, pero el problema es que al terminar el codigo parece que me cierra el archivo original (F), puesto que si trato de volver a acceder a al me marca ERROR I/O 103, espero me puedan ayudar, gracias =)
Código:
procedure TForm3.Button3Click(Sender: TObject);
var
lineaactual,texto :string;
aux: TextFile;
begin
if (ListBox1.ItemIndex <> -1)  then begin texto := ListBox1.Items[ListBox1.ItemIndex];
ListBox1.Items[ListBox1.ItemIndex] := ''; end;
if (ListBox1.ItemIndex <> -1) and (FileExists( ExtractFilePath( Application.ExeName ) + 'Musica.DATA' )) then
begin
CopyFile( PAnsiChar(ExtractFilePath(Application.ExeName ) + 'Musica.DATA'),PAnsiChar( ExtractFilePath( Application.ExeName ) + 'aux.DATA'), false);
AssignFile( aux, ExtractFilePath( Application.ExeName ) + 'aux.DATA' );
append(aux);
reset(aux);
Rewrite(F);
     while not Eof(aux) do
     begin
      Readln(aux, lineaactual);
      if CompareText(lineaactual, texto)<>0 then
      WriteLn(F,lineaactual);
      if CompareText(lineaactual, texto)=}0 then
      begin
      Readln(aux, lineaactual);
        while (not Eof(aux)) and (lineaactual[1]=chr(9)) do readln(aux,lineaactual);
        Readln(aux, lineaactual);
        end;
        end;
            closefile(aux);
            deletefile(ExtractFilePath( Application.ExeName ) + 'aux.DATA' );
end;
       BuscarGeneros();   //  end
end;

Última edición por ecfisa fecha: 20-04-2011 a las 02:09:10.
Responder Con Cita