Acho que o erro está em "for i := 0 to Length(conteudo) do"

O índice do primeiro caractere de uma string é 1 e não 0 (zero). Voce pode 
estar tentando escrever em uma posição de memória que não está alocada.

--- Em delphi-br@yahoogrupos.com.br, "Felipe Lopes" <felipearaujolo...@...> 
escreveu
>
> Galera boa noite
> 
>  
> 
> Estou com uma dificuldade na seguinte função
> 
> var
> 
>   i: Integer;
> 
>   txt : TextFile;
> 
>   f : TextFile;
> 
>   conteudo : string;
> 
> begin
> 
>   Assignfile(txt,'C:\projetos\delphi\cascatai\Sistema Novo\exportacao nota
> eletronica\NE16.txt');
> 
>   Reset(txt);
> 
>   AssignFile(f,'C:\projetos\delphi\cascatai\Sistema Novo\exportacao nota
> eletronica\NE1601.txt'); //CRIO O ARQUIVO
> 
>   Rewrite(f); //abre o arquivo para escrita
> 
>   while not Eof(txt) do
> 
>   begin
> 
>     readln(txt,conteudo);
> 
>     for i := 0 to Length(conteudo) do
> 
>     case conteudo[i] of
> 
>     'á', 'à', 'â', 'ä', 'ã': conteudo[i] := 'a';
> 
>     'Á', 'À', 'Â', 'Ä', 'Ã': conteudo[i] := 'A';
> 
>     'é', 'è', 'ê', 'ë': conteudo[i] := 'e';
> 
>     'É', 'È', 'Ê', 'Ë': conteudo[i] := 'E';
> 
>     'í', 'ì', 'î', 'ï': conteudo[i] := 'i';
> 
>     'Í', 'Ì', 'Î', 'Ï': conteudo[i] := 'I';
> 
>     'ó', 'ò', 'ô', 'ö', 'õ': conteudo[i] := 'o';
> 
>     'Ó', 'Ò', 'Ô', 'Ö', 'Õ': conteudo[i] := 'O';
> 
>     'ú', 'ù', 'û', 'ü': conteudo[i] := 'u';
> 
>     'Ú', 'Ù', 'Û', 'Ü': conteudo[i] := 'U';
> 
>     'ç': conteudo[i] := 'c';
> 
>     'Ç': conteudo[i] := 'C';
> 
>     ',': conteudo[i] := '.';
> 
>     end;
> 
>     Writeln(f,conteudo);
> 
>   end;
> 
>   Closefile(f); //fecha o handle de arquivo
> 
> end;
> 
>  
> 
> Estou tendo erro de access  violation.
> 
>  
> 
> O estranho que o erro so ocorre no final da correção do arquivo.
> 
>  
> 
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
>


Responder a