fiz a rotina abaixo no delphi 2009 win32 usando intraweb.. esse codigo le um arquivo que acabou de ser upado pro servidor pelo visitante da pagina. ele nao acha nada e quando acha fica tudo como se fosse '#0''#0''#0''#0''#0''#0''#0''#0''#0''#0''#0''#0' e fica tudo null na rotina abaixo. pequei o mesmo codigo joquei no intraweb do delphi 2006 e funcionou. será um bug ou alguma configuração que eu tenho que setar por causa do unicode ou o que?
a rotina: procedure TformEnviarFornecedor.IWButton1Click(Sender: TObject); var txt : textfile; I : Integer; linha : string; migradas : Integer; erros : integer; lerro : string; lerrof : string; procedure insericampo(campo: string; posicaoini, posicaoFim: integer; padrao: string); var s: string; begin s := string(copy(linha,posicaoini, posicaoFim)); if trim(s) = '' then s := 'null'; if (s = 'null') then self.ds.dataset.FieldByName(campo).AsString := padrao else self.ds.dataset.FieldByName(campo).AsString := TrimLeft(TrimRight(s)); Delete(linha,1,posicaofim); end; begin try IWFile1.SaveToFile; WebApplication.ShowMessage(Format('Arquivo "%s" enviado com sucesso!', [IWFile1.Filename])); //tratando o arquivo... AssignFile(txt, extractfilepath(paramstr(0))+IWFile1.Filename); Reset(Txt); migradas := 0; erros := 0; ds.DataSet.Active := false; TADOQuery(ds.dataset).SQL.Text := 'select * from fornecedor where cnpj = '+#39+'000'+#39; ds.DataSet.Active := true; lerrof := ''; while not eof(txt) do begin Readln(txt,linha); try lerro := linha; self.ds.DataSet.insert; insericampo('codigo',1,15,'null'); insericampo('razao',1,39,'null'); insericampo('cnpj',1,22,'null'); insericampo('ie',1,18,'null'); insericampo('endereco',1,30,'null'); insericampo('numero',1,14,'0'); insericampo('bairro',1,23,'null'); insericampo('uf',1,2,'null'); self.ds.DataSet.Post; migradas := migradas +1; except if ds.dataset.state = dsinsert then ds.dataset.cancel; erros := erros +1; lerrof := lerrof + #13+ lerro; end; end; closefile(txt); merros.lines.clear; merros.lines.add('Ação terminada'); merros.lines.add('Total de dados migrados : '+inttostr(migradas)); merros.lines.add('Total de Erros : '+inttostr(erros)); merros.lines.text := merros.lines.text + lerrof; except WebApplication.ShowMessage(Format('Erro ao enviar o arquivo "%s" !', [IWFile1.Filename])); end; end; -- ------------------------------------------------------------------- Rafael jorge alves (Analista/desenvolvedor) www.sistemafocus.com.br sistema focus de gestão comercial e serviços em informatica. ------------------------------------------------------------------- [As partes desta mensagem que não continham texto foram removidas]