Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu recebo um arquivo TXT de meus clientes, importo elas para meu BD e as consisto. No campo OBSERVACAO as vezes vem observações do cliente que não são desejáveis e o que tenho que fazer é excluir ou alterá-las. Tá muito difícil abrir o arquivo e editar cada linha, pois as vezes o aquivo contém mais de 7.000 registros.O que eu preciso é dá um while no DB e toda vez que no campo OBSERVACAO tiver a observação indesejável o programa procura o registro exato no TXT e apagar ou edita a linha respectiva de observação.O que eu coloquei (para não mudar a estrutura do DB) no início de cada observação indesejável a letra R (de retirar) ou E (de editar), assim no while ele abre o aquivo recebido e apaga a observação.Mas as perguntas são:1)Ao localizar a linha que contém a referênia (CONTA), como excluir as palavras no espaço de observação ou alterar?Estrutura do DBLOCALLIVROCONTAOBSERVACAOEstrutura do arquivo TXT84419 8002001 nada foi encontrado neste prontuario 4545458884419 8003001 registro informado correto, manter contato 44444555Para entender o arquivo TXT:a linha:84419 8002001 nada foi encontrado neste prontuario 45454588o numero 84419 pertence ao campo LOCALo numero 80 pertence ao campo LIVROo numero 02001 pertence ao campo CONTAdepois vem a frase "nada foi encontrado neste prontuario" que pertence ao campo OBSERVACAOo número 45454588 deve ser desconsiderado.O procedimento que uso é este só que ele está retirando toda a linha e não apenas o espaço para observação que está na posição copy(arq,28,32).arq := TStringList.Create;If OpenDialog1.Execute thenarq.LoadFromFile(OpenDialog1.FileName);RZ.first;while not RZ.eof do beginIf (copy(RZOBSERV.value,1,1) = 'R') or (copy(RZOBSERV.value,1,1) = 'E') then beginfor i:= 0 to arq.count-1 do beginif (pos(RZconta.value, arq) > 0) then begins:= copy(RZOBSERV.Value,1,1);If s = 'R' then copy(arq) := ' 'else If s = 'E' then arq :=RZOBSERV.Value;end;end;end;RZ.next;end;arq.SaveToFile('c:\windows\desktop\fdia61.alt');arq.free;ShowMessage('Procedimento concluído, arquivo salvo!');end;
Carregando comentários...